Security Hub CSPM のオートメーションルールについて - AWS Security Hub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Security Hub CSPM のオートメーションルールについて

自動化ルールを使用して、 AWS Security Hub Cloud Security Posture Management (CSPM) の結果を自動的に更新できます。検出結果を取り込む際に、Security Hub CSPM は検出結果の抑制、重要度の変更、メモの追加など、さまざまなルールアクションを適用できます。このようなルールアクションは、指定した条件に一致する検出結果を変更します。

自動化ルールの使用例には、次のようなものがあります。

  • 検出結果のリソース ID がビジネス上重要なリソースを参照している場合、検出結果の重大度を CRITICAL に上げます。

  • 検出結果が特定の本番稼働用アカウントのリソースに影響する場合は、検出結果の重要度を HIGH から CRITICAL に引き上げます。

  • INFORMATIONAL 重要度を持つ SUPPRESSED ワークフローステータスの特定の検出結果を割り当てます。

Security Hub CSPM 管理者アカウントからのみ自動化ルールを作成および管理できます。

ルールは、新しい検出結果と更新された検出結果の両方に適用されます。カスタムルールを最初から作成することも、Security Hub CSPM が提供するルールテンプレートを使用することもできます。テンプレートから開始し、必要に応じて変更することもできます。

ルール基準とルールアクションの定義

Security Hub CSPM 管理者アカウントから、1 つ以上のルール条件と 1 つ以上のルールアクションを定義することで、自動化ルールを作成できます。結果が定義された基準に一致すると、Security Hub CSPM はルールアクションを適用します。使用可能な条件とアクションの詳細については、「使用可能なルール基準とルールアクション」を参照してください。

Security Hub CSPM は現在、管理者アカウントごとに最大 100 個のオートメーションルールをサポートしています。

Security Hub CSPM 管理者アカウントは、オートメーションルールを編集、表示、削除することもできます。ルールは、管理者アカウントとすべてのメンバーアカウントの一致する検出結果に適用されます。ルール基準としてメンバーアカウント IDs を指定することで、Security Hub CSPM 管理者はオートメーションルールを使用して、特定のメンバーアカウントの結果を更新または抑制することもできます。

自動化ルールは、作成された AWS リージョン にのみ適用されます。複数のリージョンにルールを適用するには、管理者がリージョンごとにルールを作成する必要があります。これは、Security Hub CSPM コンソール、Security Hub CSPM API、または を使用して実行できますAWS CloudFormationマルチリージョンデプロイスクリプトを使用することもできます。

使用可能なルール基準とルールアクション

現在、自動化ルールの基準として次の AWS Security Finding Format (ASFF) フィールドがサポートされています。

ルール基準 フィルター演算子 フィールドタイプ
AwsAccountId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
AwsAccountName CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
CompanyName CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ComplianceAssociatedStandardsId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ComplianceSecurityControlId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ComplianceStatus Is, Is Not 選択:[FAILED, NOT_AVAILABLE, PASSED, WARNING]
Confidence Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) 数値
CreatedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
Criticality Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) 数値
Description CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
FirstObservedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
GeneratorId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
Id CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
LastObservedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
NoteText CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
NoteUpdatedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
NoteUpdatedBy CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ProductArn CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ProductName CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
RecordState CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
RelatedFindingsId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
RelatedFindingsProductArn CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ResourceApplicationArn CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ResourceApplicationName CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ResourceDetailsOther CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS マッピング
ResourceId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ResourcePartition CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ResourceRegion CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ResourceTags CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS マッピング
ResourceType Is, Is Not 選択 (ASFF がサポートするリソースを参照)
SeverityLabel Is, Is Not 選択: [CRITICAL, HIGH, MEDIUM, LOW, INFORMATIONAL]
SourceUrl CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
Title CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
Type CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
UpdatedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
UserDefinedFields CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS マッピング
VerificationState CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
WorkflowStatus Is, Is Not 選択: [NEW, NOTIFIED, RESOLVED, SUPPRESSED]

文字列フィールドとしてラベル付けされている条件の場合、同じフィールドで異なるフィルター演算子を使用すると、評価ロジックに影響します。詳細については、AWS Security Hub Cloud Security Posture Management (CSPM) API リファレンスのStringFilter「」を参照してください。

各基準は、一致する検出結果のフィルタリングに使用できる値の最大数をサポートしています。各基準の制限については、AWS Security Hub Cloud Security Posture Management (CSPM) API リファレンスのAutomationRulesFindingFilters「」を参照してください。

現在、次の ASFF フィールドが自動化ルールのアクションとしてサポートされています。

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

特定の ASFF フィールドの詳細については、AWS 「Security Finding Format (ASFF) 構文」を参照してください。

ヒント

