NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの谷口です。
今回はAWS環境向けのプラットフォーム診断サービスであるAmazon InspectorのEC2スキャンとCISスキャンの検出結果を検証してみました。
Amazon Inspectorとは
Amazon Inspector [1]はAWSのEC2やECR、Lambdaに対して自動かつ継続的に脆弱性スキャンを行い、診断結果を管理するサービスです。
2021年にAmazon Inspector v2として大幅に機能やUIなどがアップデートされ、旧バージョンであるAmazon Inspector classicに比べて利便性が向上しました。また、2024年1月にはCISベンチマーク評価がサポート [2]されるようになりました。なお、旧バージョンのclassicは2024年10月時点ではまだサービスとして残されています。
スキャンの流れについては「Amazon Inspector (v2) を設定してみた」[3]、Inspector v2とclassicの違いについては「Amazon Inspector Classic と Amazon Inspector v2 の違いをまとめてみた」[4]が参考になります。
評価環境
今回の評価では、AWSのPrivate Subnet上に配置したEC2インスタンスに対し、Public Subnet上に配置した踏み台サーバを経由して、Amazon InspectorでEC2スキャンとCISスキャンを実行しました。また、検出結果比較のために同じプラットフォーム診断ツールであるNessus Professional [5]によるスキャンも行いました。
使用環境
次の環境を使用しました。
-
プラットフォーム診断サービス
- Amazon Inspector
- Nessus Professional
-
評価用EC2インスタンス
- Windows Server 2022
- Amazon Linux 2023
-
Nessusサーバ(Amazon Linux 2)
-
踏み台サーバ(Amazon Linux 2)
環境構成図
環境構成は次の図です。
評価準備
脆弱性スキャンを実行するためにEC2インスタンスを用意します。今回は、サーバ向けによく利用されているOSであるWindows とLinuxを対象にして、2024年7月時点のWindows Server 2022とAmazon Linux 2023を選択しました。CISスキャンも実行するため、要塞化前後の比較用にCIS Hardened Images [6]を利用して堅牢化したAMIと、堅牢化していない通常のAMIをOS毎に2台、合計4台用意します。また、Nessusを使用するためのNessus用サーバも立ち上げ、Nessusをインストールします。Amazon InspectorはAWSマネジメントコンソールから直接使用できるため専用のサーバは必要ありません。
脆弱性を残した状態で評価するため、これらのEC2インスタンスはPrivate Subnet上に配置して、アクセスする際にはPublic Subnet上に配置した踏み台サーバを経由するようにします。
スキャン実行
Amazon InspectorとNessus Professionalで脆弱性スキャンとCISスキャンを各EC2インスタンスに対して実行します。なお、CISスキャンでは各PF診断サービスで利用可能な最新のCIS Benchmarks LEVEL_1を使用して実行しています。CIS Benchmarksについては「CIS Benchmarksを活用したシステムの堅牢化について」[7]が参考になります。
スキャン結果
Amazon InspectorとNessus Professionalでのスキャン結果は次の通りです。
脆弱性スキャン
検出数に大きく差異が見られるように感じますが、これはNessus Professionalがパッケージやサービス毎に検出結果をまとめているのに対して、Amazon InspectorではCVE毎に検出結果を分けているためでした。実際の検出内容をそれぞれ見てみるとWindows Server 2022において、Amazon InspectorとNessus Professionalでそれぞれ1件未検出でしたが、それ以外は同じ内容でした。
未検出の項目の詳細と見解は次の通りです。
Amazon Inspectorの未検出項目(Nessus Professionalでの検出項目)
- Microsoft Edge (Chromium ベース) のなりすましの脆弱性(CVE-2024-38083)
見解:Microsoft Edgeに関係する脆弱性ですが、Microsoft社が発表しているセキュリティ更新プログラムを確認すると、iOS版とAndroid版向けに更新プログラムがリリースされていたため、Nessus Professional側での過検知と考えています。しかし、CVE-2024-38082においてPC版を対象として本CVEと同じ説明が記載されており、そちらはAmazon InspectorとNessus Professionalでも検出されていました。
Nessus Professionalでの未検出項目(Amazon Inspectorでの検出項目)
- Intel: CVE-2022-0001 Branch History Injection(CVE-2022-0001)
見解:複数の Intel(R) Processor における脆弱性ですが、今回の評価環境では本CVEで影響を受けるCPUを使用しているため、Amazon Inspectorでの本項目についての検出は正しいと考えています。
影響度に関しては、どちらもCVSS値を基準として影響度を判定していますが、Nessus Professionalではパッケージやサービス毎に検出結果をまとめているため、複数のCVEが検出された項目については1つのCVSS値を参照することからAmazon Inspectorと影響度が異なっています。
CISスキャン
Windows Server 2022に対しては未評価が2件ありましたが、殆んど同じ検出結果でした。
Amazon Linux 2023に対してはAmazon Inspector側の未評価数が少し多く目立ちますが、概ね同じ検出結果となりました。
これらの未評価項目は、人による判断が必要な項目やAWS独自の設定(AWSで使用するパッケージやプロファイル)に起因する項目でした。
例えば、「sudoユーザーが適切であるか」や「ファイルのパーミッション設定は適切か」「インストールしているソフトウェアは意図しているものか」などが挙げられます。
Nessus Professionalでも人による判断が必要な項目はwarningとなっていました。
また、評価の合計数がAmazon Inspectorでは数個少ないですが、Amazon Inspector側で適用されているCIS benchmarksのバージョンがNessus Professionalよりも古いためです。
まとめ
以上のスキャン結果比較からNessus ProfessionalとAmazon Inspectorは同等の脆弱性を検出できていることがわかりました。Amazon Inspectorを有効にしておくことで、AWS環境下にあるスキャン対象に対しては、脆弱性スキャンが継続的に行われるため、脆弱性の早期検知・対処に有用なツールであると思いました。
参考文献
[1] Amazon Inspector
https://aws.amazon.com/jp/inspector/
[2] Amazon Inspector が EC2 インスタンスのオペレーティングシステムの CIS ベンチマーク評価のサポートを開始
https://aws.amazon.com/jp/about-aws/whats-new/2024/01/amazon-inspector-cis-benchmark-assessments-operating-systems-ec2-instances/
[3] Amazon Inspector (v2) を設定してみた
https://blog.serverworks.co.jp/amazon-inspector-v2
[4] Amazon Inspector Classic と Amazon Inspector v2 の違いをまとめてみた
https://dev.classmethod.jp/articles/difference-from-classic-and-v2/
[5] Tenable Nessus® Professional
https://jp.tenable.com/products/nessus/nessus-professional
[6] CIS Hardened Images®
https://www.cisecurity.org/cis-hardened-images
[7] CIS Benchmarksを活用したシステムの堅牢化について
https://group.nec/jp/ja/solutions/cybersecurity/blog/200522
執筆者プロフィール
谷口 太郎(たにぐち たろう)
セキュリティ技術センター 実装技術アーキテクチャチーム
主にリスクアセスメントやクラウドセキュリティなどを担当し、NECグループのセキュア開発・運用を推進。