Security Hub 中的自动化规则 - AWS Security Hub

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Security Hub 中的自动化规则

注意

Security Hub 处于预览版,可能会发生变化。

借助 Security Hub,您可以自动执行诸如更新、查找详细信息和为第三方集成创建工单之类的任务。

自动化规则和 AWS 区域

自动化规则可以合而为一, AWS 区域 然后应用于所有已配置的规则 AWS 区域。使用区域聚合时,您只能在主区域中创建规则。在原区域中创建规则时,您定义的任何规则都将应用于所有链接区域,除非您的规则标准不包括特定的链接区域。您必须为任何非关联区域的区域创建自动化规则。

规则操作和标准

Security Hub 中的自动化规则使用标准来引用 Security Hub 调查结果中的 OCSF 属性。例如,中参数支持的过滤器CreateAutomationRuleV2与中Criteria参数支持的过滤器相匹配GetFindingsV2Criteria这意味着自动化规则中使用的筛选器可用于获取结果。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

对于标记为字符串字段的条件,在同一字段上使用不同的筛选器运算符会影响评估逻辑。有关更多信息,请参阅 Sec urity Hub API 参考StringFilter中的。

每个标准都支持可用于筛选匹配调查发现的最大值数。有关每个标准的限制,请参阅 Sec urity 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。当存在多个规则时,随后创建的每条规则将具有第二高的可用规则顺序数值。

当您通过 CreateAutomationRuleV2API 或创建规则时 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 操作

    • 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。

当未关联的区域成为关联区域时,委托的管理员或独立账户可以通过列出、获取和删除操作来管理关联区域中的资源。