Security Hub CSPM で特定のコントロールの検出結果の生成を停止する場合は、オートメーションルールを使用する代わりにコントロールを無効にすることをお勧めします。コントロールを無効にすると、Security Hub CSPM はセキュリティチェックの実行を停止し、検出結果の生成を停止するため、そのコントロールに対して料金が発生しません。自動化ルールを使用し、定義した条件に一致する検出結果に関して、特定の ASFF フィールド値を変更することをおすすめします。コントロールの無効化に関する詳細については、「Security Hub CSPM でのコントロールの無効化」を参照してください。

自動化ルールが評価する検出結果

自動化ルールは、ルールの作成後に Security Hub CSPM が BatchImportFindingsオペレーションを通じて生成または取り込む新規および更新された検出結果を評価します。Security Hub CSPM は、コントロールの検出結果を 12~24 時間ごと、または関連するリソースの状態が変更されたときに更新します。詳細については、「Schedule for running security checks」を参照してください。

自動化ルールは、プロバイダーが提供する元の検出結果を評価します。プロバイダーは、Security Hub CSPM API の BatchImportFindingsオペレーションを通じて、新しい検出結果を提供し、既存の検出結果を更新できます。BatchUpdateFindings オペレーションを通じてルールを作成した後に検出結果フィールドを更新しても、ルールはトリガーされません。自動化ルールを作成し、同じ検出結果フィールドに影響する BatchUpdateFindings 更新を行うと、最後の更新によってそのフィールドの値を設定します。次の例を見てみましょう。

  1. BatchUpdateFindings を使用して、検出結果の Workflow.Status フィールドを NEW から NOTIFIED に更新します。

  2. GetFindings を呼び出すと、Workflow.Status フィールドの値が NOTIFIED になりました。

  3. 検出結果の Workflow.Status フィールドを NEW から SUPPRESSED に変更する自動化ルールを作成します (BatchUpdateFindings で行われた更新を無視するルールを思い出してください)。

  4. 検出結果プロバイダーは BatchImportFindings を使用して検出結果を更新し、Workflow.Status フィールドを NEW に変更します。

  5. GetFindings を呼び出すと、自動化ルールが適用され、ルールが検出結果に対して最後に実行されたアクションであったため、Workflow.Status フィールドの値が SUPPRESSED になりました。

Security Hub CSPM コンソールでルールを作成または編集すると、コンソールにルール条件に一致する検出結果のベータが表示されます。自動化ルールは検出結果プロバイダーによって送信された元の検出結果を評価しますが、コンソールベータは GetFindings API オペレーションへのレスポンス (つまり、ルールアクションやその他の更新が検出結果に適用された後) に表示されるため、最終状態の検出結果を反映します。

ルールの順序の仕組み

自動化ルールを作成するときは、各ルールに順序を割り当てます。これにより、Security Hub CSPM が自動化ルールを適用する順序が決まり、複数のルールが同じ検出結果または検出結果フィールドに関連する場合に重要になります。

複数のルールアクションが同じ検出結果または検出結果フィールドに関連する場合、ルール順序の数値が最も大きいルールが最後に適用され、最終的な結果となります。

Security Hub CSPM コンソールでルールを作成すると、Security Hub CSPM はルールの作成順序に基づいてルールの順序を自動的に割り当てます。最後に作成されたルールは、ルール順序の数値が最も小さいため、最初に適用されます。Security Hub CSPM は、後続のルールを昇順で適用します。

Security Hub CSPM API または を使用してルールを作成すると AWS CLI、Security Hub CSPM はRuleOrder最初に最も低い数値のルールを適用します。その後、後続のルールを昇順で適用します。複数の検出結果に同じ がある場合RuleOrder、Security Hub CSPM は、最初に UpdatedAtフィールドに以前の値を持つルールを適用します (つまり、最後に編集されたルールが適用されます)。

ルールの順序はいつでも変更できます。

ルール順序の例:

ルール A (ルール順序は 1):

  • ルール A の基準

    • ProductName = Security Hub CSPM

    • Resources.TypeS3 Bucket

    • Compliance.Status = FAILED

    • RecordStateNEW

    • Workflow.Status = ACTIVE

  • ルール A のアクション

    • Confidence95 に更新

    • SeverityCRITICAL に更新

ルール B (ルールの順序は 2):

  • ルール B の基準

    • AwsAccountId = 123456789012

  • ルール B のアクション

    • SeverityINFORMATIONAL に更新

ルール A アクションは、まずルール A 基準に一致する Security Hub CSPM の検出結果に適用されます。次に、ルール B アクションは、指定されたアカウント ID を持つ Security Hub CSPM の検出結果に適用されます。この例では、ルール B が最後に適用されるため、指定されたアカウント ID からの検出結果における Severity の最終値は INFORMATIONAL です。ルール A のアクションに基づくと、一致した検出結果の Confidence の最終値は 95 です。