翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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フィールドを に変更しますNew。GetFindingsV2 を呼び出すと、自動化ルールが適用され、ルールが検出結果に対して最後に実行されたアクションであったため、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.TypeはS3 Bucket -
Compliance.Status=FAILED -
RecordStateはNEW -
Workflow.Status=ACTIVE
-
-
ルール A のアクション
-
Confidenceを95に更新 -
SeverityをCRITICALに更新 -
CommentをThis needs attentionに更新
-
ルール B (ルールの順序は 2):
-
ルール B の基準
-
AwsAccountId=123456789012
-
-
ルール B のアクション
-
SeverityをINFORMATIONALに更新
-
まず、ルール A アクションは、ルール A の基準に一致する Security Hub の検出結果に適用されます。次に、ルール B アクションは、指定されたアカウント ID を持つ Security Hub の検出結果に適用されます。この例では、ルール B が最後に適用されるため、指定されたアカウント ID からの検出結果における Severity の最終値は INFORMATIONAL です。ルール A のアクションに基づくと、一致した検出結果の Confidence の最終値は 95 です。
サードパーティ統合
自動化ルールを使用して、 Jira Cloudおよび との統合のチケットを作成できますServiceNow ITSM。詳細については、「サードパーティー統合のルールの作成」を参照してください。
自動化ルールが機能しないシナリオ
以下は、自動化ルールが機能しないシナリオです。
-
スタンドアロンアカウントが委任された管理者を持つ組織のメンバーになる
-
組織管理アカウントが委任管理者を削除し、新しい委任管理者を設定する
-
リンクされていないリージョンがリンクされたリージョンになると、委任管理者アカウントまたはスタンドアロンアカウントのアグリゲータ設定が変更されます。
これらのシナリオでは、組織のメンバーは、 AWS CLI または APIs のリスト、取得、削除オペレーションを使用して自動化ルールを管理できます。
リンクされていないリージョンがリンクされたリージョンになると、委任された管理者アカウントまたはスタンドアロンアカウントは、リスト、取得、削除オペレーションを使用して、リンクされたリージョンのリソースを管理できます。