CTF (Capture the flag) をご存知だろうか。 情報分野における CTF とはハッキングをゲーム化したもので、与えられたマシンから情報を盗み出すことを目的とする。 この盗み出したい情報をフラッグと呼ぶ。 プレイヤーは、マシンの脆弱性を見つけ出し、侵入し、フラッグを盗み出す。
侵入できるように脆弱性が残されていて、フラッグが存在すれば、つまりクリアできるように作られていれば、どのようなマシンでも CTF の攻撃対象にできる。 しかし、実際に (物理的に) そういったマシンを用意することは難しい。 フラッグを手に入れる過程で、プレイヤーはマシンの管理者権限を持つことになるし、そうなればマシン全体にいかなる変更を加えることも、悪用することもできてしまう。 複数のプレイヤーが同じゲームをするためには、各人にそれぞれ全く同じマシンを提供する必要がある。 このような用途に仮想マシンはうってつけだ。 プレイヤーがどんなマシンを使っていても、Windows でも Mac でも Linux でも、全く同じ攻撃対象を提供できる。
HackMyVM は無料の CTF オンラインプラットフォームで、攻撃対象となるマシンは VirtualBox の仮想マシンとして配布されている。 プレイヤーは攻撃対象の仮想マシンを自分のコンピュータ上で動かすことになる。
似たようなサイトに VulnHub がある。 これも有名な、大きなプラットフォームで、無料で利用できる。 アップロードされているマシンの数も、プレイヤーの数も、攻略記事、動画の数も HackMyVM と比べて膨大だ。
どちらも素晴らしいプラットフォームだが、HackMyVM は VulnHub に比べて以下の点でユニークだ:
- 自分がどのマシンを、何台クリアしたのかを記録してくれる
- クリアに応じてポイントが与えられ、 HackMyVM 内のランクが上がるような仕組みがある
- 他のプレイヤーが書いた攻略記事のリストが載っている
特に (3) が嬉しい。 わからなくなったときにわざわざ検索しなくていいし、複数の攻略法に触れやすい。 大筋は同じでも、使うツールや、脆弱性の探し方、攻撃の順序などがプレイヤー毎に異なるので、見比べることで気づくことも少なくない。
VulnHub よりもマシンの数が少ないとはいえ、 現在、242 の仮想マシンがダウンロードできる。 (1), (2) の仕組みも手伝って、全てクリアしてみたくなるようなボリュームだ。
HackMyVM の始め方
HackMyVM のアカウントを作る
上のリンクからアカウントを作る。 登録に必要なのはユーザー名とパスワードだけ。 連絡先を登録していないので、パスワードのリセットなどには対応できない。 忘れないようにしましょう。
VirtualBox をインストールする
攻撃対象の仮想マシンを動かすために VirtualBox が必要になる。
Downloads – Oracle VM VirtualBox
machine をダウンロードして動かす
HackMyVM では、攻撃対象を単に machine
と呼んでいる。 HackMyVM にログインすると画面の左側に Machines
という項目が見つかるはず。 ここから好きなマシンをダウンロードする。
VirtualBox を使ってダウンロードした仮想マシンのイメージを開けば起動できるはずだ。 ネットワークの設定を変更する必要があるかもしれない。
他のプラットフォーム
攻撃対象となる仮想マシンをクラウド上に、ユーザー毎に用意してくれるプラットフォームも存在する:
これらは、CTF のというよりも、情報セキュリティ全般の学習プラットフォームといったほうが的確だ。 有料だが、学習コンテンツの質も量も素晴らしい。 攻撃対象となるマシンだけでなく、攻撃に使うマシンも提供している。 使い勝手はさておき、学習から CTF まですべてがブラウザで行える。
系統だてて学習したい場合には、HackMyVM や VulnHub よりもおすすめだ。
まとめ
フラッグのために脆弱性を探し、侵入を試みる。 これはそのまま ペネトレーションテスト の手法を学ぶことだ。 HackMyVM を通じて、セキュリティに対する、より具体的なイメージが得られるはず。 ぜひ試してみてほしい。