本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Security Hub 中的自動化規則
注意
Security Hub 處於預覽版本,可能會有所變更。
使用 Security Hub,您可以自動化任務,例如更新問題清單詳細資訊和為第三方整合建立票證。
自動化規則和 AWS 區域
自動化規則可以在一個 中建立 AWS 區域 ,然後套用至所有設定的規則 AWS 區域。使用區域彙總時,您只能在主區域中建立規則。在主區域中建立規則時,您定義的任何規則都會套用至所有連結區域,除非您的規則條件排除特定連結區域。您必須為任何非連結區域的區域建立自動化規則。
規則動作和條件
Security Hub 中的自動化規則使用條件來參考 Security Hub 調查結果中的 OCSF 屬性。例如, 中 Criteria 參數支援的篩選條件CreateAutomationRuleV2符合 中 Criteria 參數支援的篩選條件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更新,則上次更新會設定該欄位的值。採用下列範例:
您可以使用 將問題清單Status的欄位從 BatchUpdateFindingsV2更新New為 In Process。如果您呼叫 GetFindingsV2, Status 欄位現在的值為 In Process。您可以建立自動化規則,將調查結果Status的欄位從 變更為 NewSuppressed(請回想規則忽略使用 所做的更新BatchUpdateFindingsV2)。問題清單提供者會更新問題清單,並將 Status 欄位變更為 New。如果您呼叫 GetFindingsV2, Status 欄位現在的值為 ,Suppressed因為已套用自動化規則,而規則是對調查結果採取的最後動作。
當您在 Security Hub 主控台上建立或編輯規則時,主控台會顯示符合規則條件的問題清單預覽。雖然自動化規則會評估問題清單提供者傳送的原始問題清單,但主控台預覽會以最終狀態反映問題清單,如同 API GetFindingsV2操作的回應所示 (也就是套用規則動作或其他更新至問題清單之後)。
自動化規則的排序方式
每個自動化規則都會指派一個規則順序。這決定 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中的清單、取得和刪除操作來管理自動化規則。
當取消連結的區域成為連結區域時,委派的管理員或獨立帳戶可以使用清單、取得和刪除操作來管理連結區域中的資源。