[アップデート] Amazon Inspector v2がEC2インスタンスのCISベンチマークの評価をサポートしました

[アップデート] Amazon Inspector v2がEC2インスタンスのCISベンチマークの評価をサポートしました

要件の中でCISベンチマークへの準拠が求められている場合に
Clock Icon2024.01.29

Inspector v2でもCISベンチマークの評価をしたい

こんにちは、のんピ(@non____97)です。

皆さんはInspector v2でもCISベンチマークの評価をしたいなと思ったことはありますか? 私はあります。

Inspector Classicでは以下記事で紹介しているとおり、EC2インスタンスに対してCISベンチマークの評価をすることが可能です。

https://dev.classmethod.jp/articles/amazon-inspector-host-assessment-cis/

一方、Inspector v2ではできませんでした。以下InspectorのFAQにも「InspectorはCISベンチマークの評価をサポートしていない」、「CISベンチマークの評価をしたい場合はInspector Classicが使える」と記載されています。

Q: Amazon Inspector は「CIS オペレーティングシステムのセキュリティ設定ベンチマーク」スキャンを提供していますか?

いいえ。Amazon Inspector は現在 CIS スキャンをサポートしていませんが、この機能は将来追加される予定です。ただし、Amazon Inspector Classic で提供されている CIS スキャンルールパッケージを引き続き利用できます。

よくある質問 - Amazon Inspector | AWS

今回、Amazon Inspector v2がEC2インスタンスのCISベンチマークの評価をサポートしました。

https://aws.amazon.com/jp/about-aws/whats-new/2024/01/amazon-inspector-cis-benchmark-assessments-operating-systems-ec2-instances/

これでEC2インスタンス上の潜在的なセキュリティ上の問題や脆弱性の検出が簡単に行えます。

こちらの機能はInspectorが使用できるすべてのリージョンで使用できるようです。

実際に試してみたので紹介します。

いきなりまとめ

  • Inspector v2でEC2インスタンスのCISベンチマークの評価が可能になった
  • 主な評価要件は以下
    • サポート対象のOSであること
    • EC2インスタンスがSSMのマネージドノードであること
    • InspectorのDeep inspectionが有効であること
    • EC2インスタンスにInspector SSMプラグインがインストールされていること
    • EC2インスタンスのIAMロールにAmazonSSMManagedInstanceCoreポリシーとAmazonInspector2ManagedCisPolicyポリシーといったSSMがインスタンスを管理するための許可と、Amazon Inspector がそのインスタンスに対して CIS スキャンを実行するための許可されていること
  • 料金は評価されたEC2インスタンスの台数 × EC2インスタンスごとの評価回数 × $0.03
  • 評価はオンデマンドでもスケジュールによる定期実行も可能
  • 評価対象のEC2インスタンスはタグで指定する
  • AWS Organizations連携することも可能
  • 評価項目の除外はできない

ドキュメントを確認してみる

評価対象のEC2インスタンスの要件

ドキュメントからCISベンチマークの評価について調べてみます。

詳細は以下AWS公式ドキュメントに記載されています。

https://docs.aws.amazon.com/inspector/latest/user/scanning-cis.html

まず、評価対象のEC2インスタンスの要件です。

要件としては以下があります。

  • サポート対象のOSであること
  • EC2インスタンスがSSMのマネージドノードであること
  • InspectorのDeep inspectionが有効であること
  • EC2インスタンスにInspector SSMプラグインがインストールされていること
  • EC2インスタンスのIAMロールにAmazonSSMManagedInstanceCoreポリシーとAmazonInspector2ManagedCisPolicyポリシーといったSSMがインスタンスを管理するための許可と、Amazon Inspector がそのインスタンスに対して CIS スキャンを実行するための許可されていること

2024/1/29時点の対応OSは以下のとおりです。

Operating system Version CIS benchmark version
Amazon Linux 2 AL2 2.0.0
Amazon Linux 2023 AL2023 1.0.0
Windows Server 2019 2.0.0
Windows Server 2022 2.0.0

Supported operating systems: CIS scanning

UbuntuやRHELはサポートされていないので注意しましょう。

Deep inspectionは2023/4/17以降にInspectorをアクティベーションした場合は自動で有効になります。

