Security Hub のオートメーションルール - AWS Security Hub

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

Security Hub のオートメーションルール

注記

Security Hub はプレビューリリースであり、変更される可能性があります。

Security Hub を使用すると、検出結果の詳細の更新やサードパーティー統合のチケットの作成などのタスクを自動化できます。

自動化ルールと AWS リージョン

自動化ルールは 1 つの で作成し AWS リージョン 、設定されたすべての に適用できます AWS リージョン。リージョン集約を使用する場合、ルールはホームリージョンでのみ作成できます。ホームリージョンでルールを作成する場合、ルール条件が特定のリンクされたリージョンを除外しない限り、定義したルールはすべてのリンクされたリージョンに適用されます。リンクされたリージョンではないリージョンに対してオートメーションルールを作成する必要があります。

ルールのアクションと条件

Security Hub のオートメーションルールは、Security Hub の検出結果で OCSF 属性を参照するための基準を使用します。たとえば、 の Criteriaパラメータでサポートされているフィルターは、 の CriteriaパラメータでサポートされているフィルターCreateAutomationRuleV2と一致しますGetFindingsV2。つまり、自動化ルールで使用されるフィルターを使用して検出結果を取得できます。Security Hub は、自動化ルール基準の次の OCSF フィールドをサポートしています。

OCSF フィールド コンソールフィルター値 フィルター演算子 フィールドタイプ
activity_name Activity name EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
class_name Finding class name EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
cloud.account.uid Account ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
cloud.provider Cloud provider EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
cloud.region Region EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
comment Comment EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
compliance.assessments.category Assessment category EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
compliance.assessments.name Assessment name EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
compliance.control Security control ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
compliance.standards Applicable standards EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
compliance.status Compliance status EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.desc Finding description EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.related_events.product.uid Related findings product ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.related_events.title Related findings title EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.related_events.uid Related findings ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.src_url Source URL EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.types Finding type EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.uid Provider ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
metadata.product.feature.uid Generator ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
metadata.product.name Product name EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
metadata.product.uid Product ARN EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
metadata.product.vendor_name Company name EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
metadata.uid Finding ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
remediation.desc Recommendation text EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
remediation.references Recommendation URL EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
resources.cloud_partition Resource partition EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
resources.name Resource name EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
resources.region Resource region EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
resources.type Resource type EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
resources.uid Resource ID EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
severity Severity EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
status Status EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
vulnerabilities.fix_coverage Software vulnerabilities coverage EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
finding_info.first_seen_time_dt First observed at Start, End, DateRange Date (formatted as 2022-12-01T21:47:39.269Z)
finding_info.last_seen_time_dt Last observed at Start, End, DateRange Date (formatted as 2022-12-01T21:47:39.269Z)
finding_info.modified_time_dt Updated at Start, End, DateRange Date (formatted as 2022-12-01T21:47:39.269Z)
compliance.assessments.meets_criteria Compliance assessment meets criteria True, False Boolean
vulnerabilities.is_exploit_available Software vulnerabilities with exploit available True, False Boolean
vulnerabilities.is_fix_available Software vulnerabilities with fix available True, False Boolean
activity_id Activity ID Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) Number
compliance.status_id Compliance status ID Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) Number
confidence_score Confidence Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) Number
severity_id Severity ID Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) Number
status_id Status ID Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) Number
finding_info.related_events_count Related findings count Eq (equal-to), Gte (greater-than-equal), Lte (less-than-equal) Number
resources.tags Resource tags EQUALS Map

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

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

更新できる OCSF フィールド

自動化ルールを使用して更新できる OCSF フィールドを次に示します。

  • Comment

  • SeverityId

  • StatusId

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

自動化ルールは、ルールの作成後に Security Hub が生成または取り込む新規および更新された検出結果を評価します。

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

BatchUpdateFindingsV2 を使用して、検出結果の Status フィールドを New から In Process に更新します。GetFindingsV2 を呼び出すと、Status フィールドの値が In Process になりました。検出結果の Status フィールドを New から Suppressed に変更する自動化ルールを作成します (BatchUpdateFindingsV2 で行われた更新を無視するルールを思い出してください)。検出結果プロバイダーは検出結果を更新し、 Statusフィールドを に変更しますNewGetFindingsV2 を呼び出すと、自動化ルールが適用され、ルールが検出結果に対して最後に実行されたアクションであったため、Status フィールドの値が Suppressed になりました。

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

自動化ルールの順序付け方法

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

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

Security Hub コンソールでルールを作成すると、Security Hub はルールの作成順序に基づいて、ルールの順序を自動的に割り当てます。最初に作成するルールの順序は 1 です。複数のルールが存在する場合、後で作成される各ルールは、ルールの順序で次に高い数値になります。

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

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

ルール順序の例:

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

  • ルール A の基準

    • ProductName = Security Hub CSPM

    • Resources.TypeS3 Bucket

    • Compliance.Status = FAILED

    • RecordStateNEW

    • Workflow.Status = ACTIVE

  • ルール A のアクション

    • Confidence95 に更新

    • SeverityCRITICAL に更新

    • CommentThis needs attention に更新

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

  • ルール B の基準

    • AwsAccountId = 123456789012

  • ルール B のアクション

    • SeverityINFORMATIONAL に更新

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

サードパーティ統合

自動化ルールを使用して、 Jira Cloudおよび との統合のチケットを作成できますServiceNow ITSM。詳細については、「サードパーティー統合のルールの作成」を参照してください。

自動化ルールが機能しないシナリオ

以下は、自動化ルールが機能しないシナリオです。

  • スタンドアロンアカウントが委任された管理者を持つ組織のメンバーになる

  • 組織管理アカウントが委任管理者を削除し、新しい委任管理者を設定する

  • リンクされていないリージョンがリンクされたリージョンになると、委任管理者アカウントまたはスタンドアロンアカウントのアグリゲータ設定が変更されます。

これらのシナリオでは、組織のメンバーは、 AWS CLI または APIs のリスト、取得、削除オペレーションを使用して自動化ルールを管理できます。

リンクされていないリージョンがリンクされたリージョンになると、委任された管理者アカウントまたはスタンドアロンアカウントは、リスト、取得、削除オペレーションを使用して、リンクされたリージョンのリソースを管理できます。