Amazon InspectorでCISベンチマーク(OSセキュリティ設定)を評価する手順
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)等、他のルールパッケージもありますが、次回はネットワークアセスメントを実施してみたいと思います。