Deep inspection is automatically activated as part of Amazon EC2 scanning for accounts that activate Amazon Inspector after April 17, 2023.

Activating or deactivating deep inspection

Deep inspectionを有効にすると、プログラミング言語のパッケージマネージャーからインストールしたパッケージの脆弱性を検出することも可能になります。詳細は以下記事をご覧ください。

https://dev.classmethod.jp/articles/amazon-inspector-deep-inspection-ec2-instances/#toc-3

料金

気になる料金は、その月に評価されたEC2インスタンスの台数と評価回数によって課金されます。

Inspectorの料金ページには$0.03 per assessment per instanceと記載がありました。

料金例も記載されています。

Example 8: Center for Internet Security (CIS) Benchmark assessments for operating systems in Amazon EC2 instances
You enter a new billing month for your US East (N. Virginia) deployment with 10 EC2 instances with the AWS Systems Manager agent installed. You schedule two monthly CIS Benchmark assessments for the 10 instances. Amazon Inspector charges in US East (N. Virginia) would be calculated as follows:

10 EC2 instances assessed twice at $0.03 each = $0.30
For the month, your Amazon Inspector bill will be $0.30.

Automated Vulnerability Management - Amazon Inspector Pricing - AWS

$0.30となっていますがper assessment per instanceで課金されるのであれば、2回スキャンする場合$0.60なような気がします。

やってみた

CISスキャンスケジュールの作成

実際にやってみます。

対象のEC2インスタンスは以下の2台です。

  • Amazon Linux 2023 (al2023-ami-2023.3.20240122.0-kernel-6.1-x86_64)
  • Windows Server 2022 (Windows_Server-2022-English-Full-Base-2024.01.16)

それぞれOSタグとしてAL2023Win2023を付与しています。

どちらのEC2インスタンスのIAMロールにもAmazonSSMManagedInstanceCoreポリシーとAmazonInspector2ManagedCisPolicyポリシーをアタッチしています。

InspectorのコンソールのCIS scansからCreate new scanをクリックします。

CIS scans

評価対象とCISベンチマークのレベルを設定します。今回は自アカウントの2つのEC2インスタンスをLevel 2でオンデマンドスキャンするように設定しました。

Create new scan CIS Scan Level 2

CISベンチマークのレベルは以下のとおり、Level 1かLevel 2を指定します。

Level 1 – recommends essential basic security settings that can be configured on any system. Implementing these settings should cause little or no interruption of service. The goal of these recommendations is to reduce the number of entry points into your systems, reducing your overall cybersecurity risks.

Level 2 – recommends more advanced security settings for high-security environments. Implementing these settings requires planning and coordination to minimize the risk of business impact. The goal of these recommendations is to help you achieve regulatory compliance.

Running CIS scans

Level 2はLevel 1を拡張しています。Level 2で評価した際の評価結果にはLevel 1の評価結果も含まれています。

どれがLevel 1かLevel 2なのかは実際にCISベンチマークをご覧ください。

https://www.cisecurity.org/cis-benchmarks

評価対象のAWSアカウントはAWS Organizationsと連携することも可能です。

When running CIS scans within an organization, member accounts and Amazon Inspector delegated administrators interact with CIS scan configurations and scan results in different ways.

When a delegated administrator creates a CIS scan configuration for all accounts or a list of member account IDs the organization owns that scan configuration. Whichever account is the current delegated administrator can manage scan configurations owned by the organization, even if a different account created them. CIS scan configurations owned by the organization will have an ARN that lists the organization ID as owner, following the pattern: arn:aws:inspector2:Region:111122223333:owner/OrganizationId/cis-configuration/scanId. The account ID will be the Organizations management account's ID.

Considerations for managing Amazon Inspector CIS scans in an AWS organization

AWS Organizationsと連携する場合は評価対象のAWSアカウントのIDを指定する形になります。OU単位での指定はできません。定期実行している場合、AWSアカウントが追加された際にはこちらにAWSアカウントIDを追加しておきましょう。

Target accounts

定期実行は日次、週次、月次で指定可能です。

  • Daily
    Repeats-Daily

  • Weekly
    Repeats-Weekly

  • Monthly
    Repeats-Monthly

月次で指定する場合、スキャンを実行する月の最初の曜日を指定する形です。「毎月4日にスキャンする」や「毎月第3の土曜日にスキャンする」といったことはできません。

