Fechar alertas em massa usando a API
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.
- Localize o ID da regra e os detalhes do projeto.
- Execute o script para gerar as detecções em um arquivo JSON. O nome do arquivo JSON pode ser
detections.jsonoutemp.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.
- Use
jqpara extrair os IDs de detecção (que começam comde_) da matriz JSON. - 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.pyusa uma carga útil de feedback padrão fixada no código:- Status:
CLOSED - Motivo:
REASON_MAINTENANCE - Comentário:
automated cleanup.
- Status:
- 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_FEEDBACKno arquivo Python. - Transmita parâmetros da CLI (por exemplo,
--verdict="FALSE_POSITIVE") para substituir valores específicos.
- Edite diretamente o dicionário
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.