AWS Security Hub CSPM

AWS Security Hub CSPM の特徴

AWS Security Hub と AWS Security Hub CSPM は、クラウド環境を保護する AWS サービスです。これらのサービスは相互に補完し合い、併用することで AWS 環境のセキュリティ状況に関する貴重な情報を提供します。Security Hub CSPM は、AWS 環境がベストプラクティスや業界標準に沿っているかを継続的に評価し、検出結果は自動的に Security Hub に送信されます。

  • Security Hub CSPM = 設定不備・準拠状況を見るサービス(チェックする)
  • Security Hub = 検出結果を集約して、優先順位付け・対応につなげるサービス(チェックした結果を評価する)

CSPM は、Cloud Security Posture Management の略です。日本語に翻訳すると「クラウドセキュリティ態勢管理」になります。Posture とは 姿勢態勢 という意味です。つまりセキュリティの状態や体制について安全になっているか継続的にチェックをするサービスと言えます。

どのようなチェックをするのか

以下のようなチェックをします。

  • S3 … バケットが公開されていないか
  • RDS … 暗号化されているか、Publicly Accessible になっていないか
  • EC2 … Security Group で SSH/RDP が全開放されていないか
  • IAM … MFA が設定されているか、過剰権限がないか
  • CloudTrail … 有効化されているか
  • KMS … キーが適切に管理されているか

チェックの流れ

Security Hub CSPMの中心は、標準・コントロール・セキュリティチェック・Findings です。

Security Standard
  ↓
Control
  ↓
Security Check
  ↓
Finding

例:RDS暗号化チェック

標準:
AWS Foundational Security Best Practices

コントロール:
RDS.3

内容:
RDS DB instances should have encryption at rest enabled

結果:
暗号化されていなければ FAILED Finding が出る

更に具体例を入れると以下のような流れになります。

1. 標準を有効化する
   例: AWS Foundational Security Best Practices

2. 標準に含まれるコントロールが有効になる
   例: RDS.3, S3.1, EC2.19

3. コントロールに基づいてセキュリティチェックが実行される
   例: RDSが暗号化されているか確認

4. チェック結果がFindingとして生成される
   例: db-prod-002 が暗号化されていないため FAILED

5. Findingを見て、修正・抑制・チケット化・通知を行う

Security Hub について

Security Hub については以下のページで解説しています。

Security Hub と Security Hub CSPM の違い

観点Security HubAWS Config
主目的セキュリティ状態の可視化・Findings集約リソース設定の記録・変更履歴・ルール評価
見ているものセキュリティ上の問題・検出結果AWSリソースの設定状態
単位Finding / Control FindingConfiguration Item / Config Rule評価
得意なこと「どのセキュリティ問題を優先対応すべきか」「いつ、誰が、どの設定を変えたか」「この設定はルール違反か」
S3公開、RDS暗号化なし、GuardDuty検知、Inspector脆弱性S3バケットの暗号化設定履歴、SGルール変更履歴
運用者セキュリティ運用、CSIRT、クラウド管理者インフラ運用、監査、構成管理
位置づけセキュリティFindingsの集約ビュー設定情報の土台

Security Hub と Config の違い

Security Hub CSPM は、ベストプラクティスに基づきセキュリティ全体を俯瞰・評価する包括的な管理ツールです。AWS Config はリソースの設定変更履歴を記録し、特定ルールに基づくコンプライアンスをチェックする構成管理ツールです。

  • AWS Config = リソース設定を記録・評価する土台
  • Security Hub CSPM = その土台を使って、セキュリティ基準としてまとめてチェックする仕組み

Security Hub CSPM は Config のチェック結果を利用することもあり、相互に補完し合っています。

観点Security HubAWS Config
主目的セキュリティ状態の可視化・Findings集約リソース設定の記録・変更履歴・ルール評価
見ているものセキュリティ上の問題・検出結果AWSリソースの設定状態
単位Finding / Control FindingConfiguration Item / Config Rule評価
得意なこと「どのセキュリティ問題を優先対応すべきか」「いつ、誰が、どの設定を変えたか」「この設定はルール違反か」
S3公開、RDS暗号化なし、GuardDuty検知、Inspector脆弱性S3バケットの暗号化設定履歴、SGルール変更履歴
運用者セキュリティ運用、CSIRT、クラウド管理者インフラ運用、監査、構成管理
位置づけセキュリティFindingsの集約ビュー設定情報の土台

Security Hub CSPM の 4階層の機能

Security Hub CSPM は、次の 4階層で理解すると分かりやすいです。

標準(Standard)
  ↓
コントロール(Control)
  ↓
セキュリティチェック(Security check)
  ↓
Finding(検出結果)

簡単に言うと、以下になります。

標準
= チェック項目のセット

コントロール
= 1つ1つのセキュリティ要件

セキュリティチェック
= 実際にAWSリソースを検査する処理

Finding
= チェック結果として出てくる検出結果

標準(Standard)とは

標準とは、セキュリティ要件をまとめたチェック項目セットです。Security Hub CSPM におけるセキュリティ標準は、規制フレームワーク、業界ベストプラクティス、または企業ポリシーに基づく要件のセットです。

  • AWS Foundational Security Best Practices(FSBP) … AWS推奨の基本的なセキュリティベストプラクティス
  • CIS AWS Foundations Benchmark … CISベンチマークに基づくチェック ※CIS は Center for Internet Security の略
  • PCI DSS … クレジットカード業界向けのセキュリティ要件
  • NIST系 … 米国標準系のセキュリティフレームワーク

実務では、まず AWS Foundational Security Best Practices、略して FSBP を有効化することが多いです。FSBPは、業種や組織規模にかかわらず利用できる AWS セキュリティベストプラクティス集で、AWS アカウントやリソースがベストプラクティスから逸脱している場合に検出するコントロール群を提供します。

