ESET/サイバーセキュリティ情報局

オンライン学習プラットフォーム「Hack The Box」でペネトレーションテストを学ぼう

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はキヤノンマーケティングジャパンが提供する「サイバーセキュリティ情報局」に掲載された「Hack The Boxで、実践的なペネトレーションテスト技術者のスキルを学ぼう」を再編集したものです。

 ペネトレーションテストは、システムの脆弱性やセキュリティ上の問題点を洗い出すための侵入テストです。またHack The Boxは、ペネトレーションテスト技術者に必要な知識やスキルを、実際に手を動かして、楽しみながら学べるサイトです。脆弱性がどのように攻撃に利用されるのか、といった具体例を理解できるため、サイバーセキュリティ技術をこれから学びたい方にもお勧めです。

  ペネトレーションテストは「侵入テスト」とも呼ばれており、その名のとおり対象のシステムに対して実際にサイバー攻撃の各種手法を用いて侵入を試みることで、システムの脆弱性やセキュリティ上の問題点を洗い出すテスト手法だ。そのため、ペンテスター(ペネトレーションテストの技術者)は、さまざまな攻撃手法に関する知識やスキルを習得する必要がある。

 今回紹介する「Hack The Box」は、実際に手を動かして、ペンテスターに必要な知識やスキルを学習できるコンテンツが多数用意されているWebサイトで、実践的に、かつ楽しみながら効果的に技術を身に着けることができる。Hack The Boxでは、サイバーセキュリティリスクになる脆弱性が実際に、どのようにして攻撃に利用されるのか、といった具体例を理解することができるため、ペンテスター以外の方にもお勧めしたい。サーバーやWebサイトの管理者であれば、得られる知識を元に自身の環境に対してペネトレーションテストを実施するなどして、セキュリティの強化や対策に活用できるだろう。

Hack The Boxとは

 Hack The Boxは、サイバーセキュリティのオンライン学習プラットフォームだ。サイバーセキュリティ、特にペネトレーションテストのようなシステムの脆弱性の発見や、悪用の可否を判断するためのスキルを磨くことができる。Webサイトのコンテンツは無料の会員登録を行うことで利用を開始できるが、有料会員になると利用制限が解除され、すべての機能が利用できるようになる。メニューはいくつか存在するが、メインコンテンツとして「Machines」と「Challenges」の2つがある。それぞれの特徴を説明する。

Hack The Box

Machines

 Machinesは、脆弱性を悪用してシステムへの侵入を試みる問題(Machine)が複数用意されている。それぞれの問題には、あらかじめ何らかの脆弱性が組み込まれた仮想マシンが用意されており、挑戦者には仮想マシンのIPアドレスのみが提供される。挑戦者は、そのIPアドレスにアクセスし、利用可能なサービスや脆弱性を見極め、適切な攻撃手法を用いてシステムへの侵入を試みる。システム内には目標となるテキストファイルが配置されており、その中身(Flag)を確認し、解答できれば対象の問題はクリアとなる。

 実際に挑戦するには、まずメニューの「Machines」をクリックして問題の一覧を表示し、次に難易度や使用しているOSなどでフィルタリングを行い挑戦したいものを選ぶ。難易度はEasy、Medium、Hard、Insaneの4段階だが、ユーザーによるレーティングにより、難易度がグラフで表示されている。最初は難易度やグラフの表示を参考にEasyの中から問題を選ぶと良いだろう。

 問題をクリックすると選択した問題に関する詳細が表示される。「Spawn Machine」ボタンをクリックすると、仮想マシンが起動し、IPアドレスが表示される。仮想マシンに関して提供される情報は、このIPアドレスのみで、ユーザー名やパスワードなどのログイン情報は一切提供されない。つまり、このIPアドレスに対してポートスキャンやWebページへのアクセスなどを行い、脆弱性を見つけてシステムへの侵入を行う必要がある。

 通常、ペネトレーションテストは計画やスコープの設定から始まり、情報収集や脆弱性の調査、実際の攻撃(エクスプロイトの実行)を経て、結果をまとめて報告する、といったプロセスで行われる。特に脆弱性の調査や攻撃といった行為は、そのために準備された環境でしか学習をすることができない。しかし、そのような環境をさまざまなバリエーションで多数用意することは、準備のための工数やリソースにおいて非常に難しい。Machinesでは、これらを容易に準備でき、すぐに挑戦することができるため、ペネトレーションテストの知識やスキルを学ぶには非常に有用な問題と言えるだろう。

Challenges

 Challengesは、いわゆるCTF(Capture The Flag)だ。暗号技術、リバースエンジニアリング、フォレンジックなど、カテゴリーごとに問題が用意されている。Machinesと同様に、問題を解くと得られるFlagを発見・解答することが目標となる。

  問題に挑戦するには、メニューの「Challenges」をクリックして問題の一覧を表示する。問題のカテゴリーや難易度を参考に、この中からチャレンジしたい問題を選ぶ。難易度はVery Easyからあり、Machinesと同様にユーザーによるレーティングがグラフで表示される。最初は最も簡単なVery Easyからチャレンジしてみると良いだろう。

 Challengesの問題では、基本的に「Download Files」から問題ファイルをダウンロードし、これを元に問題を解いていく。解いた結果としてFlagが得られれば問題クリアだ。Machinesのようにシナリオに沿った 問題の攻略ではなく、各問題を解いていくことでセキュリティ全般の知識や、Machinesの攻略に役立つ知識が習得できる。

