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

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

了解 Security Hub 中的自动化规则

自动化规则可用于自动更新 AWS Security Hub中的调查发现。提取调查发现时,Security Hub 可以应用各种规则操作,例如隐藏调查发现、更改其严重性以及添加注释。此类规则操作会修改符合您指定的条件的调查发现。

自动化规则用例的示例如下:

  • 如果调查发现的资源 ID 指的是业务关键型资源,则将调查发现的严重性提升为 CRITICAL

  • 如果调查发现影响特定生产账户中的资源,则将调查发现的严重性从 HIGH 提升到 CRITICAL

  • 分配具有 SUPPRESSED 工作流程状态 INFORMATIONAL 严重性的特定调查发现。

您只能通过 Security Hub 管理员账户创建和管理自动化规则。

规则适用于新的和更新后的调查发现。您可以从头开始创建自定义规则,也可以使用 Security Hub 提供的规则模板。您也可以从模板开始创建规则,然后根据需要对其进行修改。

定义规则条件和规则操作

通过 Security Hub 管理员账户,您可以通过定义一个或多个规则条件以及一个或多个规则操作,以此创建自动化规则。当调查发现与定义的条件相匹配时,Security Hub 会对其应用规则操作。有关可用条件和操作的更多信息,请参阅 可用的规则条件和规则操作

对于每个管理员账户,Security Hub 目前最多支持 100 条自动化规则。

Security Hub 管理员账户还可以编辑、查看和删除自动化规则。规则适用于管理员账户及其所有成员账户中的匹配调查发现。通过提供成员帐户IDs作为规则标准,Security Hub 管理员还可以使用自动化规则来更新或隐藏特定成员帐户中的搜索结果。

自动化规则仅适用于其创建时 AWS 区域 所在的。要在多个区域中应用规则,管理员必须在每个区域中创建规则。这可以通过 Security Hub 控制台、Security Hub API 或AWS CloudFormation。您也可以使用多区域部署脚本

可用的规则条件和规则操作

目前支持以下 AWS 安全查找格式 (ASFF) 字段作为自动化规则的标准:

规则标准 筛选条件运算符 字段类型
AwsAccountId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
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 String
ComplianceStatus Is, Is Not 选择:[FAILEDNOT_AVAILABLEPASSEDWARNING]
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 String
FirstObservedAt Start, End, DateRange 日期(格式为 2022-12-01T21:47:39.269Z)
GeneratorId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
Id CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
LastObservedAt Start, End, DateRange 日期(格式为 2022-12-01T21:47:39.269Z)
NoteText CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
NoteUpdatedAt Start, End, DateRange 日期(格式为 2022-12-01T21:47:39.269Z)
NoteUpdatedBy CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
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 String
ResourceDetailsOther CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS Map
ResourceId CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ResourcePartition CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 字符串
ResourceRegion CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
ResourceTags CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS Map
ResourceType Is, Is Not 选择(参见支持的资源ASFF)
SeverityLabel Is, Is Not 选择:[CRITICALHIGHMEDIUMLOWINFORMATIONAL]
SourceUrl CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
Title CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS 字符串
Type CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
UpdatedAt Start, End, DateRange 日期(格式为 2022-12-01T21:47:39.269Z)
UserDefinedFields CONTAINS, EQUALS, NOT_CONTAINS, NOT_EQUALS Map
VerificationState CONTAINS, EQUALS, PREFIX, NOT_CONTAINS, NOT_EQUALS, PREFIX_NOT_EQUALS String
WorkflowStatus Is, Is Not 选择:[NEWNOTIFIEDRESOLVEDSUPPRESSED]

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

每个标准都支持可用于筛选匹配调查发现的最大值数。有关每个标准的限制,请参见 AutomationRulesFindingFiltersAWS Security Hub API参考资料中。

目前支持将以下ASFF字段作为自动化规则的操作:

  • Confidence

  • Criticality

  • Note

  • RelatedFindings

  • Severity

  • Types

  • UserDefinedFields

  • VerificationState

  • Workflow

有关特定ASFF字段的更多信息,请参阅AWS 安全调查结果格式 (ASFF) 语法

提示

如果您希望 Security Hub 停止为特定控件生成调查发现,我们建议您禁用该控件,而不是使用自动化规则。当您禁用某个控件时,Security Hub 会停止对其运行安全检查,并停止为其生成调查发现,因此您不会为该控件支付费用。对于符合定义标准的结果,我们建议使用自动化规则来更改特定ASFF字段的值。有关禁用控件的详细信息,请参阅 在 Security Hub 中禁用控件

自动化规则评估的调查发现

自动化规则会评估 Security Hub 通过生成或提取的新发现和更新结果 BatchImportFindings在创建规则之后进行操作。Security Hub 每 12 至 24 小时或在关联资源状态发生变化时更新控件调查发现。有关更多信息,请参阅运行安全检查的计划

自动化规则会评估提供者提供的原始调查发现。提供商可以通过 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 控制台中创建或编辑规则时,控制台会显示符合规则条件的调查发现的预览。虽然自动化规则会评估调查结果提供者发送的原始调查结果,但控制台预览会反映调查结果的最终状态,就像在对调查结果的响应中显示的那样 GetFindingsAPI操作(即在对调查结果应用规则操作或其他更新之后)。

规则顺序的工作原理

创建自动化规则时,您可以为每条规则分配一个顺序。这决定了 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 操作

    • Confidence 更新为 95

    • Severity 更新为 CRITICAL

规则 B(规则顺序为 2

  • 规则 B 条件

    • AwsAccountId = 123456789012

  • 规则 B 操作

    • Severity 更新为 INFORMATIONAL

规则 A 操作首先应用于符合规则 A 条件的 Security Hub 结果。接下来,规则 B 操作将应用于具有指定账户 ID 的 Security Hub 结果。在此示例中,由于规则 B 最后适用,因此调查发现中来自指定账户 ID 的 Severity 的最终值为 INFORMATIONAL。根据规则 A 操作,在匹配调查发现中 Confidence 的最终值为 95