AWS入門ブログリレー2024〜AWS Security Hub編〜

2024.04.03

こんにちは。たかやまです。

当エントリは弊社AWS事業本部による『AWS 入門ブログリレー 2024』の10日目のエントリです。

このブログリレーの企画は、普段 AWS サービスについて最新のネタ・深い/細かいテーマを主に書き連ねてきたメンバーの手によって、 今一度初心に返って、基本的な部分を見つめ直してみよう、解説してみようというコンセプトが含まれています。

AWS をこれから学ぼう!という方にとっては文字通りの入門記事として、またすでに AWS を活用されている方にとっても AWS サービスの再発見や 2024 年のサービスアップデートのキャッチアップの場となればと考えておりますので、ぜひ最後までお付合い頂ければ幸いです。

では、さっそくいってみましょう。今回のテーマは『AWS Security Hub』です。

AWS Security Hub とは

AWS Security Hub(以下Security Hub)は、AWSアカウント全体のセキュリティ状況を一元的に可視化し、管理するサービスです。さまざまなAWSサービスやパートナーソリューションからのセキュリティ検出結果を集約し、統合管理することも可能です。

セキュリティチェックにはAWS Configが必要になるため、無効化されている場合にはAWS Configを有効化する必要があります。

今回のこちらのSecurity Hubの機能について、コンソールの画面になぞって以下の機能に触れていきたいと思います。
※Organizations環境下での機能も含めて紹介していきます

  • 概要(Summary)
  • コントロール(Controls)
  • セキュリティ基準(Security standards)
  • インサイト(Insights)
  • 検出結果(Findings)
  • 統合(Integrations)
  • オートメーション(Automations)
  • カスタムアクション(Custom actions)
  • 一般(General)
  • リージョン(Regions)
  • 設定(Configuration)
  • 使用(Usage)

各機能紹介

概要(Summary)

「概要」は、Security Hubに入った際のトップページで、Security Hubの状態を確認できるダッシュボードが提供されます。

このダッシュボードは、ユーザ側で自由にウィジェットやクエリ条件をカスタマイズすることができます。

カスタマイズしたものが以下になります。
クエリの内容は調査結果が最も多い資産調査結果が最も多いリソースなどの一部ウィジェットに結果が反映されています。

内容をリセットしたい場合には、右上のReset to default layoutを選択することでリセットすることができます。

参考 : [概要] ダッシュボードの使用 - AWS Security Hub

コントロール(Controls)

「コントロール」は、統合コントロールビューとも呼ばれ、ここでは後述するセキュリティ基準ごとに使用可能なコントロールが一覧として表示されます。

Security Hubの検知状態の詳細を確認する場合には、まずこの統合コントロールビューを確認することになります。

確認したいコントロールを選択することで、個別のコントロールの詳細を確認することができます。
ここでは IAM.6 が選択されており、コントロールの詳細が表示されています。

ここから個別にリソースを判断していき、適宜以下のステータスに変更していきます。

  • 新規(NEW) : レビューする前の結果の初期の状態
  • 通知済み(NOTIFIED) : セキュリティ問題についてリソース所有者に通知したことを示す
  • 抑制済み(SUPPRESSED) : 結果をレビューし、アクションが必要だとは判断しなかったことを示す
  • 解決済み(RESOLVED) : レビューおよび修正され、現在は解決済みと見なされていることを示す
    • ただし、以下のいずれかが発生した場合、自動的に 新規(NEW) にリセットされます
    • RecordState が ARCHIVED から ACTIVE に変更した場合
    • Compliance.Status が PASSED から FAILED 、WARNING、または NOT_AVAILABLE に変更した場合

そもそも特定コントロールが組織のポリシーに適合しておらずチェックが不要な場合もあります。そのいった場合には、コントロール自体を抑制することができます。

コントロールを無効化する場合、用意されている無効化理由を選択するか自由記載する必要があります。

参考 : セキュリティコントロールの表示と管理 - AWS Security Hub

セキュリティ基準(Security standards)

「セキュリティ基準」は、Security Hubのメインの機能で以下の5つの基準をベースにAWS環境のセキュリティ評価が可能です。

  • AWS 基礎セキュリティのベストプラクティス v1.0.0
  • CIS AWS Foundations Benchmark v1.2.0
  • CIS AWS Foundations Benchmark v1.4.0
  • NIST Special Publication 800-53 Revision 5
  • PCI DSS v3.2.1

CIS/NIST/PCI DSS への準拠要件などが特になく、とりあえずAWS環境のセキュリティ評価をしたい場合には、チェック対象のサービスが多くアップデートも頻繁に行われる AWS 基礎セキュリティのベストプラクティス v1.0.0 をまずは有効化することをおすすめします。

