こんにちは。GMOインターネットでセキュリティ担当している割田です。今回は、セキュリティ対策でテストに分類される「ペネトレーションテスト(ペンテスト)」を実施するペンテスターのスキルを効果的にアップさせる方法についてご紹介します。
はじめに
セキュリティ対策には、色々な段階のものがありますが、一般的に脆弱性の確認手段としては、『診断』と『テスト』があります。
診断網羅的に脆弱性の可能性を確認テスト実際の挙動で脆弱性有無を確認
また、それらテストの中に「ペネトレーションテスト」というものがあります。
「ペネトレーションテスト」とは、対象環境の構成要素を元に攻撃シナリオを作り、そのシナリオと専門知識を武器に、対象環境の様々な脆弱性を深く調査するテストです。
そして「ペネトレーションテスト」の技術者を『ペンテスター』と呼びます。
ペンテスターに関する基礎知識
ペンテスターとペネトレーションテスト環境
ペンテスターが、ペネトレーションテストを学習するためには、テスト環境の準備が必要です。
テスト環境の構成要素
ネットワークを含むインフラ環境アプリケーションデータベースなど
ペンテスターへの道
ここからはペンテスターへの道として、スキルアップ方法の課題を記します。
スキルアップ方法一覧
『ペンテスター』のスキルを効果的に向上させるには、サービス環境と同等の環境整備が必要であり、それら環境が無いとシナリオ作成や攻撃方法の幅が少なく効果的な学習ができません。学習環境を利用する方法として大きく分けて下記の3つがあります。
自力構築競技参加外部サービス利用
具体的には以下を指します。
1自力構築ローカル環境やConoHaなどのVPS環境に ●1から構築 ●外部提供のものを利用して構築2競技参加外部や内部で開催される競技へ参加する ●ハードニングプロジェクト ●CTF(Capture The Flag)等への競技参加3外部サービス利用環境提供している環境を利用する ●OSCP資格勉強用環境 ●Hack The BOX環境
環境構築における課題
しかし、実際問題、自力で環境構築する事は、とても大変です。具体的に以下のようなことが考えられます。
テスト環境自作の難点
●複合環境の準備 サービス環境と同様の複合環境(OSなど)を用意する必要がある●脆弱性の準備 検証練習をするための脆弱性を持つ環境を準備する必要がある●攻撃シナリオの考慮 効果的に学習できるように複数のシナリオを考える必要がある●難易度の考慮 利用者に合わせた難易度の環境が必要である●初心者への考慮 初心者でも検証方法を理解するための資料(WriteUP)が必要である
オススメのスキルアップ方法
上記で記した課題の解決策として、今回私が個人的にオススメしたい方法は、『外部サービスのHack The Box環境を利用する方法』です。
※Hack The Boxとは、セキュリティをゲーム形式で学習できるオンライン学習 のプラットフォームです。色々な脆弱性を含むサーバ環境が複数用意されてお り、サーバ環境の管理者権限を取得する事で、点数を得る事が出来ます。
参照:https://www.hackthebox.eu/
オススメするポイントは多くありますが、4つに絞ってご紹介します。
1.いろいろな環境が用意されている
様々なOS(Linux/Windows等)多種多様な脆弱性色々な攻撃が体験できるシナリオが用意されている
2.難易度の範囲が広い
初心者用でも楽しめる環境がある経験者も楽しめる難易度の高い環境もある
3.困ったとき用のWriteUPがある
攻略方法のヒントが公式に記載された資料(WriteUP)がある※動画などが付いているものもあり初心者でもわかる内容になっている。
4.ゲーム要素もあり楽しめる
点数制度があり、ゲーム感覚でクリアを楽しめる簡単なものから難しいものまで幅広く環境があるサイト自体も遊び心がある作りになっていて楽しい
ペンテスターがペネトレーションテストのスキルに集中して学習できる。また、初心者から熟練者までが、継続的に楽しみながらスキルアップ出来る良い環境だと個人的に感じています。
余談
実は、夏季休暇中の夜は『Hack the Box』に勤しんでいました。まだまだ遊び足りないので、ライフワーク的に続ける予定です。
弊社では、社内でのハードニングイベントも実施しますので、そちらの環境(内製)にも活かして行きたいと考えています。
おわりに
今回は、ペンテスターの効果的なスキルアップ方法として『Hack The BOX』をお勧めしましたが、興味もって頂けましたでしょうか。
セキュリティエンジニアの仕事は見えづらいものなので少しでも興味を持って頂けたら嬉しいです。