Amazon InspectorでCISベンチマーク(OSセキュリティ設定)を評価する手順

Amazon InspectorホストアセスメントでCISベンチマークを評価する手順を紹介します。
2019.09.30

Amazon Inspector(以下、Inspector)では潜在的なセキュリティ上の問題や脆弱性を検出できます。Inspectorでは以下の評価(アセスメント)を行うことが可能です。

  • ホストアセスメント
  • ネットワークアセスメント

本エントリでは、ホストアセスメントで提供される、以下のルールパッケージを使用して評価を実施してみたいと思います。

こちらのルールパッケージでは、OSセキュリティ設定(ベンチマーク)が確認できます。

前提

  • 評価対象のEC2が作成済みであること
  • Run Commandを許可するIAM ロールがアタッチされていること *1

やってみた

評価対象EC2にタグを付与

Inspectorでは、アカウントとリージョンに存在するすべてのEC2を評価対象にすることができますが、ここでは特定のEC2のみ対象にしたいと思います。 *2

評価対象のEC2に任意のタグを付与します。(付与したタグはInspector設定時に使用します)

SNSトピック作成

ここでは、評価時にメール通知を受けたいので、SNSトピックを作成します。

SNSコンソールより「トピックの作成」をクリックします。

アクセスポリシーにて以下を指定し、トピックを作成します。

  • メッセージ発行ユーザ…指定された AWS アカウントのみ
  • arn:aws:iam::406045910587:root
  • サブスクライブユーザ…指定された AWS アカウントのみ
  • arn:aws:iam::406045910587:root

通知先アドレスを指定したサブスクリプションも作成します。

評価ターゲット作成

Inspectorで評価する対象を定義します。Inspectorコンソールより「評価ターゲット」を選択し「作成」をクリックします。

以下を指定し「保存」をクリックします。

  • 名前…任意の定義名
  • Use Tags…EC2に付与したタグ
  • Install Agents…チェック付与

評価ターゲットが作成されました。

Inspectorエージェントインストール

ホストアセスメントでは、Inspectorエージェントのインストールが必要になります。インストールは該当サーバにログインして実施するか、SSM経由でインストールすることができます。

ここではInspectorのコンソールより、SSM経由で実施したいと思います。先程作成した評価ターゲットを選択し「Install Agents with Run Command」をクリックします。

「OK」をクリックします。

コマンドが正常に発行されると、SSMコンソールでも確認することができます。

SSMコンソールのコマンド履歴よりインストールが成功していることを確認します。

評価テンプレート作成

評価に利用するルールパッケージ等を定義します。「評価テンプレート」を選択し「作成」をクリックします。

以下を指定し「作成」をクリックします。(初回の実行はテンプレート作成時に実行されます。)

  • 名前…任意のテンプレート名
  • ルールパッケージ…CIS Operating System Security Configuration Benchmarks-1.0
  • 所要時間…1時間
  • SNSトピック…作成したSNSトピック
  • Assessment Schedule…チェック付与

評価テンプレートが作成されました。初回の実行はテンプレート作成時に実行されます。

なお、テンプレート作成時に「Assessment Schedule」にチェックを付与していたので、Inspectorによりスケジュール用のCloudWatch Eventsルールが自動的に作成されます。

評価実行

正しく設定できていれば、初回の評価が実行されています。

SNSトピックを設定していたので、該当のイベントでメール通知が行われます。

評価が完了すると実行のステータスが変化します。

評価結果は、レポートとしてダウンロードすることもコンソールで確認することも可能です。

評価レポート(PDF)

Inspectorコンソール - 結果

項目をクリックすると詳細が確認できます。ここではrule 4.1.1.2の評価に問題があったようです。

なお、評価内容を事前に確認したい場合は、ドキュメント記載のURLよりPDFをダウンロードしてください。

CIS Distribution Independent Linux Benchmark v2.0.0

特定日時で評価実行

InspectorによりセットアップされたCloudWatch Eventsルールを変更し、特定時刻で実施してみたいと思います。ここではスケジュールをCron式に変更しました。

先程検出されたrule 4.1.1.2を対応した状態でスケジューリング時刻を迎えたいと思います。さきほどの評価結果で出力された推奨事項を該当サーバで実施しました。

$ sudo grep '^space_left_action' /etc/audit/auditd.conf
space_left_action = email
$ sudo grep 'action_mail_acct' /etc/audit/auditd.conf
action_mail_acct = root
$ sudo grep 'admin_space_left_action' /etc/audit/auditd.conf
admin_space_left_action = halt

CloudWatch Eventsルールで指定した時刻に評価が実施されました。

評価が完了すると、結果が1件減っていることが確認できました。

評価結果のレポートからも、対応したrule 4.1.1.2がなくなっていました。

さいごに

InspectorのホストアセスメントでCISベンチマークを評価する手順をご紹介しました。ホストアセスメントでは、共通脆弱性識別子(CVE)等、他のルールパッケージもありますが、次回はネットワークアセスメントを実施してみたいと思います。

脚注

  1. SSM経由でInspectorエージェントをインストールするため
  2. すべてのインスタンスを対象にした場合、最大数の制限にご注意ください