各セキュリティ基準で適用されるコントロールはこちらから確認できます。

「AWS 基礎セキュリティのベストプラクティス v1.0.0」のコントロールについては、弊社メンバーが対処方法/修正手順を随時ブログにて公開しているので以下のリンクからご確認ください。

参考 : AWS Security Hub のセキュリティコントロールと標準 - AWS Security Hub

インサイト(Insights)

「インサイト」は、事前に定義されたフィルター情報をもとにSecurity Hubの検出結果から注目すべきセキュリティエリアを提供する機能です。

デフォルト状態でもマネージド型インサイトとして以下のように最大35個のインサイトが提供されています。

マネージド型インサイトの他に、ユーザが自由にフィルター条件を設定するカスタムインサイトを作成することも可能です。

カスタムインサイトを作成する場合、抽出したい情報でフィルター条件を設定しグループ化条件を設定することでインサイトを定義することができます。

以下は重要度が CIRITICAL/HIGHのコントロールをグループ化したインサイトの例です。

カスタムインサイトは検索フィルターでカスタムインサイトを選ぶことで表示することができます。

また、こちらのブログの仕組みを使うことでカスタムインサイトの情報を定期的に通知することも可能です。

参考 : AWS Security Hub のインサイト - AWS Security Hub

検出結果(Findings)

「検出結果」は、Security Hubのコントロール情報以外のAWSサービス/パートナーソリューションのセキュリティ情報を一元的に表示する機能です。

検出結果ではSecurity Hubのコントロール情報の他に、後述する統合機能で収集されるセキュリティ情報を一元的に表示することができます。

以下は、GuardDutyの結果をSecurity Hubで収集し結果を確認した例です。

この画面では、検出結果の詳細を確認することができます。
また、Amazon Detectiveを利用している環境では結果の調査をクリックすることで、Detectiveの画面に遷移し、より詳細な調査を行うことができます。

履歴タブでは、Security Hubで行われた状態の変更履歴を確認することができます。

統合コントロールビューとの使い分けは、以下のようになります。

個人的には、統合コントロールビューでコントロールIDの棚卸しを実施し、より詳細な結果を確認する場合には検出結果を確認するという使い方が多いです。

  • 統合コントロールビュー : Security HubのコントロールIDベースで検出項目の調査を行う
  • 検出結果 : Security Hubコントロール、AWSサービス、パートナーソリューションの検出結果を一元的に表示し、検出結果の詳細を確認する
    • Security Hubの変更履歴の確認
    • Detectiveによる結果調査

参考情報 : AWS Security Hub での検出結果 - AWS Security Hub

統合(Integrations)

「統合」では、Security HubにAWSサービスやパートナーソリューションの統合の設定を行う機能です。
統合を行うことで、先述の検出結果でAWSサービスやパートナーソリューションのセキュリティ情報を一元的に表示することができます。

AWSサービス間の統合は対象のサービスが有効になることで自動的に統合されます。
パートナーソリューションについてはユーザ側で統合の設定を行う必要があります。利用しているパートナーソリューションでSecurity Hubに統合できるかはこちらのドキュメントを確認してください。

Tips的なところで統合を利用することで、Security Hubを中心に各製品のセキュリティ情報を通知することができます。

以下のブログでは、GuardDutyなどの統合可能なAWSサービスの検知結果をSecurity Hubを経由して通知し、後述するリージョン集約の機能を利用することで、簡単にリージョンをまたいだセキュリティサービスの通知機能を実装しています。

参考 : AWS Security Hub での製品の統合 - AWS Security Hub

オートメーション(Automations)

「オートメーション」は、検出結果に対して自動化された対応を可能にする機能です。
以下の例ではCDKのBootstrapで作成されるリソースで検知されたコントロール S3.9/S3.11 に対して、自動的に検出結果を抑制するオートメーションを設定しています。

実際に抑制されたものがこちらです。
コントロール S3.9 でリソース名に cdk-hnb659fds が含まれるリソースが自動的に抑制されています。抑制される際に、スクショのように抑制理由を設定することもできます。

参考 : 自動化ルール - AWS Security Hub

カスタムアクション(Custom actions)

「カスタムアクション」は、検出結果またはインサイト結果を個別にEventBridgeに送信する機能です。

ユースケースとしては、ユーザの任意のタイミングで検出結果やインサイト結果をEventBridgeに送信し、Lambdaなどを利用して自動化処理を実装する場合に活用することができます。

こちらのブログでは、Security Hubの検出結果をEventBridgeに送信し、Backlogに課題を追加するカスタムアクションを実装しています。

参考 : カスタムアクションを使用して結果とインサイト結果を EventBridge に送信する - AWS Security Hub

一般(General)

「一般」は、Security Hubの委任管理者の設定やコントロール設定、Security Hubの無効化等の全般的な設定を行う機能です。

