Chiudere gli avvisi collettivamente utilizzando l'API
Questo documento descrive come chiudere in modo programmatico un numero elevato di avvisi utilizzando l'API REST di Google Security Operations. Google consiglia di utilizzare questo metodo per le situazioni in cui la chiusura degli avvisi nella piattaforma richiederebbe troppo tempo.
Prerequisiti
Prima di iniziare, assicurati di avere quanto segue:
- Ambiente Python:per eseguire gli script di esempio, devi installare Python.
- Esempi di API:accesso al
api-samples-pythonrepository GitHub. - Credenziali:un file di credenziali valido (ad esempio
.chronicle_credentials.json). - jq: un processore JSON a riga di comando utilizzato per analizzare l'output dell'API.
Cercare rilevamenti
Innanzitutto, devi identificare gli avvisi (rilevamenti di avvisi) che vuoi chiudere. Utilizza lo script list_detections.py per trovare i rilevamenti associati a un ID regola specifico.
- Individua l'ID regola e i dettagli del progetto.
- Esegui lo script per generare l'output dei rilevamenti in un file JSON. Il nome del file JSON può essere
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
Estrai ID rilevamento
Lo script di aggiornamento collettivo richiede un file di testo normale contenente un ID rilevamento per riga. Il passaggio precedente ha creato un file JSON, che ora devi convertire in un file di testo.
- Utilizza
jqper estrarre gli ID rilevamento (che iniziano conde_) dall'array JSON. - Salva l'output in un file di testo.
Comando:
cat ip_in_abuseipdb_out.json | jq -r '.detections[].id' \
> ip_in_abuseipdb_out.txt
Viene creato un file con un elenco di ID, ad esempio de_ad9d2771-a567....
Configura feedback (azione "Chiudi")
Quando chiudi un avviso, lo stato "feedback" viene impostato su CLOSED.
- Comportamento predefinito: lo script
bulk_update_alerts.pyutilizza un payload di feedback predefinito hardcoded:- Stato:
CLOSED - Motivo:
REASON_MAINTENANCE - Commento:
automated cleanup.
- Stato:
- Personalizzazione:se devi modificare il verdetto (ad esempio in
FALSE_POSITIVE) o il commento, puoi:- Modifica direttamente il dizionario
DEFAULT_FEEDBACKnel file Python. - Trasmetti i parametri della CLI (ad es.
--verdict="FALSE_POSITIVE") per sostituire valori specifici.
- Modifica direttamente il dizionario
Esegui chiusura collettiva
Esegui lo script di aggiornamento collettivo utilizzando il file di testo creato in precedenza (vedi Estrai ID rilevamento). Questo script chiama il metodo UpdateAlert per ogni ID dell'elenco.
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"
(Facoltativo) Verifica chiusura
Per verificare che gli avvisi siano stati chiusi correttamente, puoi controllare i dettagli di un singolo avviso utilizzando il modulo 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
Risultato previsto: l'output JSON contiene un oggetto feedbackSummary che mostra "status": "CLOSED" e il commento specificato (ad esempio "pulizia automatica").
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.