Administra reglas unificadas con la API de Rules
La API de Rules proporciona extremos programáticos para administrar reglas personalizadas y seleccionadas. En este documento, se describe cómo usar la API de Rules para administrar reglas personalizadas y seleccionadas de forma programática.
Usa la API de Rules para realizar las siguientes tareas:
Buscar y enumerar reglas: Ejecuta búsquedas estructuradas, ordena los resultados y recupera recursos de reglas expandidos.
Ver los detalles de las reglas seleccionadas: Recupera metadatos de solo lectura, etiquetas aplicadas y lógica de texto sin formato para las reglas creadas por Google.
Modificar la configuración de reglas por lotes: Actualiza de forma síncrona los estados activos, los estados de alertas, los estados de archivo y las asignaciones de etiquetas en varias reglas.
Busca reglas con list rules
El método rules.list admite recursos de reglas expandidos y búsquedas estructuradas.
Para consultar estos recursos detallados, usa una de las siguientes vistas:
CONFIG_ONLYTRENDS
Ambas vistas proporcionan información expandida, que incluye lo siguiente:
Información de implementación de reglas (habilitación de reglas activas, habilitación de alertas, estado archivado, estado de ejecución)
Etiquetas de reglas asociadas
Acceso a recursos de reglas seleccionadas en la vista
CONFIG_ONLYTamaño de página más grande de 5,000 resultados en la vista
CONFIG_ONLYFunciones de búsqueda estructurada sólidas
Ordena los resultados de la búsqueda en los campos de recursos de reglas con order_by en la solicitud rules.list. Se admiten los siguientes campos de reglas:
alerting_enabledarchivedauthorcreate_timedisplay_nameexecution_statelive_mode_enabledrevision_create_timerule_idrule_ownerseveritytypeupdate_time
Solicitud de ejemplo:
HTTP
GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules?filter=archived%3Dfalse&pageSize=100&pageToken=&view=TRENDS
Respuesta de ejemplo:
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"
}
]
}
Consulta los detalles de las reglas seleccionadas con getRule y listRules
rules.getRule y rule.listRules admiten la recuperación de detalles de las reglas seleccionadas.
Las respuestas rule.listRules se pueden filtrar para que solo se muestren las reglas seleccionadas con el filtro
rule_owner: "GOOGLE". Puedes encontrar más detalles sobre el uso del filtro rule_owner en la sección de sintaxis de búsqueda de reglas.
Ejemplo de solicitud listRules para leer una regla seleccionada:
HTTP
GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules?filter=rule_owner%3A%22GOOGLE%22pageSize=1&view=TRENDS
Respuesta de ejemplo:
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"
}
]
}
El método rule.getRule admite la recuperación de una regla seleccionada con su nombre de recurso.
Ejemplo de solicitud getRule para recuperar reglas seleccionadas:
HTTP
GET https://chronicle.googleapis.com/v1alpha/projects/<ID>/locations/us/instances/<ID>/rules/ur_e34bf150-6cfb-494c-ad9d-ec8f7216a03c?view=BASIC
Respuesta de ejemplo:
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"
}
]
}
Modifica la configuración de reglas por lotes con modifyRules
El método rules.modifyRules admite la siguiente actualización por lotes en reglas personalizadas y seleccionadas:
Actualizar el estado de las reglas activas
Actualizar el estado de las alertas
Actualizar las etiquetas aplicadas
Actualizar el estado del archivo (solo para reglas personalizadas)
Las actualizaciones por lotes se ejecutan de forma síncrona e independiente. El proceso no es atómico y continúa a pesar de las fallas individuales. Las fallas parciales se detallan en el campo failed_requests, un mapa en el que la clave representa el índice de la solicitud fallida y el valor proporciona el motivo de la falla. Las actualizaciones correctas se documentan en el campo rule_updates, en el que el resultado de cada solicitud se coloca en su índice correspondiente del lote original.
Ejemplo de solicitud 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
}
}
]
}
Respuesta de ejemplo:
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 },
{}
]
}
Lineamientos para actualizar reglas seleccionadas
Cuando modificas los estados activos o de alertas de las reglas seleccionadas, ten en cuenta lo siguiente:
Control independiente: Puedes administrar el estado de una regla de forma independiente de su política de conjunto de reglas superior. Si el estado de una regla difiere de la política superior, tu configuración personalizada persistirá hasta que la política superior reciba su próxima actualización.
Requisito de derechos: Solo puedes actualizar estos estados si tu instancia tiene derechos activos para el paquete de reglas superior.
Lineamientos para actualizar etiquetas
Puedes asociar etiquetas con tus reglas con los siguientes métodos:
Incluye códigos T de MITRE (táctica o técnica) en los metacampos
tactic,techniqueomitre_ttpen el texto de la regla.Especifica los nombres de recursos de etiquetas completos en el metacampo
tagsdel texto de la regla.Especifica los nombres de recursos de etiquetas completos con las solicitudes a la API de
ModifyRule.
La API de ModifyRules admite etiquetas tactic y technique de MITRE. Cualquier etiqueta proporcionada en una actualización de la API reemplaza las etiquetas existentes, excepto las que se infieren directamente del texto de la regla.
Las etiquetas tactic de MITRE administradas por Google usan el prefijo del espacio de nombres google.mitre.tactic.
Ejemplo de un nombre de recurso completo para la etiqueta de táctica TA0001:
projects/11344677023/locations/eu/instances/e902a911-16e3-4c39-978d-e25234232492/google.mitre.tactic.TA0001
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.