Regras de automação no Security Hub
nota
O Security Hub está em versão de pré-visualização e está sujeito à alterações.
Com o Security Hub, é possível automatizar tarefas como atualizar detalhes de descobertas e criar tíquetes para integrações de terceiros.
Regras de automação e Regiões da AWS
As regras de automação podem ser criadas em uma Região da AWS e depois aplicadas em todas as Regiões da AWS configuradas. Ao usar a agregação de região, as regras somente podem ser criadas na região inicial. Ao criar regras na região inicial, qualquer regra que você definir será aplicada a todas as regiões vinculadas, a menos que seus critérios de regra excluam uma região vinculada específica. É necessário criar uma regra de automação para qualquer região que não seja uma região vinculada.
Ações e critérios de regras
As regras de automação no Security Hub usam critérios para referenciar atributos de OCSF nas descobertas do Security Hub. Por exemplo, os filtros com suporte para o parâmetro Criteria em CreateAutomationRuleV2 correspondem aos filtros com suporte para o parâmetro Criteria em GetFindingsV2. Isso significa que os filtros usados nas regras de automação podem ser usados para obter descobertas. O Security Hub oferece suporte aos campos de OCSF a seguir para os critérios das regras de automação.
| Campo de OCSF | Valor do filtro do console | Operadores de filtro | Tipo de campo |
|---|---|---|---|
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 |
Para critérios rotulados como campos de string, o uso de diferentes operadores de filtro no mesmo campo afeta a lógica de avaliação. Para obter mais informações, consulte StringFilter na Referência de API CSPM do Security Hub.
Cada critério aceita um número máximo de valores que podem ser usados para filtrar as descobertas correspondentes. Para obter os limites de cada critério, consulte OcsfFindingFilters na Referência de API do Security Hub.
Campos de OCSF que podem ser atualizados
A seguir estão os campos de OCSF que podem ser atualizados usando regras de automação.
-
Comment -
SeverityId -
StatusId
Como as regras de automação avaliam as descobertas
Uma regra de automação avalia as descobertas novas e atualizadas que o Security Hub gera ou ingere depois que você cria a regra.
As regras de automação avaliam as descobertas originais fornecidas por provedores. Os provedores podem fornecer novas descobertas e atualizar as descobertas existentes por meio da sua integração com o Security Hub. As regras não são acionadas quando você atualiza os campos de descoberta após a criação da regra por meio da operação BatchUpdateFindingsV2. Se você criar uma regra de automação e fizer uma atualização de BatchUpdateFindingsV2 que afete o mesmo campo de descoberta, a última atualização definirá o valor desse campo. Veja o seguinte exemplo:
Você usa BatchUpdateFindingsV2 para atualizar o campo Status de uma descoberta de New para In Process. Se você chamar GetFindingsV2, o campo Status passará a ter um valor de In Process. Você cria uma regra de automação que altera o campo Status da descoberta de New para Suppressed (lembre-se de que as regras ignoram as atualizações feitas com BatchUpdateFindingsV2). O provedor de descobertas atualiza a descoberta e alterar o campo Status para New. Se você chamar GetFindingsV2, o campo Status passará a ter um valor de Suppressed porque a regra de automação foi aplicada e a regra foi a última ação realizada na descoberta.
Quando você cria ou edita uma regra no console do Security Hub, o console exibe uma prévia das descobertas que correspondem aos critérios da regra. Considerando que as regras de automação avaliam as descobertas originais enviadas pelo provedor de descobertas, a visualização prévia no console reflete as descobertas em seu estado final, conforme elas seriam mostradas em uma resposta à operação GetFindingsV2 da API (ou seja, após as ações das regras ou outras atualizações serem aplicadas à descoberta).
Como as regras de automação são ordenadas
Cada regra de automação recebe uma ordem de regra. Isso determina a ordem na qual o Security Hub aplica suas regras de automação e se torna importante quando várias regras estão relacionadas à mesma descoberta ou campo de descoberta.
Quando várias ações de regra estão relacionadas à mesma descoberta ou campo de descoberta, a regra com o maior valor numérico para a ordem das regras se aplica por último e produz o efeito final.
Quando você cria uma regra no console do Security Hub, o Security Hub atribui automaticamente a ordem das regras com base na ordem de criação da regra. A primeira regra que você criar terá uma ordem de regra de 1. Quando existir mais de uma regra, cada regra criada posteriormente terá o próximo valor numérico mais alto disponível para a ordem das regras.
Quando você cria uma regra por meio da API CreateAutomationRuleV2 ou da AWS CLI, o Security Hub aplica a regra com o menor valor numérico para a RuleOrder primeiro. Em seguida, aplica regras subsequentes em ordem ascendente. Se várias descobertas tiverem a mesma RuleOrder, o Security Hub aplica uma regra com um valor anterior primeiro para o campo UpdatedAt (ou seja, a regra que foi editada mais recentemente é aplicada por último).
É possível modificar a ordem das regras a qualquer momento.
Exemplo de ordem de regras:
Regra A (a ordem das regras é 1):
-
Critérios da Regra A
-
ProductName=Security Hub CSPM -
Resources.TypeéS3 Bucket -
Compliance.Status=FAILED -
RecordStateéNEW -
Workflow.Status=ACTIVE
-
-
Ações da Regra A
-
Atualizar
Confidencepara95 -
Atualizar
SeverityparaCRITICAL -
Atualizar
CommentparaThis needs attention
-
Regra B (a ordem das regras é 2):
-
Critérios da Regra B
-
AwsAccountId=123456789012
-
-
Ações de Regra B
-
Atualizar
SeverityparaINFORMATIONAL
-
Inicialmente, as ações da Regra A se aplicam às descobertas do Security Hub que correspondam aos critérios da Regra A. Em seguida, as ações da Regra B se aplicam às descobertas do Security Hub com o ID da conta especificado. Neste exemplo, como a Regra B se aplica por último, o valor final de Severity nas descobertas do ID da conta especificada é INFORMATIONAL. Com base na ação da Regra A, o valor final de Confidence nas descobertas correspondentes é 95.
Integrações de terceiros
É possível usar regras de automação para a criação de tíquetes para integrações com a Jira Cloud e p ServiceNow ITSM. Para obter mais informações, consulte Criação de uma regra para uma integração de terceiros.
Cenários em que as regras de automação não funcionam
Nos cenários a seguir, as regras de automação não funcionam.
-
A conta autônoma se torna um membro de uma organização com um administrador delegado
-
A conta gerencial da organização remove o administrador delegado e define um novo administrador delegado
-
A configuração do agregador para o administrador delegado ou conta autônoma muda quando uma região desvinculada é transformada em uma região vinculada.
Durante esses cenários, um membro de uma organização pode gerenciar regras de automação com as operações list, get e delete na AWS CLI ou nas APIs.
Quando uma região desvinculada é transformada em região vinculada, o administrador delegado ou a conta autônoma pode gerenciar recursos em uma região vinculada com as operações list, get e delete.