Chiudi gli avvisi collettivamente
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 aver installato Python.
- Esempi di API: accesso al repository GitHub di
api-samples-python. - 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.
Cerca 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 i rilevamenti in un file JSON. Il nome 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 di rilevamento
Lo script per l'aggiornamento in blocco richiede un file di testo normale contenente un ID di rilevamento per riga. Nel passaggio precedente è stato creato un file JSON, che ora devi convertire in un file di testo.
- Utilizza
jqper estrarre gli ID di 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 l'elenco degli ID, ad esempio de_ad9d2771-a567....
Configura il 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 l'esito (ad esempio in
FALSE_POSITIVE) o il commento, puoi:- Modifica direttamente il dizionario
DEFAULT_FEEDBACKnel file Python. - Passa i parametri dell'interfaccia a riga di comando (ad es.
--verdict="FALSE_POSITIVE") per eseguire l'override di valori specifici.
- Modifica direttamente il dizionario
Esegui chiusura collettiva
Esegui lo script per aggiornare in blocco utilizzando il file di testo creato in precedenza (vedi Estrai gli ID rilevamento). Questo script chiama il metodo UpdateAlert per ogni ID nell'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"
Verifica la chiusura (facoltativo)
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.