メニュー
おすすめコラム

2019年3月15日
常識を疑え!ハッカー視点のセキュリティ
筆者)株式会社トライコーダ 上野宣

第13回 脆弱性診断とペネトレーションテストの違い

本連載でもたびたび登場する「ペネトレーションテスト」ですが、セキュリティのテストである「脆弱性診断」とは何が違うのでしょうか。 両者はどちらもセキュリティのテストですが、目的や手法、得られる結果などが異なります。
Webアプリケーション脆弱性診断ガイドラインなどを作成している「脆弱性診断士スキルマッププロジェクト(https://www.owasp.org/index.php/Pentester_Skillmap_Project_JP)」の代表も務める筆者がこの2つの違いを解説します。

脆弱性診断とペネトレーションテストの違い

「脆弱性診断」と「ペネトレーションテスト」は何が違うのでしょうか。事業者によっては「脆弱性診断」を「セキュリティ診断」や「セキュリティ検査」、「脆弱性検査」と言っているところもあります。「ペネトレーションテスト」は「侵入テスト」と呼ばれていることもあります。

脆弱性診断

目的:脆弱性とセキュリティ機能の不足を網羅的に調査
手法:ガイドラインなどに従って定型的な手法で調査を行う
調査対象:指定されたWebアプリケーションやIPアドレスごと
結果:発見された脆弱性やセキュリティ機能の不足の一覧(リスクの高いものから低いものまですべて)

ペネトレーションテスト

目的:明確な意図を持った攻撃者にその目的が達成されてしまうかを検証
手法:実際の攻撃者が使用しているツールや脆弱性、ソーシャルエンジニアリングなどを利用して一定期間内で目的を達成できるかの調査を行う(網羅的に脆弱性の調査を行うわけではない)
調査対象:その組織が持つすべてのシステム、もしくは指定されたシステム全体
結果:目的達成までの侵入経路や行った攻撃シナリオ

まず、大きく違う点としては、脆弱性診断は網羅的に脆弱性を探すサービスなのに対して、ペネトレーションテストは網羅的な脆弱性の調査を積極的には行いません。ペネトレーションテストの場合は、目的達成につながる脆弱性や問題点を1つでも利用できることがわかればいいのです。
つまり、脆弱性診断は発見された脆弱性やセキュリティ機能の不足をリスクの高いものから低いものまですべて報告するのに対して、ペネトレーションテストはそうではありません。場合によっては、発見はしたけど、目的達成に関係がなくリスクの低い脆弱性であると報告書には記載されないこともあります。

ペネトレーションテストでは、作成した攻撃シナリオに合わせてマルウェア的なプログラムを作成し、ソーシャルエンジニアリングの手法によって従業員を狙ったりすることもあります。また、マルウェアに感染した従業員がいて、すでに侵入されているという前提で、内部ネットワークのどこかからかテストを開始することもあります。
攻撃者が行うように、内部ネットワークの他のコンピューターを攻撃して乗っ取る横展開をしたり、Active Directoryがある場合にはドメイン管理者を乗っ取ったりすることで目的の遂行に近づきます。

貴社のセキュリティ対策は総合的に機能しているか?

ペネトレーションテストが国内で話題になり始めたのは、金融庁が2018年5月に公開した『諸外国の「脅威ベースのペネトレーションテスト(TLPT)」に関する報告書の公表について』という報告書が出た頃でしょう。
「脅威ベースのペネトレーションテスト(TLPT)」とは、対象企業ごとに脅威分析を行い、個別にカスタマイズした攻撃シナリオに基づいて現実の脅威を再現する実戦的な評価手法です。ここで想定している「脅威」とは、明確な意図を持った攻撃者によってもたらされるものです。攻撃者には動機があり、その動機によって組織の資産が脅かされます。

TLPTの目的として「現実世界をまねたサイバーインシデントに対する金融機関のレジリエンス能力を評価し、気づきを与えることにある」とあります。「レジリエンス」とは「回復力」と言った意味ですが、サイバーの世界でのレジリエンスとは事故が起きることを前提として、被害からどう復旧するかであるとか、安全に運用されるための技術を整備するといったことを指します。つまり、レジリエンス能力とは組織の被害を最小限に留める力です。

脆弱性診断は脆弱性診断士によって一方的にシステムの調査が行われますが、ペネトレーションテストでは攻撃側と防御側に分かれることもあります。攻撃側を「Red Team」、防御側を「Blue Team」と呼びます。攻撃側は実際に攻撃者が使っている手法を駆使して、目撃達成に向けて攻撃を仕掛ける一方、防御側はそれらを検知したり防御したりということをリアルタイムに行います。通常、防御側はその組織のCSIRTなどがその役割を担います。テスト実施後には、双方で議論を行う「Purple Teaming」が行われることもあります。

ペネトレーションテストを行うことは、貴社が導入しているセキュリティ対策や施策などが総合的に機能しているかを確かめることです。ペネトレーションテストによって、技術的に弱い箇所や、プロセス的に問題のある箇所が浮き彫りになります。
もし、個別のセキュリティ対策には自信はあるが、総合力を知りたいという場合にはペネトレーションテストを依頼してみるとよいでしょう。

Copyright © NEC Fielding, Ltd, 2019. All rights reserved.