Security HubでCISベンチマークのチェックをやってみた #reinvent

re:Invent2018で発表された新サービスSecurity Hubを利用してCISベンチマークを実施してみました。AWS純正でこのチェックができるのは素晴らしいですね。AWSアカウントの運用者はコンプライアンスを簡単に実施できます。
2018.12.03

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

こんにちは、臼田です。

re:Intent2018で発表された新しいセキュリティサービスのSecurity HubでCISベンチマークができるのでやってみました。

Security Hubについては下記をご参照ください。

[速報]セキュリティ情報を一括で管理できるAWS Security Hubが発表されたので使ってみました! #reinvent

有効化

Security Hub自体の有効化は上記ブログをご参照ください。

Security HubでCISベンチマークを有効化するのはとっても簡単。下記のように「Standards -> Enable」をクリックで有効化され、以後継続的にSecurity Hubによってコンプライアンスを満たしているかチェックされます。すごい強力!

有効化したあと、チェックされるまでにしばらく時間がかかります。

結果の確認

しばらくするとSummaryのStandardsもしくはStandards画面で結果が確認できます。下記の内容は「40%ルールを満たしている」という結果です。

CISベンチマークの内容は項目が具体的でセキュリティ運用上の指標としては非常に有用ですが、同時に具体的なため環境に応じては過多な基準であったりすることもあるので必ず100%を目指す必要はありません。

監査内容や考え方については下記が非常に参考になります。

あなたのAWSセキュリティ監査状況を採点〜CISベンチマークを読んでみた

というわけで、40%だからといってとても悪いわけではありません(言い訳

項目ごとの詳細を見ていきましょう。CIS AWS Foundationsをクリックすると各項目ごとの一覧になります。

ページを送って4.1 Ensure no security groups allow ingress from 0.0.0.0/0 to port 22を見てみます。これはセキュリティグループで0.0.0.0/0port 22(ssh)で許可されているものがないか確認する項目で、これはすべてのアカウントで必須の確認項目です。

リソースIDを伏せていますが、これが各セキュリティグループ毎に存在しています。もし満たせていない項目がある場合にはStatusがFailerになり高いSeverityで通知されます。

ちなみに、GuardDutyやInspectorなどで検知した情報はProductがそれぞれのサービス名になるのですが、CISベンチマークではSecurity Hubとなっています。この機能は純粋にSecurity Hubが持っているチェック機能であることが改めて認識できます。

これと同様にRDPについてチェックする4.2 Ensure no security groups allow ingress from 0.0.0.0/0 to port 3389も存在します。こちらも要チェック。

発展的な使い方の考察

これはまだ私がSecurity Hubを触りきれていない段階での考察なので、参考情報としてお考えください。

マルチアカウントでのCISベンチマーク準拠状況の確認

Security Hubではマルチアカウントで連携が可能です。おそらくCISベンチマークの項目もFindingsとして検知項目を確認できるため、マルチアカウントで確認することができると思われます。マルチアカウントでのコンプライアンス対応にもSecurity Hubは有効でしょう。

カスタムアクションの実行

Security Hubの真骨頂は見つけた脅威情報に対してカスタムアクションを実行できることです。

例えばMFAが有効になっていないIAMユーザが見つかった場合にそのIAMユーザを無効にしたり、セキュリティグループがフルオープンになっているEC2を一時的に隔離したり、様々なアクションをSecurity Hubから実行することにより運用が楽になると思います。

まとめ

Securiry HubでCISベンチマークの機能を利用してみました。各リソースについて自動的にチェックしてくれるのは非常に強力ですね。

そして、あとは環境に合わせたカスタムアクションを実装して運用を楽にしてみてはいかがでしょうか?