Amazon Inspector での Windows OS インスタンスのスキャン要件を確認してみた

2022.09.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon Inspector V2(以下、Inspector) での Windows OS がサポートされましたね!
待ち望んでいた方も多いのではないかと思います(パチパチ

良い話だと思いながら AWS 公式ドキュメント を見ていると Windows OS の場合は Linux とは下記の点で、異なる部分があるようです。

  • 脆弱性スキャン実行トリガー
  • 脆弱性スキャン要件(仕組み)

ドキュメントを読みながら、実際に手元で確認してみました。

脆弱性スキャン実行トリガー

Inspector での EC2 脆弱性スキャンの実行トリガーは下記の通りでしたが、今回 Windows OS がサポートされたことで Linux と Windows OS で異なる部分があるため、ドキュメントが更新されています。(9/2 時点では英語のみ更新)

(変更前) Windows OS サポート前

・ EC2 インスタンスが Amazon Inspector によって検出されるとすぐに
・ 新しいインスタンスを開始すると
・ 既存のインスタンスに新しいソフトウェアをインストールする場合
・ Amazon Inspector がデータベースに新しい一般的な脆弱性および例外 (CVE) 項目を追加したとき

引用: Amazon Inspector を使用した Amazon EC2 インスタンスのスキャン

(変更後) Windows OS サポート後

・ EC2 インスタンスが Amazon Inspector によって検出されるとすぐに
・ 新しいインスタンスを開始すると
・ 既存のインスタンスに新しいソフトウェアをインストールする場合 (Linux only)
・ Amazon Inspector がデータベースに新しい一般的な脆弱性および例外 (CVE) 項目を追加したとき (Linux only)

引用: Scanning Amazon EC2 instances with Amazon Inspector

・ Linux ベースのインスタンスのスキャンとは異なり、Amazon Inspector は定期的に Windows スキャンを実行します。Windows インスタンスは最初に検出時にスキャンされ、その後 6 時間ごとにスキャンされます。ただし、デフォルトの 6 時間のスキャン間隔は調整可能です。詳細については、Windows インスタンス スキャンのカスタム スケジュールの設定を参照してください。以下は、Amazon Inspector が Windows インスタンスをスキャンする方法の概要です。

引用: Scanning Windows EC2 instances with Amazon Inspector

変更前の後半2つのタイミングは Linux のみとなり、Windows OS は別途デフォルト6時間(変更可)で定期スキャンが実行されます。常時起動していてスキャンを受け続けているベテランなインスタンスへのスキャン実行では、実行タイミングが異なる点は注意が必要です。

Windows OS での定期実行は、 専用プラグインと AWS Systems Manager(SSM)の複数機能で実装されているようです。続いて、その点について確認していきます。

脆弱性スキャン要件(仕組み)

Inspector V2 は SSM をベースに実行されるため、 SSM Agent とサービスとの疎通が条件となります(インターナルな場合はエンドポイントとの通信)。そしてサポート対象 OS である点までは Linux と同様です。加えて、Windows OS では プラグインが必要であることがドキュメントに記載されています。(一番下の部分)

・ The instance is an SSM managed instance. See Configuring the SSM Agent for instructions on setting up your instance for scanning.
・ The instance operating system is one of the supported Windows operating systems. For a complete list of supported operating systems, see Supported operating systems.
・ The instance has the Amazon Inspector SSM plug-in installed. Amazon Inspector automatically installs the Amazon Inspector SSM plug-in for managed instances upon discovery. See the next section for more details about the plug-in.

↓↓↓ 機械翻訳 ↓↓↓

・ インスタンスはSSM管理されたインスタンスです。スキャン用にインスタンスを設定する手順については、SSMエージェントの設定を参照してください。
・ インスタンスのオペレーティングシステムは、サポートされているWindowsオペレーティングシステムの1つです。サポートされているオペレーティングシステムの完全なリストについては、サポートされているオペレーティングシステムを参照してください。
・ インスタンスに Amazon Inspector SSM プラグインがインストールされている。Amazon Inspector は、検出時にマネージドインスタンス用の Amazon Inspector SSM プラグインを自動的にインストールします。プラグインの詳細については、次のセクションを参照してください。

引用: Scanning Windows EC2 instances with Amazon Inspector

この専用プラグインインストールとスキャン実行のために、SSM で2種類のドキュメントが関連付けされ、定期的実行されています。(ステートマネージャーから確認が可能)

  • InvokeInspectorSsmPlugin-do-not-delete(AmazonInspector2-InvokeInspectorSsmPlugin)
  • InspectorDistributor-do-not-delete(AmazonInspector2-ConfigureInspectorSsmPlugin)

Inspector での Windows OS へのスキャン実行において、正しく実行されないケースなどでは、プラグインや SSM 関連付けされているドキュメントの実行結果にも注意をする必要がありそうです。

見てみよう

SSM 実行ドキュメント

定期スキャン実行

定期スキャンは、関連付け名が InvokeInspectorSsmPlugin-do-not-delete となり、実行されるドキュメント名は AmazonInspector2-InvokeInspectorSsmPlugin です。インストールされたプラグインからデータを収集し、送信しています。

またドキュメントに記載がある通り、実行間隔はマネジメントコンソールや CLI から変更が可能です。

  • デフォルトは6時間間隔で設定

  • マネジメントコンソールで 1日へ変更

  • 実行間隔が1日になりました

専用プラグイン・インストール

専用プラグイン・インストールは、関連付け名が InspectorDistributor-do-not-delete となり、実行されるドキュメント名は AmazonInspector2-ConfigureInspectorSsmPlugin です。対象インスタンスに専用プラグインが存在しない場合は SSM Distributor を利用して、インストールされます。

Windows OS 内での各種ファイル場所

実際に Windows へログインして各種ファイル保管場所を見ていきます。

  • プラグイン(C:\Program Files\Amazon\Inspector)

  • インストールログ(C:\Windows\Temp\Amazon\Inspector\Logs)
    プラグインファイルがないなどの場合は、このファイルを確認すると良さそうです。

  • スキャン(C:\ProgramData\Amazon\Inspector)
    oval(Input)、結果(Output)、ログ(Logs)がそれぞれのフォルダに保管されています。スキャンが適切に動作していない時は、こちらを確認すると良さそうです。

(番外編)専用プラグイン・アンインストールと再インストール

専用プラグインがアンインストールされた際に、再インストールされるかを確認してみます。

アンインストール

ドキュメントに従って、インストール時に利用されるドキュメント(AmazonInspector2-ConfigureInspectorSsmPlugin)からアンインストールを選択します。他にも Inspector 自体を無効にすることでプラグインをアンインストールできるようです。

If you wish to uninstall the Amazon Inspector SSM plug-in, you can use the Uninstall action on the AmazonInspector2-ConfigureInspectorSsmPlugin document. Additionally, the Amazon Inspector SSM plug-in will be automatically uninstalled from all Windows hosts if you disable Amazon EC2 scanning.

↓↓↓ 機械翻訳 ↓↓↓

Amazon Inspector SSM プラグインをアンインストールする場合は、AmazonInspector2-ConfigureInspectorSsmPlugin ドキュメントで Uninstall アクションを使用できます。

さらに、Amazon EC2スキャンを無効にすると、すべてのWindowsホストからAmazon Inspector SSMプラグインが自動的にアンインストールされます。

引用: Scanning Windows EC2 instances with Amazon Inspector

AmazonInspector2-ConfigureInspectorSsmPlugin を選択

Action は Uninstall 、 Name は AmazonInspector2-ConfigureInspectorSsmPlugin を入力

実行後に Windows OS で確認するとプラグインファイルが保管されたフォルダごと削除されていて、ログに uninstall.log ファイルが作成されています。

再インストール

本来なら関連付けされたドキュメントの自動実行を待ちますが、12時間周期なので今回は手動で実行します。

関連付けされたドキュメントの実行が成功したのを確認し、OS へログインするとアンイントール時に削除されたフォルダとファイルが再作成されていました。

ログファイルも install.log が更新されています。内容を確認すると上書きされるようで、最初のインストール結果は消えていました。

さいごに

サポートされた Inspector での Windows OS インスタンスのスキャン要件・環境を確認してみました。SSM を利用した仕組みで構成されていて、ユーザー側では作業不要でスキャンが実行されますが、実行のカスタマイズやトラブルシューティングが必要な際には、Linux とは少し違う要件・仕組みで動作しているということを念頭に入れておくと良さそうです。