ちなみに、Inspector ClassicにあったSNSトピックを設定する項目はありませんでした。

スキャンが開始されると以下のような画面になります。

CIS schedules CIS Scan Level 2

評価結果の確認

1分ほどでスキャンと評価が完了しました。

評価結果は以下のとおりです。大量です。評価項目毎に表示されています。

CIS Scan Level 2 Checks

Scanned resourcesタブをクリックすると評価対象のEC2インスタンス毎の結果を確認できます。

CIS Scan Level 2 Scanned resources

list-cis-scan-results-aggregated-by-target-resourceからでも確認できます。

> aws inspector2 list-cis-scan-results-aggregated-by-target-resource \
    --scan-arn arn:aws:inspector2:us-east-1:<AWSアカウントID>:owner/<AWSアカウントID>/cis-scan/8c05c713-9625-4ca2-8c18-a7901d38753a
{
    "targetResourceAggregations": [
        {
            "accountId": "<AWSアカウントID>",
            "platform": "amazon_linux_2023",
            "scanArn": "arn:aws:inspector2:us-east-1:<AWSアカウントID>:owner/<AWSアカウントID>/cis-scan/8c05c713-9625-4ca2-8c18-a7901d38753a",
            "statusCounts": {
                "failed": 92,
                "passed": 124,
                "skipped": 14
            },
            "targetResourceId": "i-001396d4a6f1d85d4",
            "targetResourceTags": {
                "Name": [
                    "AL2023"
                ],
                "OS": [
                    "AL2023"
                ]
            },
            "targetStatus": "COMPLETED"
        },
        {
            "accountId": "<AWSアカウントID>",
            "platform": "microsoft_windows_server_2022",
            "scanArn": "arn:aws:inspector2:us-east-1:<AWSアカウントID>:owner/<AWSアカウントID>/cis-scan/8c05c713-9625-4ca2-8c18-a7901d38753a",
            "statusCounts": {
                "failed": 290,
                "passed": 82,
                "skipped": 1
            },
            "targetResourceId": "i-02c3eab1529eeaad3",
            "targetResourceTags": {
                "Name": [
                    "Win2022"
                ],
                "OS": [
                    "Win2022"
                ]
            },
            "targetStatus": "COMPLETED"
        }
    ]
}

Check statusのリンクをクリックすると、各ステータス毎にフィルターされた結果を表示できます。

CIS Scan Level 2 Scanned resources detail

評価項目毎の現在の状態の詳細はResource statusから確認できます。

Resource status

修正方法はRemediationから確認できます。

Remediation

DownloadをクリックするとCISベンチマークのレポートをダウンロードできます。

CIS Benchmark Report

get-cis-scan-reportでダウンロードURLを取得することも可能です。

> aws inspector2 get-cis-scan-report \
     --scan-arn arn:aws:inspector2:us-east-1:<AWSアカウントID>:owner/<AWSアカウントID>/cis-scan/8c05c713-9625-4ca2-8c18-a7901d38753a
{
    "status": "SUCCEEDED",
    "url": "https://cis-reports-us-east-1-784839256687.s3.amazonaws.com/<AWSアカウントID>/8c05c713-9625-4ca2-8c18-a7901d38753a/cis_report.pdf
}

レポートのサマリーにはスキャンARNやいつスキャンされたのか、レベルなどの情報が記載されています。

CIS Benchmark Report_Report Summary

評価項目毎の詳細は以下のとおりです。情報量が多めで良きです。

CIS Benchmark Report_Finding Details

要件の中でCISベンチマークへの準拠が求められている場合に

Amazon Inspector v2がEC2インスタンスのCISベンチマークの評価をサポートしたアップデートを紹介しました。

要件の中でCISベンチマークへの準拠が求められている場合に役立ちそうです。

なお、CISベンチマーク全てに対応するのはなかなか難しいです。CISベンチマークに無理に準拠しようとすると運用が回らない場面もありますし、オンプレでの名残で残っている評価項目もあります。

実際には無理にしない範囲で対応するのが良いと考えます。

なお、現時点で評価項目の除外はできません。FAILEDの状態でも問題ないと判断したものについては別途まとめておくと良いでしょう。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.