ペネトレーション・テスト

Webインフラ関連のトレンド
実際に攻撃することで何が起きるのかという点に着目する
 今回のトピックは、問い合わせが多いペネトレーション・テストについて語ってみたいと思います。

 ウィキペディアでペネトレーション・テストを検索すると、

「ネットワークに接続されているコンピュータシステムに対し、実際に既知の技術を用いて侵入を試みることで、システムに脆弱性がないかどうかテストする手法のこと。侵入実験または侵入テストとも言われる。」

と記載されています。本来のpenetrationは、「浸透」、「弾丸の貫通」などを意味します。攻撃に対して防御が有効かどうかをチェックするためのテストを実機に対して行います。攻撃者と同じツール(Tool)、戦術(Tactics)、手順(Process)(TTP)を用いてテストを実施することで、本当の問題点を把握し、意味のある改善を促します。
 ・攻撃されていることを正確に検知できるのか?
 ・どのような情報が攻撃により取得できるのか?
 ・攻撃を受けた場合システム的にどのような挙動になるか?
 ・攻撃された場合に実際にどこまで侵入できるのか?
実際に攻撃することで何が起きるのかという点に着目して検査をするわけです。

 脆弱性検査の手法には他に「ファジング」と呼ばれる方法があります。ファジングでは、脆弱性を発現させやすいデータやファイルを検査対象に送り込みその反応を見て脆弱性の有無を検査します。実際に攻撃を行うわけではなく「ペネトレーション・テスト」とは方法が異なります。
実際の攻撃はソーシャル・エンジニアリングから始まる
 攻撃者による実際の攻撃を考えてみます。攻撃を開始する前に関連する情報収集を行うソーシャル・エンジニアリングから始めます。うまく情報が収集できた場合には、当然ですがその後の攻撃が楽になります。攻撃の起点も組織外(例えばインターネット経由で)からなのか、内部からの攻撃なのかでも方法やその対処法は異なります。

・外部ペネトレーション・テスト
 - 攻撃者が外部から侵入してくることを想定したテストです。
・内部ペネトレーション・テスト
 - 攻撃者が内部にすでに侵入していることを前提にしたテストです。
・ブラックボックステスト
 - 攻撃者と同条件、すなわちシステムの情報を検査者に何も教えずに実施する方法です。
・ホワイトボックステスト
 - 設計書、仕様書、コンフィグファイル、ソースコードなどを事前に開示し分析して、脆弱性を洗い出す方法です。

 インターネット経由での外部ペネトレーションをブラックボックステストで実施する。内部犯行を前提にホワイトボックステストを内部ペネトレーションテストで実施する。といった具合に、あらかじめ想定条件を設定して検査を実施していきます。
攻撃者が利用するツールを模擬するペネトレーション・ツールを活用する
 攻撃者と同じツール(Tool)、戦術(Tactics)、手順(Process)(TTP)を用いてテストを実施するといっても、対象のサービスに合った形でペネトレーション・テストを実施しないと意味がありません。そもそも攻撃者が使ってくる本物のツールを入手することも実際には困難です。そこで攻撃者が利用するツールを模擬して(既知の攻撃を参考にして)設計されたペネトレーション・ツールが活用されます。

Nmap Security Scanner
https://nmap.org/

Nessus vulnerability scanner
https://www.tenable.com/products/nessus-vulnerability-scanner

Metasploit
https://www.metasploit.com/

OpenVAS
http://www.openvas.org

 WEBページの診断には、以下に紹介するようなペネトレーション(フォレンジック)ツールがあります。ネットワーク全般を網羅する形のツールよりも、より特定のサービスに限定した検査が実施できます。

Nikto web server scanner
https://cirt.net/Nikto2

The OWASP Zed Attack Proxy (ZAP)
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

 これらのWEB特化型のツールでは、クロスサイトスクリプティングやSQLインジェクションなどWEBサービス固有の脆弱性の検査も行えます。

WPScan (WordPress vulnerability scanner)
https://wpscan.org
WordPressへのセキュリティ診断専用のプログラムもあります。

 これらのツールを利用した診断を実施する場合、ツールが出力する脆弱性レポートを見るだけではなく、検査対象のシステムでの検知ログなどを精査して、検査時の攻撃に対応するログを精査し、攻撃が検知できているかを確認することも重要です。
セキュリティにおいても継続的な改善が重要
 一度ペネトレーション・テストを実施すると「これで大丈夫」と安心してしまう場合もあるようですが、ことセキュリティに関しては継続的な改善が重要です。攻撃者は運用上のシステムに残存している既知の脆弱性を狙ったり、設計段階での不備を突いた攻撃を実施したりするだけでなく、運用過程で生じた脆弱性や未知の脆弱性を独自に発見し攻撃してくることもあります。万一の自体に備えてCSIRTやSOCといった組織を整備し、情報共有のプロセスを整えておくことも重要です。
 そして得られた最新のセキュリティ関連情報をもとに、逐次脆弱性対策を実施できる環境を整備しておくことも大切なポイントです。WEBサービスに特化すれば、アクセリアにはセキュリティを考慮した上で事業継続する(WEBのサービスを提供する)技術があると自負しています。

■関連ページ
【アクセリアのサービス一覧】
 ・サービスNAVI

小林 和真

アクセリア株式会社 取締役
奈良先端科学技術大学院大学 客員教授
慶應義塾大学政策メディア研究科 特任教授
制御システムセキュリティセンター 顧問
情報通信研究機構 短時間研究員
ファットウェア株式会社 代表取締役社長