本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Security Hub 中的自动化规则
注意
Security Hub 处于预览版,可能会发生变化。
借助 Security Hub,您可以自动执行诸如更新、查找详细信息和为第三方集成创建工单之类的任务。
自动化规则和 AWS 区域
自动化规则可以合而为一, AWS 区域 然后应用于所有已配置的规则 AWS 区域。使用区域聚合时,您只能在主区域中创建规则。在原区域中创建规则时,您定义的任何规则都将应用于所有链接区域,除非您的规则标准不包括特定的链接区域。您必须为任何非关联区域的区域创建自动化规则。
规则操作和标准
Security Hub 中的自动化规则使用标准来引用 Security Hub 调查结果中的 OCSF 属性。例如,中参数支持的过滤器CreateAutomationRuleV2与中Criteria参数支持的过滤器相匹配GetFindingsV2。Criteria这意味着自动化规则中使用的筛选器可用于获取结果。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.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。
当未关联的区域成为关联区域时,委托的管理员或独立账户可以通过列出、获取和删除操作来管理关联区域中的资源。