標準(Standard)は「RDS」「S3」「IAM」「CloudTrail」などの個別ルールをまとめたものです。

AWS Foundational Security Best Practices
  ├─ S3系コントロール
  ├─ RDS系コントロール
  ├─ EC2系コントロール
  ├─ IAM系コントロール
  ├─ CloudTrail系コントロール
  └─ KMS / Lambda / ECR など

コントロール(Control)とは

コントロールとは、標準の中に含まれる1つ1つのセキュリティ要件です。

例:

[RDS.3] RDS DBインスタンスでは、保存時の暗号化を有効にする必要があります。

Security Hub CSPM のコントロールリファレンスには、現在利用可能なコントロールが一覧化されており、各コントロール ID ごとに詳細情報が確認できます。

コントロールに含まれる主な情報

  • Control ID … RDS.3、S3.1、EC2.19 など
  • Title … コントロールのタイトル
  • Description … 何をチェックするか
  • Severity … 重要度
  • Resource type … 対象リソース
  • Remediation … 修正方法
  • Related requirements … 関連する標準・要件
  • Status … 有効 / 無効

コントロールの例

上記のRDS.3 は、RDS DBインスタンスの保存時暗号化に関するコントロールです。コントロールは以下の構成になっています。

Control ID:
RDS.3

要件:
RDS DBインスタンスは保存時暗号化を有効化する必要がある

対象:
AWS::RDS::DBInstance

チェック内容:
StorageEncrypted が true か

失敗例:
StorageEncrypted = false

対応:
暗号化済みスナップショットから復元する、または新規構築時に暗号化を有効化する

上記のコントロールの場合、Security Hub CSPM は RDS インスタンスごとにチェックします。

db-prod-001 → 暗号化あり → PASSED
db-prod-002 → 暗号化なし → FAILED
db-dev-001  → 暗号化なし → FAILED

この FAILED の結果が Findingsになります。

セキュリティチェック(Security check)

セキュリティチェックは、コントロールに基づいて実際に AWS リソースを評価する処理です。コントロールを1つ以上の標準で有効化すると、Security Hub CSPM がそのコントロールに対してセキュリティチェックを開始し、その結果として Security Hub CSPM Findings が生成されます。

コントロール
= ルール・要件

セキュリティチェック
= 実際にそのルールでリソースを検査する処理

セキュリティチェックの具体例

例:RDS暗号化チェック

コントロール:
RDS.3

チェック:
RDS DBインスタンスの StorageEncrypted を確認する

結果:
true  → PASSED
false → FAILED

検出結果(Findings)

検出結果(Findings)とは、セキュリティチェックの結果として作られる検出結果です。セキュリティ チェックまたはセキュリティ関連の検出に関する観測可能なレコード(記録)として作成されます。Security Hub CSPM はコントロールのセキュリティチェック完了後に検出結果(Findings)を生成・更新します。

検出結果は、以下のいずれかのソースから発生する可能性があります。

  • Security Hub CSPM のコントロールのセキュリティ チェック。
  • 別の AWS サービスとの統合。
  • サードパーティ製品との統合。
  • カスタム統合。

Security Hub CSPM は、すべてのソースからの検出結果(Findings)を、AWS セキュリティ検出形式(ASFF、AWS Security Finding Format)と呼ばれる標準の構文と JSON 形式に正規化(共通のフォーマット化)します 。Security Hub CSPM はコントロールチェックを実行して検出結果(Finding)を作り、さらに Inspector などの統合サービスやサードパーティー製品からの検出結果(Findings)も取り込みます。

Findings はアラートそのものというより、調査・対応の単位になる1件の記録と考えられます。たとえば、「S3 バケットが公開状態」「不審な API コール」などが 1 件ずつ Findings として並びます。

Findings は一度作られて終わりではなく、Security Hub CSPM の再チェックによって更新されます。

検出結果に入る主な情報

  • Description … 何が問題か
  • Severity … 重要度
  • Compliance Status … PASSED / FAILED など
  • Workflow Status … NEW / NOTIFIED / SUPPRESSED / RESOLVED など
  • Resource … 対象リソース
  • Control ID … どのコントロールに関するものか
  • Standard … どの標準に属するか
  • First observed … 最初に検出された時刻
  • Last observed … 最後に検出された時刻
  • Remediation … 修正方法
  • Region … 対象リージョン
  • Account ID … 対象AWSアカウント

検出結果の例

Finding title:
RDS DB instances should have encryption at rest enabled

Control:
RDS.3

Resource:
arn:aws:rds:ap-northeast-1:123456789012:db:db-prod-002

Severity:
Medium

Compliance status:
FAILED

Workflow status:
NEW

Reason:
RDS DB instance storage encryption is not enabled.

Remediation:
Create an encrypted snapshot and restore from it, or recreate the DB instance with encryption enabled.

Compliance Status(コンプライアンス ステータス)

Compliance Status は、チェック結果そのものです。

  • PASSED … チェックに合格
  • FAILED … チェックに失敗
  • WARNING … 評価に注意が必要
  • NOT_AVAILABLE … 評価不可

Workflow Status(ワークフロース テータス)

Workflow Status は人間(管理者)が設定します。この検出結果(Finding)を現在人間側がどう扱っているかという調査・運用上の対応状態です。以下のステータスがあります。

  • NEW … 新規
  • NOTIFIED … 通知済み
  • SUPPRESSED … 抑制済み
  • RESOLVED … 解決済み

RecordState

RecordState は、その Finding 自体が今も有効な記録かという プロバイダー側の記録状態 です。たとえば ACTIVEARCHIVED があります。