Chiudere gli avvisi collettivamente utilizzando l'API

Supportato in:

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-python repository 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.

  1. Individua l'ID regola e i dettagli del progetto.
  2. Esegui lo script per generare l'output dei rilevamenti in un file JSON. Il nome del file JSON può essere detections.json o 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

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.

  1. Utilizza jq per estrarre gli ID rilevamento (che iniziano con de_) dall'array JSON.
  2. 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.py utilizza un payload di feedback predefinito hardcoded:
    • Stato: CLOSED
    • Motivo: REASON_MAINTENANCE
    • Commento: automated cleanup.
  • Personalizzazione:se devi modificare il verdetto (ad esempio in FALSE_POSITIVE) o il commento, puoi:
    • Modifica direttamente il dizionario DEFAULT_FEEDBACK nel file Python.
    • Trasmetti i parametri della CLI (ad es. --verdict="FALSE_POSITIVE") per sostituire valori specifici.

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.