Gerenciar regras unificadas com a API Rules
A API Rules oferece endpoints programáticos para gerenciar regras personalizadas e selecionadas. Este documento descreve como usar a API Rules para gerenciar regras personalizadas e selecionadas de forma programática.
Use a API Rules para realizar as seguintes tarefas:
Pesquisar e listar regras:execute pesquisas estruturadas, classifique os resultados e recupere recursos de regras expandidos.
Conferir detalhes de regras selecionadas:busque metadados somente leitura, tags aplicadas e lógica de texto bruto para regras criadas pelo Google.
Modificar configurações de regras em lote:atualize de forma síncrona estados ativos, estados de alerta, status de arquivo e atribuições de tags em várias regras.
Pesquisar regras usando a lista de regras
O método rules.list oferece suporte a recursos de regras expandidos e pesquisa estruturada.
Para consultar esses recursos detalhados, use uma das seguintes visualizações:
CONFIG_ONLYTRENDS
As duas visualizações fornecem informações expandidas, que incluem o seguinte:
Informações de implantação de regras (ativação de regras ativas, ativação de alertas, estado arquivado, estado de execução)
Tags de regras associadas
Acesso a recursos de regras selecionadas na visualização
CONFIG_ONLYTamanho de página maior de 5.000 resultados na visualização
CONFIG_ONLYRecursos de pesquisa estruturada robustos.
Classifique os resultados da pesquisa nos campos de recursos de regras usando order_by na solicitação rules.list. Os seguintes campos de regras são compatíveis:
alerting_enabledarchivedauthorcreate_timedisplay_nameexecution_statelive_mode_enabledrevision_create_timerule_idrule_ownerseveritytypeupdate_time
Exemplo de solicitação:
HTTP
GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules?filter=archived%3Dfalse&pageSize=100&pageToken=&view=TRENDS
Exemplo de resposta:
JSON
{
"rules": [
{
"name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_fd3fe28c-2d7b-4f7e-9fca-4fdd6029d228",
"revisionId": "v_1719339990_701951000",
"displayName": "SomaMaglevProberRule",
"author": "test@google.com",
"metadata": {
"description": "enabled live rule used for maglev rules latency prober"
},
"createTime": "2024-06-25T18:26:30.701951Z",
"revisionCreateTime": "2024-06-25T18:26:30.701951Z",
"type": "SINGLE_EVENT",
"etag": "CNaX7LMGEJjY284C",
"nearRealTimeLiveRuleEligible": true,
"ruleOwner": "CUSTOMER",
"alertingEnabled": true,
"liveModeEnabled": true,
"runFrequency": "LIVE",
"currentDayDetectionCount": 10000,
"executionState": "DEFAULT"
},
{
"name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_fbf56bf1-ea5f-4b5b-bbe9-e91e13f3b3b3",
"revisionId": "v_1696452642_197471000",
"displayName": "LoadTestingRule",
"author": "loadtesting@google.com",
"createTime": "2023-10-04T20:50:42.197471Z",
"revisionCreateTime": "2023-10-04T20:50:42.197471Z",
"type": "SINGLE_EVENT",
"etag": "CKKg96gGEJjWlF4=",
"nearRealTimeLiveRuleEligible": true,
"ruleOwner": "CUSTOMER",
"alertingEnabled": true,
"liveModeEnabled": true,
"runFrequency": "LIVE",
"executionState": "DEFAULT"
}
]
}
Conferir detalhes de regras selecionadas usando getRule e listRules
Os métodos rules.getRule e rule.listRules oferecem suporte à busca de detalhes para regras selecionadas.
As respostas rule.listRules podem ser filtradas para incluir apenas regras selecionadas usando o filtro
rule_owner: "GOOGLE". Mais detalhes sobre o uso do filtro rule_owner podem ser encontrados na seção de sintaxe de pesquisa de regras.
Exemplo de solicitação listRules para ler uma regra selecionada:
HTTP
GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules?filter=rule_owner%3A%22GOOGLE%22pageSize=1&view=TRENDS
Exemplo de resposta:
JSON
{
"rules": [
{
"name": "projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c",
"revisionId": "v_1755272664_971453000",
"displayName": "Example Curated Rule",
"severity": {
"displayName": "Info"
},
"metadata": {
"technique": "T1136.003",
"rule_name": "Example Curated Rule",
"description": "Example Curated Rule Description",
"tactic": "TA0003"
},
"createTime": "2024-10-02T18:10:43.647897Z",
"revisionCreateTime": "2025-08-15T15:44:24.971453Z",
"type": "SINGLE_EVENT",
"etag": "CNir/cQGEMjknM8D",
"nearRealTimeLiveRuleEligible": true,
"ruleOwner": "GOOGLE",
"tags": [
"google.mitre.tactic.ta0003",
"google.mitre.technique.t1136.003"
],
"executionState": "DEFAULT"
}
]
}
O método rule.getRule oferece suporte à busca de uma regra selecionada usando o nome do recurso.
Exemplo de solicitação getRule para buscar regras selecionadas:
HTTP
GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c?view=BASIC
Exemplo de resposta:
JSON
{
"rules": [
{
"name": "projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c",
"revisionId": "v_1755272664_971453000",
"displayName": "Example Curated Rule",
"severity": {
"displayName": "Info"
},
"metadata": {
"technique": "T1136.003",
"rule_name": "Example Curated Rule",
"description": "Example curated rule description",
"tactic": "TA0003"
},
"createTime": "2024-10-02T18:10:43.647897Z",
"revisionCreateTime": "2025-08-15T15:44:24.971453Z",
"text": "Example curated rule text",
"type": "SINGLE_EVENT",
"etag": "CNir/cQGEMjknM8D",
"nearRealTimeLiveRuleEligible": true,
"ruleOwner": "GOOGLE",
"tags": [
"google.mitre.tactic.ta0003",
"google.mitre.technique.t1136.003"
],
"executionState": "DEFAULT"
}
]
}
Modificar a configuração de regras em lote com modifyRules
O método rules.modifyRules oferece suporte à seguinte atualização em lote de regras personalizadas e selecionadas:
Atualizar o status da regra ativa
Atualizar o status de alerta
Atualizar tags aplicadas
Atualizar o status do arquivo (somente para regras personalizadas)
As atualizações em lote são executadas de forma síncrona e independente. O processo não é atômico e continua apesar de falhas individuais. As falhas parciais são detalhadas no campo failed_requests, um mapa em que a chave representa o índice da solicitação com falha e o valor fornece o motivo da falha. As atualizações bem-sucedidas são documentadas no campo rule_updates, em que o resultado de cada solicitação é colocado no índice correspondente do lote original.
Exemplo de solicitação modifyRules:
HTTP
POST https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules:modifyRules
JSON
{
"parent": "projects/<ID>/locations/us/instances/<ID>",
"requests": [
{
"update_mask": "liveModeEnabled",
"rule": {
"name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_aaaaaaaaaaaaaaaaaaaaaaa",
"liveModeEnabled": true
}
},
{
"update_mask": "alertingEnabled",
"rule": {
"name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ur_zzzzzzzzzzzzzzzzzzzzz",
"alertingEnabled": false
}
},
{
"update_mask": "tags",
"rule": {
"name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_bbbbbbbbbbbbbbbbbbbbbbb",
"tags": [
"projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.tactic.TA0043",
"projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.technique.T1595"
]
}
},
{
"update_mask": "archived",
"rule": {
"name": "projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/rules/ru_cccccccccccccccccccccc",
"archived": true
}
}
]
}
Exemplo de resposta:
JSON
{
"failed_requests": {
"0": {
"code": 5,
"message": "rule is already enabled"
},
"3": {
"code": 5,
"message": "rule is already archived"
}
},
"rule_updates": [
{},
{ "alerting_state_updated": true },
{ "tagsUpdated": true },
{}
]
}
Diretrizes para atualizar regras selecionadas
Ao modificar os status ativos ou de alerta para regras selecionadas, considere o seguinte:
Controle independente:é possível gerenciar o status de uma regra de forma independente da política do conjunto de regras mãe. Se o status de uma regra divergir da política mãe, a configuração personalizada vai persistir até que a política mãe receba a próxima atualização.
Requisito de direito:só é possível atualizar esses status se a instância tiver direito ao pacote de regras mãe.
Diretrizes para atualizar tags
É possível associar tags às regras usando os seguintes métodos:
Inclua códigos T do MITRE (tática ou técnica) nos campos de metadados
tactic,techniqueoumitre_ttpno texto da regra.Especifique os nomes completos dos recursos de tag no campo de metadados
tagsdo texto da regra.Especifique os nomes completos dos recursos de tag usando solicitações de API
ModifyRule.
A API ModifyRules oferece suporte a tags tactic e technique do MITRE. Todas as tags fornecidas em uma atualização da API substituem as tags atuais, exceto aquelas inferidas diretamente do texto da regra.
As tags tactic do MITRE gerenciadas pelo Google usam o prefixo de namespace google.mitre.tactic.
Exemplo de nome completo do recurso para a tag de tática TA0001:
projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.tactic.TA0001
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.