Cierra alertas de forma masiva con la API
En este documento, se describe cómo cerrar de forma programática una gran cantidad de alertas con la API de REST de Google Security Operations. Google recomienda usar este método en situaciones en las que cerrar las alertas en la plataforma llevaría demasiado tiempo.
Requisitos previos
Antes de comenzar, asegúrate de tener lo siguiente:
- Entorno de Python: Necesitarás tener instalado Python para ejecutar las secuencias de comandos de muestra.
- Muestras de la API: Acceso al repositorio de GitHub de
api-samples-python - Credenciales: Un archivo de credenciales válido (por ejemplo,
.chronicle_credentials.json). - jq: Es un procesador JSON de línea de comandos que se usa para analizar el resultado de la API.
Cómo buscar detecciones
Primero, debes identificar las alertas (detecciones de alertas) que deseas cerrar. Usas la secuencia de comandos list_detections.py para encontrar detecciones asociadas con un ID de regla específico.
- Ubica el ID de la regla y los detalles del proyecto.
- Ejecuta la secuencia de comandos para generar las detecciones en un archivo JSON. El nombre del archivo JSON puede ser
detections.jsonotemp.json.
Comando:
python -m detect.v1alpha.list_detections \
--project_id=$PROJECT_ID \
--project_instance=$PROJECT_INSTANCE \
--credentials_file=$CREDENTIALS_FILE \
--rule_id=$RULE_ID \
> ip_in_abuseipdb_out.json
Cómo extraer IDs de detección
La secuencia de comandos de actualización masiva requiere un archivo de texto sin formato que contenga un ID de detección por línea. En el paso anterior, se creó un archivo JSON que ahora debes convertir en un archivo de texto.
- Usa
jqpara extraer los IDs de detección (que comienzan conde_) del array JSON. - Guarda el resultado en un archivo de texto.
Comando:
cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
> ip_in_abuseipdb_out.txt
Esto crea un archivo con los IDs, por ejemplo, de_ad9d2771-a567....
Configurar comentarios (acción "close")
Cuando cierras una alerta, el estado de "comentarios" se establece en CLOSED.
- Comportamiento predeterminado: La secuencia de comandos
bulk_update_alerts.pyusa una carga útil de comentarios predeterminada codificada de forma rígida:- Estado:
CLOSED - Motivo:
REASON_MAINTENANCE - Comentario:
automated cleanup.
- Estado:
- Personalización: Si necesitas cambiar el veredicto (por ejemplo, a
FALSE_POSITIVE) o el comentario, puedes hacer lo siguiente:- Edita directamente el diccionario
DEFAULT_FEEDBACKen el archivo de Python. - Pasa parámetros de la CLI (p.ej.,
--verdict="FALSE_POSITIVE") para anular valores específicos.
- Edita directamente el diccionario
Ejecutar cierre masivo
Ejecuta la secuencia de comandos de actualización masiva con el archivo de texto que creaste antes (consulta Cómo extraer IDs de detección). Esta secuencia de comandos llama al método UpdateAlert para cada ID de tu lista.
Comando:
python -m detect.v1alpha.bulk_update_alerts \
--project_id=$PROJECT_ID \
--project_instance=$PROJECT_INSTANCE \
--credentials_file=$CREDENTIALS_FILE \
--alert_ids_file="$(pwd)/ip_in_abuseipdb_out.txt"
Verifica el cierre (opcional)
Para verificar que las alertas se cerraron correctamente, puedes consultar los detalles de una sola alerta con el módulo get_alert.py.
Comando:
python -m detect.v1alpha.get_alert \
--project_id=$PROJECT_ID \
--project_instance=$PROJECT_INSTANCE \
--credentials_file=$CREDENTIALS_FILE \
--alert_id=$ALERT_ID
Resultado esperado: El resultado JSON contiene un objeto feedbackSummary que muestra "status": "CLOSED" y el comentario que especificaste (por ejemplo, "Limpieza automatizada").
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.