ペンテストの種類
ペネトレーションテストは一律ではなく、ホワイトボックス、グレーボックス、ブラックボックスの3種類が存在します。
システムの脆弱性を検証する際、ペンテスターが利用できる情報量がアクセスレベルに大きく影響します。これは、ハッカーがシステムに関する情報をどれだけ持っているかで被害が変わるのと同じです。
ホワイトボックステストの状況では、ペンテスターはサイトのネットワーク情報に完全にアクセスできます。この方法では、基本のURLからネットワークマップ、ソースコード、その他の認証情報まで、内部と外部の脆弱性を幅広く調査できます。
実際のケースとしては、従業員が不正行為に走った場合や、外部者が従業員の認証情報を盗んだ場合などが考えられます。
通常、ペンテスターは技術チームやセキュリティチームと連携し、大量のデータから可能な限り多くの脆弱性を発見します。この工程は、特に顧客の金融情報や個人情報を扱うサイトにおいて、徹底的な検証に有用です。
グレーボックステストでは、ペンテスターは組織に関する一部の情報にアクセスできます。これは、企業情報を多く持つサイト利用者や、ユーザーアカウントに不正に侵入したハッカーに似ています。
内部アカウントであれば、サイトの詳細情報や設計・構造に関する文書にアクセスできます。このため、内部情報がサイバー脅威の主要な原因となることが多く、グレーボックステストは最も現実的なリスクに焦点を合わせる点で有用です。
ただし、白箱テストに比べるとアクセスできる情報は限られているため、新たな悪用可能な抜け穴が見つかる可能性は否定できません。それでも、多くの商用企業や会員専用サイトで採用されています。
ブラックボックステストは、白箱テストとは正反対の状況です。サイトに関する情報はほとんど得られません。
まるで、初めて訪れたハッカーが外部から不正アクセスを試みるようなものです。ハッカーは公開情報だけを頼りにするため、ブラックボックスシミュレーションでも同様の状況となります。目的は、ネットワーク外からシステムがどのように悪用されるかを確認することです。
情報が公開されていないため、ペンテスター自身でターゲットのネットワークマップを作成する必要があり、時間がかかります。
白箱テストでは静的コード解析が可能ですが、ブラックボックステストでは動的解析(現在稼働中のプログラムの解析)のみ実施されます。それでも、動的解析技術は脆弱性の検出に効果的です。
ペネトレーションテストは、企業にとって任意ではない場合もあります。近年増加するサイバー犯罪を受け、セキュリティ監査の厳格なコンプライアンス要件のひとつとなりました。
各業界の組織は、システムのペンテスト評価を実施し報告する義務があります。特に、決済カード業界、金融機関、技術業界、医療分野などに重点が置かれています。
Mastercard、Visa、American Express などのブランドカード会社は、ほぼ世界中に利用者を抱えています。大量の顧客個人情報や数十億の資金がこれらのネットワークに保管されており、デビットカードやクレジットカードをサイバー犯罪や詐欺から守ることが非常に重要です。
2004年に策定されたこのセキュリティ標準では、少なくとも四半期ごとまたは半年ごとに脆弱性スキャンとペネトレーションテストの実施が求められ、システム変更後のテストも推奨されます。
このセキュリティ標準では、セキュリティ、可用性、処理の完全性、機密性、プライバシーの5原則が適用されます。
米国公認会計士協会 (AICPA) により開発されたSOC 2は、デジタルサービス提供者がクライアントデータを安全に管理し、提携先の利益を守るために設けられました。
例えばSaaSプロバイダーを選定する際には、SOC 2認証が重要です。技術系サービス全般においても必須であり、外部監査によって認証を取得する必要があります。
幸い、このセキュリティ標準の柔軟性により、各企業が特定のニーズに合わせた管理項目の調整が可能です。
米国の医療機関はHIPAA準拠の法律の対象です。医師は患者の診療記録のプライバシーを守る義務があり、医療機関全体も医療データを守る責任があります。
現在、こうした情報はほとんど病院のサーバに保管されているため、医療機関はペネトレーションテストを含めた複数のセキュリティ対策を講じる必要があります。必要に応じて、技術的および非技術的な評価が求められます。
万が一のハックで情報漏洩が発生した場合、過失に対して1件あたり$100~$50,000の罰金が科されるなど、法的な影響があります。
証券・取引部門も、常にデータ保護技術やセキュリティ対策が求められる分野です。これらの組織に対するサイバーセキュリティの規定を策定しているのがFINRAです。FINRAによれば、金融機関は認定第三者機関を通じた堅牢なペンテストプログラムを実施する必要があります。
FINRAの準拠規定により、証券会社は1933年の証券取引法の要件を満たすことができます。
ネットワークやアプリを本番稼働する前に、ペンテストを実施することが重要です。
導入時はシステムが常に変化しているため、実施時期としては早すぎる可能性があります。変更に伴い、新たな脆弱性が現れる恐れがあるためです。
一方、事前のペンテストなしにネットワークを本番稼働させるのは危険です。期待される投資収益率に達する前に、ハッカーに侵入されるリスクが高まります。
その他、ペンテストが必要な場合は以下の通りです。
セキュリティ標準のコンプライアンス要件を満たすためにペンテストを行うのが一般的な理由のひとつです。例えばFINRAやHIPAAは法的拘束力があり、金融や医療機関は定期的なペンテストを実施する義務があります。
法令違反の際の影響は大きいため、各組織は従う必要があります。また、これらの規定はペンテストの実施頻度も示しています。
サイバー攻撃が発生すると、被害を受けた企業はペンテストを実施せざるを得なくなります。このプロセスは、侵害の原因を特定し、脆弱性を修正するのに役立ちます。
ペンテストを対策として用いることで問題を解決できますが、サイバー攻撃後は企業に大きな経済的打撃が生じることが多く、ブランドイメージの損傷は信頼回復に時間がかかるため、事前対策が望ましいです。
ペンテストは費用がかかるため、予算が限られている場合、実施が難しいことがあります。完全なペンテストが困難な企業向けの代替手段がいくつか存在します。
バグバウンティは、企業主導で倫理的ハッカーが実施するセキュリティテストで、サイバー攻撃を未然に防ぐことを目的としています。脆弱性を発見したハッカーには報酬が支払われます。
完全なペンテストでは一括の料金が設定されるのに対し、バグバウンティプログラムでは、発見された脆弱性ごとに報酬額が設定され、企業は実際に発見された弱点に対してのみ支払いを行います。また、脆弱性は個別に検証されることも可能です。
ただし、バグバウンティでは倫理的ハッカーがアクセスできるのは公開情報のみのため、ブラックボックステストが中心となります。
脆弱性スキャンは、ネットワーク上の重大な脆弱性を検出するためのセキュリティテストツールです。ハッカーが侵入できる抜け穴を探し出し、報告します。
これはペンテストの一部と似ていますが、脆弱性スキャンツールはシステムの潜在的な弱点について定期的な報告を行うだけです。一方、全面的なペンテストでは、脆弱性を実際に悪用して、その抜け穴が重大なリスクに発展するかどうかを検証します。
つまり、脆弱性スキャンはペンテストの一部に過ぎません。
ソースコード解析ツールを利用すると、アプリ開発時に見逃されたエラーを発見するため、システムのソースコードを詳細に検証できます。コードの各行を綿密にチェックし、潜在的な脆弱性を報告します。
この解析は、後にペンテスターが発見した脆弱性をさらに掘り下げるための下準備となることが多いです。
暗号化のエラーに加え、ソースコード解析では以下の点も検出できます:
ソースコード解析は、ペンテストの迅速な実施を助け、コスト削減にも寄与します。
ペネトレーションテストは、ハッカーのように計画、偵察、スキャン、アクセス取得、維持、結果分析を行いながらセキュリティの壁を乗り越える、詳細なセキュリティ手法です。
目的は、検出された抜け穴を踏まえて、ウェブアプリのファイアウォール(WAF)を適切に設定し、様々な脅威に耐えられる体制を築くことにあります。ペンテストの実施頻度は、企業規模、予算、コンプライアンスの厳しさなどに依存しますが、定期的なペンテストはサイバーセキュリティを維持する上で大いに役立ちます。
Penetration Testing Methodologies - OWASP
A collection of penetration testing - Github
Penetration Testing - Github topics
最新情報を購読