[2021年版]AWS Security HubによるAWSセキュリティ運用を考える

AWS Security Hubの特徴と運用方法についてまとめました。幅広いAWSサービスのセキュリティとベストプラクティスを守ることができるのでガンガン活用しましょう。
2021.06.26

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

こんにちは、臼田です。

みなさん、AWSのセキュリティ運用してますか?(挨拶

AWS Security HubはAWS上のセキュリティイベント集約とセキュリティチェックを行うサービスです。今回はこのサービスにフォーカスしたセキュリティ運用を考えてみます。

ちなみにAmazon GuardDutyについても同じようにセキュリティ運用についてまとめたので以下もご確認ください。

AWSセキュリティ全体像

フォーカスしていく前に全体の整理をします。以下にざっくりとAWSにおけるセキュリティの要素について書き出してみます。

  • AWSレイヤー
    • IAM管理
    • ネットワークセキュリティ
    • 設定管理
  • OS/アプリレイヤー
    • 不正プログラム対策
    • 脆弱性管理
    • セキュアアプリケーション
    • アプリケーション保護
  • 全体管理
    • ガバナンス・コンプライアンス
    • サービス運用
    • イベント・インシデント管理運用
    • バックアップ・復旧

全体像といった割には少なくまとまりましたが、視点や書き方によっていくらでも増えたり減ったりするのでこれぐらいにしておきます。

様々なセキュリティの要素がある中でもSecurity Hubは全体のコンプライアンスを保つための役割として設定管理の機能を持ち、イベント集約と管理も可能です。利用タイミングや運用方法が違う機能を内包しているためSecurity Hubについて考えるときはどの目的、どの機能のことを考えているかを意識する必要があります。

もう1つだけ視点を持ってきます。サイバーセキュリティフレームワーク(CSF)ではコア機能として識別、防御、検知、対応、復旧の5つがあります。Security Hubは検知の役割を持っています。検知と言ってもGuardDutyのように発生した脅威を検知するわけではなく、危険な設定やベストプラクティスに反する設定を検知する役割で主に活用されます。

How to improve threat detection and hunting in the AWS Cloud using the MITRE ATT&CK Matrixより引用

セキュリティのために様々な領域の対策があり、その一部であることを意識してください。

Security Hubの概要

Security Hubは大きく2つの機能があります。1つはAWS上やサードパーティのセキュリティイベントを集約する機能、もう1つはAWS上の危険な設定を検知・管理する機能(セキュリティチェック機能)です。

私は特にセキュリティチェック機能が嬉しいと感じています。AWSでは幅広いサービスがあり、場合によってはいろんなユーザーがAWSアカウントを操作します。しかしAWSはクラウドサービスという性質上一歩間違えると非常に危険な設定もあります。例えばS3のデータをうっかり公開してしまうとか、EC2インスタンスに不特定多数の管理アクセスを許してしまうとか。そういった危険な設定・ベストプラクティスに反する設定を継続的にチェックし、検知してくれます。

セキュリティイベントの集約機能は、GuardDutyやIAM Access AnalyzerなどAWSの他のセキュリティサービスのログやサードパーティのセキュリティ製品のログを、同一のフォーマットで扱い、アクションに繋げることが可能です。違う種類のログを複合的に確認することでイベントの全体像を確認することに役立ちます。

セキュリティチェック

今回は特にセキュリティチェックにフォーカスします。

セキュリティチェックの意義

AWSやクラウド上では正しい設定で利用することがとても重要です。

これらの仕組みはローカル環境やオンプレミスのような別の境界防御で守られた場所ではなく、インターネット上に存在し、その特性を生かしてパブリックな展開を簡単に行えるようになっています。つまり逆に言うと間違った設定をすれば危険になるということです。

この間違った設定、ベストプラクティスに沿わない設定を自動的にチェックする必要があります。

セキュリティの中では、そもそも間違った使い方をしないように権限を絞るという予防的ガードレールの考え方があります。AWS上でもこれを実現する手段があり、IAMやAWS Organizationsのサービスコントロールポリシー(SCP)などが利用できます。しかしながら予防的ガードレールだけでは、細かい設定値による問題はそもそも制限できなかったり、縛りすぎて目的にあった利用ができないという場合もあります。

予防的ガードレールでは満たせない対策を発見的ガードレールで対応していく必要があります。発見的ガードレールは実際に間違った設定がされたらそれを検知(発見)して、必要に応じて是正する考え方です。細かい設定値にも対応したり、例外を許容したりできる柔軟性があります。

Security Hubはこの発見的ガードレールの役割を果たします。

セキュリティチェックの種類

便宜上セキュリティチェックと私が個人的に言っていますが、機能的には「セキュリティ基準(Security Standards)」です。現在以下の3種類のスタンダードが提供されています。

  • CIS AWS Foundations Benchmark v1.2.0
  • PCI DSS v3.2.1
  • AWS 基礎セキュリティのベストプラクティス v1.0.0

それぞれ内部的には重複したチェック項目もあり、全て使えばいいというわけではありません。私のレコメンドとしては基本的にAWS基礎セキュリティのベストプラクティスを利用しておけば大丈夫です!ざっくりとした理由としては、AWSが内容をメンテナンスしていて、カバー範囲も広くアップデートも頻繁だからです。詳細は以下もご確認ください。

セキュリティチェックの使い方

まずは有効化してすぐの状態を確認します。Security Hubのマネジメントコンソール画面左の「セキュリティ基準」から各スタンダードが確認できます。スタンダードを選択すして詳細を確認します。チェック項目に対するスコアと一覧が表示されます。「失敗」つまりチェックの条件を満たしていないものが上に上がっています。

実際にはここですぐに是正していくわけではなく、いくつかの項目はチェックしないというポリシーを採用することが多いです。そういった項目は詳細を開いて無効化します。無効化理由も入力できるので、どのような判断で無効化したかを適切に記入しましょう。後から確認した人にも判断基準を共有できます。

具体的にどれを無効化するといいかは上述の最強のセキュリティチェックブログにありますのでそちらを参考にしてください。

一通り無効化したら1つ1つ確認していきます。確認する場合は詳細画面上の「修復手順」でチェック内容と対応方法が確認できます。

大体は設定を変更すれば大丈夫です。直接設定を変えず許容する場合には「ワークフローのステータス」から「抑制済み」にすると失敗カウントがされなくなり例外登録できます。

違反の通知

一通りいま出ているものを対応していけばセキュリティチェックが終わるわけではありません。今後も新しく作ったリソース・設定変更したリソースのチェックが必要です。Security Hubのスタンダードを有効化しておけば継続的に自動でチェックされます。新規で違反(失敗)となったものに気づけるように通知の設定を行いましょう。

EventBridgeを利用することで新規の違反について簡単に通知設定できます。設定方法は以下を参照してください。

通知先にはメールやSlackなどがよく選ばれます。そのあたりの選択は以下をご確認ください。

新項目への対応

セキュリティチェックの項目は継続的に改善されます。直近では以下のようなものがありました。

アップデートが来たら無効化するかどうか、どのような例外を認めるかどうかのポリシーを検討しましょう。

他のセキュリティチェック

Security Hubでは各スタンダードで定義されたチェックが可能です。これはAWS環境や対応している各種サービスについてのセキュアな設定・ベストプラクティスにあまり精通していなくても利用できて大変便利です。

一方で、ある程度AWSの利用が習熟してくると、「社内のセキュリティポリシー的にこの設定も検知したい」「セキュリティ上の理由以外でもこんな設定を検知したい」といった要望が出てくる場合があります。

柔軟にチェック項目を追加したい場合には、AWS ConfigのConfig Rulesを利用します。AWS Lambdaによって事実上なんでもチェックできます。ただしチェックの仕組みを作る難易度が高いので、習熟して要件がでてきたら検討しましょう。

全自動修復・半自動修復

違反が出てきた後、それらを手動で修復していくことは大変です。以下のソリューションを利用すると、一部のチェック項目のみですが自動で修復することが可能です。

この仕組みは違反している項目を選択して「アクション」を選択することにより修復が実行されます。項目を選んでから実行する自動修復なのでここでは半自動と呼びます。

半自動ではあくまで出てきた違反を人が確認して人が自動修復を実行していますが、そもそも人が間に挟まらず、違反が出たら全自動で修復させるように設定することもあります。ただこれは修復用のLambdaが無限ループする可能性などもあり、修復の仕組みの完成度や修復状況の監視をしっかりやらないといけない諸刃の剣です。習熟度に応じで活用してください。

まとめ

AWS Security Hubを利用したセキュリティチェックの運用についてまとめました。

便利にAWSを使っていくためにも、ギチギチに縛りすぎず発見的ガードレールを活用して様々なAWSサービスを使えるようにすべきです。そのためにはSecurity Hubの展開と運用は必須です。

適切に運用を回せるようにしてガンガンAWSを使いましょう!