Fechar alertas em massa usando a API

Compatível com:

Este documento descreve como fechar um grande número de alertas de forma programática usando a API REST do Google Security Operations. O Google recomenda usar esse método em situações em que fechar alertas na plataforma seria muito demorado.

Pré-requisitos

Antes de começar, confira se você tem o seguinte:

  • Ambiente Python:é necessário ter o Python instalado para executar os scripts de exemplo.
  • Exemplos de API:acesso ao repositório do GitHub api-samples-python.
  • Credenciais:um arquivo de credenciais válido (por exemplo, .chronicle_credentials.json).
  • jq:um processador JSON de linha de comando usado para analisar a saída da API.

Pesquisar detecções

Primeiro, identifique os alertas (detecções de alerta) que você quer fechar. Você usa o script list_detections.py para encontrar detecções associadas a um ID de regra específico.

  1. Localize o ID da regra e os detalhes do projeto.
  2. Execute o script para gerar as detecções em um arquivo JSON. O nome do arquivo JSON pode ser detections.json ou temp.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

Extrair IDs de detecção

O script de atualização em massa exige um arquivo de texto simples com um ID de detecção por linha. A etapa anterior criou um arquivo JSON, que agora precisa ser convertido em um arquivo de texto.

  1. Use jq para extrair os IDs de detecção (que começam com de_) da matriz JSON.
  2. Salve a saída em um arquivo de texto.

Comando:

cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
  > ip_in_abuseipdb_out.txt

Isso cria um arquivo com IDs, por exemplo, de_ad9d2771-a567....

Configurar feedback (ação "close")

Quando você fecha um alerta, o status "feedback" é definido como CLOSED.

  • Comportamento padrão:o script bulk_update_alerts.py usa uma carga útil de feedback padrão fixada no código:
    • Status: CLOSED
    • Motivo: REASON_MAINTENANCE
    • Comentário:automated cleanup.
  • Personalização:se você precisar mudar o veredito (por exemplo, para FALSE_POSITIVE) ou o comentário, faça o seguinte:
    • Edite diretamente o dicionário DEFAULT_FEEDBACK no arquivo Python.
    • Transmita parâmetros da CLI (por exemplo, --verdict="FALSE_POSITIVE") para substituir valores específicos.

Executar fechamento em massa

Execute o script de atualização em massa usando o arquivo de texto criado antes (consulte Extrair IDs de detecção). Esse script chama o método UpdateAlert para cada ID na sua 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"

Verificar o encerramento (opcional)

Para verificar se os alertas foram fechados, confira os detalhes de um único alerta usando o 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:a saída JSON contém um objeto feedbackSummary que mostra "status": "CLOSED" e o comentário especificado (por exemplo, "limpeza automatizada").

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.