統合されたコントロールの検出結果は、Security Hubを作成した時期(2023/2/23)により、アカウントごとに設定状態が変わっていることがあります。

  • 2023/2/23より前 : 統合されたコントロールの検出結果がオフになっている
  • 2023/2/23以降 : 統合されたコントロールの検出結果がオンになっている

作成時からオンにしている場合は問題ありませんが、オフ -> オン に変更する場合には、Security Hubの検出結果のフォーマットが変わるため、既存で通知の仕組みなどを実装している場合には注意が必要です。

統合されたコントロールのオン/オフの違いについては、こちらのブログを参考にしてください。

リージョン(Regions)

「リージョン」は、Security Hubのリージョン間の集約機能を提供する機能です。

こちらの機能で各リージョンのセキュリティ情報を集約リージョンで一元的に集約することで、先述の統合機能を組み合わせて通知機能の実装の効率化や後述する中央設定によるSecurity Hubの設定展開を容易に行うことができるようになります。

基本的にSecurity Hubを利用するリージョンについては集約設定を実施することをおすすめします。

参考 : クロスリージョン集約 - AWS Security Hub

設定(Configuration)

「設定」では、複数のアカウントがある場合にSecurity Hubを使用するアカウントをメンバーアカウントとして単一の管理者アカウントに関連付けることができます。関連付けを実施することで、管理者アカウントからメンバーアカウントのセキュリティ状況を確認したり、(中央設定の場合)管理アカウント側でメンバーアカウントのSecurity Hubの設定を管理することができます。

こちらの画面を見て自分の環境の「設定」と違うな?と思った方もいるかもしれません。
現在Security Hubでは従来の管理機能のローカル設定と新しい管理機能の中央設定が提供されています。上記の画面は新しい管理機能の 中央設定 のものになります。

この ローカル設定 と 中央設定 を比較したものが以下になります。
基本的に中央設定が利用できる環境であれば、中央設定の利用がおすすめです。

設定方式 Pros Cons
中央設定
  • ポリシーでセキュリティ基準/無効化コントロール/コントロールカスタマイズを細かく設定できる
  • リージョン間のSecurity Hubも集約リージョンで管理できる
  • OrganizationsのOU単位でポリシーの適用有無を決められる
  • メンバーアカウントからSecurity Hubの設定変更を抑制することができる
    • 検出結果の抑制はメンバーアカウントからも可能
  • リージョン毎に設定を変えることはできない
ローカル設定
(Organizations)
  • ローカル設定(非Organizations)に比べて、Security Hubの自動有効化機能が提供される
  • リージョンごとに設定を変えることができる
  • 自動有効化の設定の自由度が少ない
  • メンバーアカウントからSecurity Hubの設定変更を抑制することができない
ローカル設定
(非Organizations)
  • 非Organizations環境でも利用可能
  • 自動有効化などの機能が提供されない

中央設定 と ローカル設定 違いで気になる部分について、以下のブログでまとめているので中央設定を利用するかどうか迷っている方は参考にしてください。

使用(Usage)

「使用」は、Security Hubの利用状況を確認する機能です。

こちらからSecurity Hubのセキュリティ基準チェックや統合によるデータ取り込み量を確認し、料金を把握することができます。

料金価格の詳細はこちらを参照してください。

実際にSecurity Hubの料金感がわからず、不安な方も30日間の無料トライアルが提供されているので、まずは無料トライアルを利用してみることをおすすめします。
(ただ、コストにかかわらず最低限Security Hubの基礎セキュリティのベストプラクティスの有効化は強く推奨します!)

参考 : Security Hub の無料トライアルと料金 - AWS Security Hub

最後に

Security Hubの機能をざっくりと紹介しました。

個人的によくさわり、理解する必要があるなという機能について独断と偏見で順番をつけるとしたら以下の感じになります!(同じ数字は同列評価)

  • 3: 概要(Summary)
  • 1: コントロール(Controls)
  • 1: セキュリティ基準(Security standards)
  • 3: インサイト(Insights)
  • 1: 検出結果(Findings)
  • 2: 統合(Integrations)
  • 3: オートメーション(Automations)
  • 4: カスタムアクション(Custom actions)
  • 2: 一般(General)
  • 1: リージョン(Regions)
  • 1: 設定(Configuration)
  • 4: 使用(Usage)

以上、『AWS 入門ブログリレー 2024』の10日目のエントリ『AWS Security Hub』編でした。次回、4/4は弊社西野亘による「VMware Cloud on AWS編」の予定です!

最後までお読みいただきありがとうございました。
こちらのブログがSecurity Hubの機能を理解する際の参考になれば幸いです!

以上、たかやま(@nyan_kotaroo)でした。