yuj1osm's tech blog

クラウドやセキュリティなど

Security Hub automation rulesで検出結果を更新または抑制できるようになりました

Security Hub automation rulesで検出結果を更新または抑制できるようになったので、検証してみました。

aws.amazon.com

アップデート概要

  • 検出結果のさまざまなフィールドの自動更新、検出結果の抑制、重大度やワークフローステータスの更新、メモの追加が可能

事前準備

Security Hubのメニューに「オートメーション」が追加されています。

今回は更新と抑止を検証したいので、それぞれの共同を確認するために、ブロックパブリックアクセスを無効にしたS3バケットを2つ用意します。

検出結果の重要度を変更する

S3バケット「test1-automation-rules-bucket」のブロックパブリックアクセスが無効であることを検出させ、その重要度を変更します。

「オートメーション」→「ルールを作成」から、ルールテンプレート「Elevate severity of findings that relate to important resources」を選択します。

条件で、ResourceIdにS3バケットに「test1-automation-rules-bucket」のARNを指定します。

重要度はデフォルトで「CRITICAL」になっています。

ルールステータスが「有効」になっていることを確認し、「ルールを作成」を押下します。

複数のコントロールで検出されるため、今回は「AWS基礎セキュリティのベストプラクティス v1.0.0」から「[S3.8] S3 Block Public Access setting should be enabled at the bucket level」に絞って確認します。
SecurityHubの定期チェック後に検出結果を確認してみると、本コントロールの重要度は通常HIGHですが、CRITICALに変更されていることが分かります。
また、自動アクションに記載されているノートが反映されています。

詳細の画面も同様に変更されています。

また、履歴タブから「オートメーション」が重要度とノートを変更したことが記録されています。

JSONログを確認すると、元の重要度はSeverity.Originalに保持され、Severity.Labelに変更後の値が記録されています。
また、Noto.Textにノートが記録されています。

{
  "SchemaVersion": "2018-10-08",
  "Id": "arn:aws:securityhub:ap-northeast-1:xxxxxxxxxxxx:subscription/aws-foundational-security-best-practices/v/1.0.0/S3.8/finding/xxxxxxxxxxxx",
  "ProductArn": "arn:aws:securityhub:ap-northeast-1::product/aws/securityhub",
  "ProductName": "Security Hub",
  "CompanyName": "AWS",
  "Region": "ap-northeast-1",
  "GeneratorId": "aws-foundational-security-best-practices/v/1.0.0/S3.8",
  "AwsAccountId": "xxxxxxxxxxxx",
  "Types": [
    "Software and Configuration Checks/Industry and Regulatory Standards/AWS-Foundational-Security-Best-Practices"
  ],
  "FirstObservedAt": "2023-06-26T04:04:35.301Z",
  "LastObservedAt": "2023-06-26T04:04:42.291Z",
  "CreatedAt": "2023-06-26T04:04:35.301Z",
  "UpdatedAt": "2023-06-26T04:04:35.301Z",
  "Severity": {
    "Product": 70,
    "Label": "CRITICAL",
    "Normalized": 70,
    "Original": "HIGH"
  },
  "Title": "S3.8 S3 Block Public Access setting should be enabled at the bucket-level",
(省略)
  "Note": {
    "Text": "This is a critical resource. Please review ASAP.",
    "UpdatedBy": "sechub-automation",
    "UpdatedAt": "2023-06-26T04:04:45.635Z"
  },
(省略)

検出結果を抑制する

S3バケット「test2-automation-rules-bucket」のブロックパブリックアクセスが無効であることを検出させ、その検出を抑制します。

「オートメーション」→「ルールを作成」から、ルールテンプレート「Suppress informational findings」を選択します。

条件で、ResourceIdにS3バケットに「test2-automation-rules-bucket」のARNを指定します。

ワークフローステータスはデフォルトで「SUPPRESSED」になっています。

ルールステータスが「有効」になっていることを確認し、「ルールを作成」を押下します。

先ほどと同様、「AWS基礎セキュリティのベストプラクティス v1.0.0」から「[S3.8] S3 Block Public Access setting should be enabled at the bucket level」に絞って確認します。
ワークフローのステータスが「SUPPRESSED」に変更されています。
また、自動アクションに記載されているノートが反映されています。

詳細の画面も同様に変更されています。

また、履歴タブから「オートメーション」がステータスとノートを変更したことが記録されています。

JSONログを確認すると、Workflow.Statuslに抑制を表す「SUPPRESSED」が記録されています。
また、Noto.Textにノートが記録されています。

{
  "SchemaVersion": "2018-10-08",
  "Id": "arn:aws:securityhub:ap-northeast-1:xxxxxxxxxxxx:subscription/aws-foundational-security-best-practices/v/1.0.0/S3.8/finding/xxxxxxxxxxxx",
  "ProductArn": "arn:aws:securityhub:ap-northeast-1::product/aws/securityhub",
  "ProductName": "Security Hub",
  "CompanyName": "AWS",
  "Region": "ap-northeast-1",
  "GeneratorId": "aws-foundational-security-best-practices/v/1.0.0/S3.8",
  "AwsAccountId": "xxxxxxxxxxxx",
  "Types": [
    "Software and Configuration Checks/Industry and Regulatory Standards/AWS-Foundational-Security-Best-Practices"
  ],
  "FirstObservedAt": "2023-06-26T04:04:35.301Z",
  "LastObservedAt": "2023-06-26T04:04:40.573Z",
  "CreatedAt": "2023-06-26T04:04:35.301Z",
  "UpdatedAt": "2023-06-26T04:04:35.301Z",
(省略) 
  "Workflow": {
    "Status": "SUPPRESSED"
  },
  "RecordState": "ACTIVE",
  "Note": {
    "Text": "Automatically suppress this bucket",
    "UpdatedBy": "sechub-automation",
    "UpdatedAt": "2023-06-26T04:04:42.523Z"
  },
(省略)

まとめ

Security Hub automation rulesで検出結果を更新または抑制することができました。
これまで、手動で対応していた運用を、事前にルールを定義することで自動化することができます。
きめ細やかな条件を指定できることで運用が楽になると思うので、ぜひ活用してみてください。