そのほかのメニューや楽しい要素

 MachinesやChallengesのほかにも、ペネトレーションテストの基礎を学習できる「Starting Point」や複数の問題を目的別にまとめた「Tracks」、一定期間に連続して出題される問題に挑戦し、ポイントを競う「Open Beta Season」などのメニューが用意されている。また、MachinesやChallengesでは、随時新しい問題が追加され、特にMachinesでは、新たに発見・公開された脆弱性を取り入れた問題も追加される。例えば、2021年12月に公開されたLog4jの脆弱性「Log4Shell」は、12月中に、この脆弱性を取り入れた問題が作成されていた。なお、問題の追加と入れ替わりで、少し古くなった問題は取り下げ(Retired)となるようだ。

 また、Hack The Boxでは、ゲーミフィケーション(ゲームデザイン要素やゲーム原則)を学習設計に取り入れている点も魅力の1つだ。問題を解くごとにポイントが追加され、一定のポイントを獲得するとユーザーのランクがアップする(ランクはNoob、Script Kiddie、Hacker、Pro Hacker、Elite Hacker、Guru、Omniscientの7つ)。チームに所属したり、ほかの参加者とポイントランキングで競い合ったりすることができるため、ゲーム感覚で学習できる仕組みとなっている。

  なお、有料会員になると、Retiredとなった過去の問題や特別に用意された問題にチャレンジすることができる。また、Machinesで起動する仮想マシンの利用環境に関する制限が解除されたり、ブラウザーから利用できる攻撃用の仮想マシン「Pwnbox」の利用時間が延長できたりと、アドバンテージが得られる。ただし、無料会員でもファーストステップとして十分に学習できる。

Starting Point(Machinesの始め方)

 実際にMachinesの問題に挑戦してみようと思っても、はじめは調査方法や脆弱性の特定方法、システムへの侵入方法などが分からないため戸惑うだろう。そのためHack The BoxではMachinesに挑戦する前の準備として、初学者向けの問題「Starting Point」が用意されている。内容はMachinesと同様に仮想マシンを起動してFlagを得ることが目標となるが、クリアまでの道筋が細かなタスクとして提示されるため、タスクを解くことでMachinesの問題を解くための基礎的な知識を得ることができるようになっている。

 メニューの「Starting Point」をクリックすると、TIRE 0からTIRE 2にレベル分けされた問題が一覧に表示される。最初はTIER 1と2はロックされているので、TIER 0の問題から挑戦していく必要がある。難易度はVery Easyからで、仮想マシンの起動からアクセス方法などについての説明も記載されている。

 Starting Pointの問題では、用語を解答するものからコマンドの実行結果を求めるものまで、ペネトレーションテストのスキルや基礎知識をステップバイステップで学ぶことができるタスクが用意されている。またStarting Pointの各問題(と前述のRetiredとなった問題)には、公式のWalkthrough(手順付きの解答)が用意されている。そのため、わからない問題はこれらに沿って解きながら学ぶことも可能だ。

 したがって、Hack The Boxに興味を持ったが、何から始めれば良いかわからないという場合は、Starting Pointから始めると良いだろう。

 なお、Hack The Box のWebサイトは基本的にすべて英語だが、ブラウザーの翻訳機能(例: Microsoft Edgeであればブラウザーの画面上で右クリックから日本語に翻訳を選択)を使用すれば、日本語で利用することができる。また、問題を解くためには、ブラウザー以外にも、調査を行うためのパソコン(一般的にはKali LinuxParrot OSをインストールしたもの)があるとよい。用意が難しい場合は、VirtualBoxやVMWareなどの仮想環境を用いれば、これらの環境を簡単に準備することができるだろう。なお、これらの環境の準備も難しい場合は、先述のブラウザーから利用できる「Pwnbox」で問題に挑戦することも可能だ。

類似の学習プラットフォーム

 ここまでHack The Boxについて紹介してきたが、類似の学習プラットフォームである「Try Hack Me 」と「VulnHub」の2つのサービスも解説しておこう。

Try Hack Me

 Try Hack Meは、Hack The Boxと同様に、ゲーミフィケーションを取り入れた学習プラットフォームであり、ステップバイステップで解いていく問題が、数多く用意されている。また、使用するツールや脆弱性の種類、あるいはサイバーセキュリティ上の職種に対応した学習コースが組まれており、ポイントを絞った学習ができるようになっている。Hack The Boxと比較すると、より初学者向けの内容となっている。

Try Hack Me

VulnHub

  VulnHubは、予め脆弱性が組み込まれた仮想マシンのイメージを無料で公開しているWebサイトである。2023年時点で、約700個の仮想マシンイメージが登録されている。ほかのサービスは、問題の対象となる仮想マシンを起動してIPアドレスが提供されるため、オンラインでアクセスして問題を解く形式だが、VulnHubは仮想イメージをダウンロードして、自分の所有する環境で起動する必要がある。また、各問題は今まで紹介した2つのサービスほどカテゴライズされていないため、挑戦したい問題を見つけるのが少し難しいかもしれない。

VulnHub

最後に

 今回はペネトレーションテストの実践的な学習方法の1つとしてHack The Boxを紹介した。脆弱性の調査や悪用の可否、それらを用いたシステムへの侵入といった調査方法を学ぶことは一見難しそうに感じるだろう。しかしStarting Pointの問題やWalkthroughを利用することで、サイバーセキュリティの初学者でもスムーズに、そして楽しく知識やスキルの習得が可能だ。さらに基礎が学べたらMachinesやChallengesでより技術を磨くことができる。興味を持った方は挑戦してみてはいかがだろうか。