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 detalles de reglas seleccionadas: Recupera metadatos de solo lectura, etiquetas aplicadas y lógica de texto sin procesar para las reglas creadas por Google.
Modifica la configuración de reglas por lotes: Actualiza de forma síncrona los estados activos, los estados de alerta, los estados de archivo y las asignaciones de etiquetas en varias reglas.
Cómo buscar reglas con la opción 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 sobre la 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 seleccionados en la vista de
CONFIG_ONLYTamaño de página más grande de 5,000 resultados en la vista
CONFIG_ONLYSólidas capacidades de búsqueda estructurada
Ordena los resultados de la búsqueda en los campos de recursos de la regla con order_by en la solicitud de 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 para las reglas seleccionadas.
Las respuestas de rule.listRules se pueden filtrar para mostrar solo 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 una 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 reglas seleccionadas:
Actualiza el estado de la regla en vivo
Actualiza el estado de las alertas
Actualiza 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. Los errores 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 del error. Las actualizaciones exitosas 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 de 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 las reglas seleccionadas
Cuando modifiques los estados de alerta o en vivo de las reglas seleccionadas, ten en cuenta lo siguiente:
Control independiente: Puedes administrar el estado de una regla de forma independiente de la política de su conjunto de reglas principal. Si el estado de una regla difiere de la política principal, tu parámetro de configuración personalizado persistirá hasta que la política principal 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 principal.
Lineamientos para actualizar etiquetas
Puedes asociar etiquetas a tus reglas con los siguientes métodos:
Incluye códigos T de MITRE (táctica o técnica) en los campos de metadatos
tactic,techniqueomitre_ttpen el texto de la regla.Especifica los nombres completos de los recursos de etiquetas en el campo de metadatos
tagsdel texto de la regla.Especifica los nombres completos de los recursos de etiquetas con solicitudes a la API de
ModifyRule.
La API de ModifyRules admite etiquetas de tactic y technique de MITRE. Las etiquetas proporcionadas en una actualización de la API reemplazan 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 de espacio de nombres google.mitre.tactic.
Ejemplo de un nombre de recurso completo para la etiqueta de la 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.