脆弱性診断の分類
業務にて脆弱性診断について知る必要が出てきたので,基本的な内容を整理しておきたく,記事としました.
脆弱性とは
まずは脆弱性という言葉の定義から.
IPAの資料では,次のような定義をしています.
もう一つ,米国国立標準技術研究所(NIST)のSP800(※)シリーズでは下記のように定義されています.
脅威源によってつけこまれるか衝かれるおそれがある情報システム、システムセキュリティの手順、内部制御、または導入での弱点。*2
※SP800:Special Publications (SP800シリーズ)のこと.NISTの情報技術に関する研究を行うITL(Information Technology Laboratory)において,コンピュータセキュリティに関して研究を行うCSD(Computer Security Division)が発行するコンピュータセキュリティ関係のレポート.セキュリティ分野を幅広く網羅している.
ここで,「脅威源」という言葉が出てきたので,あわせて確認しておきます.SP800シリーズの定義は次の通り.
(i) 脆弱性を故意に悪用することを目指す意図および手法、あるいは (ii) 脆弱性が偶発的に衝かれる状況および手法、のいずれか。 *3
ざっくりいえば脆弱性とは,「情報システムそのものや,その導入によって脅威源から悪用される可能性のある点」といえるでしょうか.
脆弱性診断とは
脆弱性診断についても確認します.脆弱性がシステムやその周辺における弱点なので,その弱点を見つけることを指すことが推測されます.似たような意味で使用される「ペネトレーションテスト」という言葉もあるので,下記の通り定義を引用します.
定義 | |
---|---|
脆弱性診断 | ・システムにおけるセキュリティ上の弱点を特定するもの *4 ・脆弱性やセキュリティ機能の不足を「網羅的に洗い出す」ことを目的とし、システムに内在するリスクをすべて洗い出すこと *5 |
ペネトレーションテスト | ・「脆弱性を悪用する」ことで、明確な意図を持った攻撃者がその目的を達成することが可能であるかどうかを検証すること *6 |
脆弱性診断が対象システムに対し,起こり得る脆弱性を網羅的に確認していくのに対し,ペネトレーションテストにはそういった側面はないことがわかります.ペネトレーションテストでは,対象に侵入可能か検証することがメインで,結果として脆弱性が発見されるという違いがあると理解しておくと良いかもしれません.
ただし,テストベンダーによっては両者を混同している場合もあり,それぞれの文脈で何を指すのかを意識できるようになる必要があると感じました.
脆弱性診断の種類
ここからは,脆弱性診断についてもう少し詳しく見ていきます.脆弱性はシステムのあらゆる場所に潜むので,脆弱性診断自体も,システムのどの部分を対象とするかで分類されます.以下に一般的な分類を表にしています.
種類 | 対象 |
---|---|
プラットフォーム脆弱性診断 | OS,ミドルウェア,ネットワーク |
Webアプリケーション脆弱性診断 | Webアプリケーション,アプリケーションミドルウェア |
モバイルアプリケーション脆弱性診断 | スマートフォンアプリケーション |
種類をわけることができるように,テストベンダーもこの種類ごとにサービスを提供しています.以降は,プラットフォームとWebアプリケーション診断についてさらに見ていきます.
プラットフォーム脆弱性診断
プラットフォーム脆弱性診断では,サーバーやネットワーク機器に対し疑似的な攻撃的な通信を送り,脆弱性を検査します.診断は,通信元によって下記の通り,さらに分類されます.
診断 | 内容 |
---|---|
外部(リモート)診断 | 外部からアクセス可能な機器を対象に,悪用可能な脆弱性を明らかにする |
内部(オンサイト)診断 | 拠点,LAN内,DMZ等の内部ネットワークから悪用可能な脆弱性を明らかにする |
プラットフォーム脆弱性診断の主要な診断項目は次の通りです.
診断項目 | 内容 |
---|---|
ポートスキャン | 外部から通信可能なポートを調査し、不要なポートが攻撃に悪用される危険性がないか診断 |
各種サーバーに対する脆弱性診断 | OSやミドルウェアのバージョンが外部から取得できないか,脆弱性を含むバージョンでないか診断 |
設定の適正チェック | サーバーに最新のセキュリティパッチが適用されているか 等 |
Webアプリケーション脆弱性診断
Webアプリケーションとモバイルアプリケーションは,まとめてアプリケーションとして扱われる場合もあります.こちらでは,WebアプリケーションやWebAPIに疑似的な攻撃リクエストを送ることで,アプリケーションに情報漏洩や改ざんといった脆弱性がないか診断します.
診断項目 | 内容 |
---|---|
認証・認可 | ・認証の回避や、ログインIDやパスワードの強度が十分か診断 ・管理者権限への昇格や権限の無い情報へのアクセスができないか診断 |
セッション管理 | セッションID等の機密情報を含むCookieにおけるsecure属性が欠如していないか診断 |
実装の不備 | SQLインジェクション,クロスサイトスクリプティング,ディレクトリトラバーサルへの対策診断 |
クラウド診断
近年は,AWSなどのクラウドサービスを利用したサーバーの構築が一般化しています.クラウドサービスについては,プラットフォーム診断とは別の,クラウドセキュリティ診断やAWS診断といったサービスとして,クラウドベンダーごとの診断サービスを提供するセキュリティベンダーも存在します.
クラウド診断では,下記のような内容が診断されます.
・セキュリティ設定の診断(セキュリティグループ)
・CIS(Center for Internet Security)等のベストプラクティスに基づく製品設定の診断
・各種暗号化の診断(データや通信が適切に暗号化されているか)
・AWSの場合,IAMや各種リソースへのアクセス権など
さいごに
脆弱性診断は,対象領域(プラットフォーム・Webアプリケーション)ごとに分かれること,近年はクラウドサービスに対し,ベストプラクティスに基づく設定状況の診断もサービスとして提供されていることがわかりました.
プラットフォームやWebアプリケーション診断の主要な項目は,おさえておきたいと感じました.
今回の記事執筆にあたり,デジタル庁の
政府情報システムにおける脆弱性診断導入ガイドラインに目を通しましたが,この内容は,記事作成前にまさにまとめた情報として知りたかったことが記載されているので,脆弱性診断について,知る必要が出てきた方にはお勧めします.今回は以上になります.