Security Hub の自動化ルールについて - AWS Security Hub

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

Security Hub の自動化ルールについて

自動化ルールを使用すると、 AWS Security Hubの検出結果を自動的に更新できます。検出結果が取り込まれると、Security Hub は検出結果の非表示、重要度の変更、メモの追加など、さまざまなルールアクションを適用できます。このようなルールアクションは、指定した条件に一致する検出結果を変更します。

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

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

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

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

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

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

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

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

Security Hub は現在、管理者アカウントごとに最大 100 の自動化ルールをサポートしています。

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

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

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

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

ルール基準 フィルター演算子 フィールドタイプ
AwsAccountId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
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 文字列
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 文字列
FirstObservedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
GeneratorId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
Id CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
LastObservedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
NoteText CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
NoteUpdatedAt Start, End, DateRange 日付 (形式例: 2022-12-01T21:47:39.269Z)
NoteUpdatedBy CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
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 文字列
ResourceDetailsOther CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS マッピング
ResourceId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ResourcePartition CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
ResourceRegion CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
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 文字列
Title CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
Type CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 文字列
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 文字列
WorkflowStatus Is, Is Not 選択: [NEW, NOTIFIED, RESOLVED, SUPPRESSED]

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

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

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

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

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

ヒント

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

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

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

自動化ルールは、プロバイダーが提供する元の検出結果を評価します。プロバイダーは、Security Hub の BatchImportFindingsオペレーションを通じて、新しい検出結果を提供し、既存の検出結果を更新できますAPI。を通じてルールを作成した後に結果フィールドを更新しても、ルールはトリガーされません。 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 コンソールでルールを作成または編集すると、コンソールにルール条件に一致する検出結果のプレビューが表示されます。自動化ルールは、検出結果プロバイダーによって送信された元の検出結果を評価しますが、コンソールプレビューは、 へのレスポンスに表示されるように、検出結果を最終状態に反映します。 GetFindings API オペレーション (つまり、ルールアクションやその他の更新が結果に適用された後)。

ルールの順序の仕組み

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

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

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

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

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

ルール順序の例:

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

  • ルール A の基準

    • ProductName = Security Hub

    • Resources.TypeS3 Bucket

    • Compliance.Status = FAILED

    • RecordStateNEW

    • Workflow.Status = ACTIVE

  • ルール A のアクション

    • Confidence95 に更新

    • SeverityCRITICAL に更新

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

  • ルール B の基準

    • AwsAccountId = 123456789012

  • ルール B のアクション

    • SeverityINFORMATIONAL に更新

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