Chiudi gli avvisi collettivamente

Supportata 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 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.

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

  1. Utilizza jq per estrarre gli ID di 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 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.py utilizza un payload di feedback predefinito hardcoded:
    • Stato: CLOSED
    • Motivo: REASON_MAINTENANCE
    • Commento: automated cleanup.
  • Personalizzazione: se devi modificare l'esito (ad esempio in FALSE_POSITIVE) o il commento, puoi:
    • Modifica direttamente il dizionario DEFAULT_FEEDBACK nel file Python.
    • Passa i parametri dell'interfaccia a riga di comando (ad es. --verdict="FALSE_POSITIVE") per eseguire l'override di valori specifici.

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.