Gerenciar exclusões de regras
Este documento explica como gerenciar programaticamente as exclusões de regras no Google Security Operations usando a API. As exclusões servem como filtros definidos com base nos campos do Modelo de dados unificado (UDM, na sigla em inglês) para impedir que detecções específicas gerem alertas. Ao identificar atividades conhecidas ou seguras, esses filtros interrompem ruídos desnecessários no painel.
Criar uma exclusão com filtros de resultado
É possível criar uma nova regra de exclusão programaticamente para suprimir descobertas de detecção específicas que correspondam aos critérios definidos, reduzindo o ruído e priorizando alertas de alta fidelidade.
Use o endpoint POST para definir a lógica de supressão. Todos os filtros com a matriz outcomeFilters estão vinculados por uma cláusula AND implícita.
Método: POST
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
Exemplo:
POST https://us-chronicle.googleapis.com/v1/projects/my-project/locations/us/instances/my-instance/findingsRefinements
Corpo da solicitação:
{
"displayName": "Exclusion with outcome filters",
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL"
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS"
}
]
}
O exemplo demonstra como definir a lógica de supressão em que vários filtros na matriz outcomeFilters estão vinculados por uma cláusula AND implícita.
Campos obrigatórios: displayName, type, query
Campos gerados pelo sistema: não especifique name, createTime ou updateTime.
Eles são gerenciados pelo sistema e serão ignorados ou causarão erros se incluídos na solicitação.
A lógica de supressão segue um relacionamento AND. A solicitação cria uma exclusão que suprime todas as detecções que têm um evento com o seguinte:
"altostrat.com" como o nome do host principal
Uma variável de resultado
ipcom o valor127.0.0.1Uma variável de resultado
hostnamescom pelo menos um dos valores agregados sendoaltostrat.com.
Todos os filtros especificados na exclusão estão implicitamente vinculados por uma cláusula AND.
Resposta da API: a API retorna o nome do recurso FindingsRefinement.
O recurso FindingsRefinement contém a lógica de supressão principal (a consulta e os filtros de resultado). O nome do recurso (ID) é usado para operações subsequentes na exclusão.
Acessar uma exclusão
Use o endpoint GET para fazer o seguinte:
Receber os detalhes de uma única definição de exclusão pelo ID exclusivo.
Quando você tem um
refinement-idespecífico e precisa verificar a consulta exata ou os filtros de resultado que ele contém.
Método: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
Exemplo:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777
Aplicar uma exclusão a uma regra ou conjunto de regras
É necessário aplicar a exclusão a regras específicas ou conjuntos de regras selecionados.
Quando você aplica a exclusão a uma regra ou conjunto de regras, ela cria um recurso FindingsRefinementDeployment. É possível usar esse recurso para determinar as regras personalizadas, selecionadas ou conjuntos de regras selecionados que se aplicam ao recurso FindingsRefinement. Em seguida, especifique o parâmetro update_mask na solicitação de API para indicar quais campos no FindingsRefinementDeployment serão atualizados.
Método: PATCH
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
REFINEMENT_ID: o ID exclusivo do refinamento de descobertas.
Exemplo:
PATCH https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777?update_mask=enabled,detectionExclusionApplication
Corpo da solicitação:
{
"name": "projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777"
"enabled": true,
"detectionExclusionApplication": {
"curatedRuleSets": [
...list curated rule set resource names
],
"curatedRules": [
...list curated rule resource names
],
"rules": [
...list rule resource names
],
}
}
Quando você aplica a exclusão a uma regra ou conjunto de regras, o sistema cria um recurso FindingsRefinementDeployment. Esse recurso determina quais regras personalizadas, selecionadas e conjuntos de regras selecionados se aplicam ao recurso FindingsRefinement. Também é possível incluir o parâmetro update_mask na solicitação de API para especificar quais campos no FindingsRefinementDeployment serão atualizados.
Acessar a implantação da exclusão
Depois de criar ou atualizar uma exclusão, use esse endpoint para verificar a quais regras ou conjuntos de regras essa exclusão específica é implantada.
Método: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements/REFINEMENT_ID
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
REFINEMENT_ID: o ID exclusivo do refinamento de descobertas.
Exemplo:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements/fr_00001111-2222-3333-4444-555566667777/deployment
Listar todas as exclusões
Use esse endpoint para recuperar a lista de recursos findingsRefinements.
Método: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
Exemplo:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210/findingsRefinements
Parâmetros de consulta opcionais: pageSize, pageToken
É possível usar os parâmetros opcionais para listar mais resultados semelhantes a outros endpoints de lista na API.
Listar todas as implantações de exclusão
Use esse endpoint para receber a lista de recursos FindingsRefinement criados na sua instância.
Método: GET
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID/findingsRefinements
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
Exemplo:
GET https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:listAllFindingsRefinementDeployments
Parâmetros de consulta opcionais:
Use os parâmetros
pageSizeepageTokenpara listar mais resultados semelhantes a outros endpoints de lista na API.Use o parâmetro
filterpara filtrar as regras ou conjuntos de regras que têm exclusões aplicadas.
Testar uma exclusão usando a API
Esse endpoint testa a exclusão em relação às detecções das regras e conjuntos de regras especificados e, em seguida, valida a eficácia da exclusão na supressão de detecções indesejadas. A interface usa as detecções dos últimos 30 dias para testes.
Método: POST
Endpoint:
https://REGION-chronicle.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID:testFindingsRefinement
Substitua:
REGION: A Google Cloud região da instância do Google SecOps.
PROJECT_ID: o ID do Google Cloud projeto do.
LOCATION: a localização da instância do Google SecOps (geralmente a mesma da região).
INSTANCE_ID: o ID da instância do Google SecOps.
Exemplo:
POST https://us-chronicle.googleapis.com/v1/projects/0123456789/locations/us/instances/01234567-89ab-cdef-fedc-ba9876543210:testFindingsRefinement
Corpo da solicitação:
{
"type": "DETECTION_EXCLUSION",
"query": "principal.hostname = \"altostrat.com\"",
"outcomeFilters": [
{
"outcome_variable": "ip",
"outcome_value": "127.0.01",
"outcome_filter_operator": "EQUAL",
},
{
"outcome_variable": "hostnames",
"outcome_value": "altostrat.com",
"outcome_filter_operator": "CONTAINS",
},
]
"interval": {
"start_time": {
"seconds": 1756684800, // Sep. 1 2025 00:00 UTC
},
"end_time": {
"seconds": 1759276800, // Oct. 1 2025 00:00 UTC
},
},
"detectionExclusionApplication": {
"curatedRuleSets": [
...curated rule set resource names
],
"curatedRules": [
...curated rule resource names
],
"rules": [
...rule resource names
],
}
}
Esse endpoint testa a exclusão em detecções geradas nas regras e conjuntos de regras especificados na solicitação. Ele ajuda a determinar a eficácia da exclusão na supressão de detecções que não deveriam ser geradas. O sistema usa as detecções dos últimos 30 dias como o período para testar as exclusões.
Limitações
Todas as exclusões (com ou sem filtros de resultado) precisam especificar um campo
query. Para criar uma exclusão apenas comoutcomeFilters, especifique uma expressão regularmatch-all....other fields in FindingsRefinement query: "principal.hostname = /.*/" outcomeFilters: [ your outcome filters ]A expressão regular corresponde a qualquer nome de host. Portanto, essa consulta corresponde a todas as detecções. Consequentemente, a filtragem eficaz é determinada apenas pelos filtros de resultado.
As exclusões não aceitam uma configuração de time to live (TTL). No entanto, é possível criar um TTL único calculando o prazo de validade específico e adicionando uma condição de carimbo de data/hora na definição de exclusão. Por exemplo, para definir uma exclusão para expirar no final do ano, especifique a consulta da seguinte maneira:
...other fields in FindingsRefinement query: "metadata.event_timestamp.seconds < 1767225600" // Jan 1 2026 00:00 UTC outcomeFilters: [your outcome filters]Este exemplo confirma que apenas as detecções criadas por eventos com um carimbo de data/hora anterior ao final do ano são suprimidas.
Observação: isso pode não ser exibido corretamente na janela Editar exclusões da interface do usuário porque ela só aceita campos
string.Regras compostas: as exclusões de campos UDM são avaliadas em relação a eventos brutos. Se você estiver tentando excluir valores UDM específicos de uma regra composta (que é acionada com base em outras detecções em vez de eventos brutos), aplique a exclusão às regras subjacentes fundamentais que alimentam a regra composta.
Para encontrar a regra fundamental, inspecione a definição da regra composta no console do Google SecOps (em Central de conteúdo > Detecções selecionadas) e revise a seção
events:da lógica YARA-L para identificar os nomes das regras fundamentais.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.