Raccogliere i log di Forseti Open Source
Versione parser: 2.0
Questo documento spiega come importare i log open source di Forseti in Google Security Operations utilizzando Google Cloud Storage V2.
Forseti Security è una raccolta di strumenti open source basati sulla community progettati per migliorare la sicurezza degli ambienti Google Cloud Platform. Forseti acquisisce snapshot dell'inventario delle risorse Google Cloud, esegue la scansione per verificare la conformità del controllo dell'accesso e fornisce visibilità sui criteri Cloud IAM.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps.
- Un progetto GCP con l'API Storage di Cloud Storage abilitata.
- Autorizzazioni per creare e gestire bucket GCS e policy IAM.
- Un deployment di Forseti Security esistente.
- Accesso al file di configurazione del server Forseti (
forseti_conf_server.yaml).
Crea un bucket Google Cloud Storage
Utilizzo della console Google Cloud
- Vai alla console Google Cloud.
- Seleziona il tuo progetto o creane uno nuovo.
- Nel menu di navigazione, vai a Cloud Storage > Bucket.
- Fai clic su Crea bucket.
Fornisci i seguenti dettagli di configurazione:
Impostazione Valore Assegna un nome al bucket Inserisci un nome univoco globale (ad es. forseti-violations-export).Tipo di località Scegli in base alle tue esigenze (regione singola, a due regioni, multiregionale) Località Seleziona la posizione (ad es. us-central1).Classe di archiviazione Standard (consigliato per i log ad accesso frequente) Controllo degli accessi Uniforme (opzione consigliata) Strumenti di protezione (Facoltativo) Abilita il controllo delle versioni degli oggetti o la policy di conservazione Fai clic su Crea.
Utilizzo dello strumento a riga di comando gcloud
In alternativa, crea un bucket utilizzando il comando
gcloud:gcloud storage buckets create gs://forseti-violations-export \ --location=us-central1 \ --default-storage-class=STANDARDSostituisci
forseti-violations-exportcon il nome del bucket univoco globale richiesto.Sostituisci
us-central1con la regione che preferisci.
Configura Forseti Security per esportare le violazioni in GCS
Forseti Security utilizza una configurazione del sistema di notifica nel file forseti_conf_server.yaml per esportare le violazioni dello scanner in GCS.
- Connettiti alla VM server Forseti utilizzando SSH:
bash gcloud compute ssh forseti-server-vm --project=YOUR_PROJECT_ID --zone=YOUR_ZONE - Apri il file di configurazione per la modifica:
bash sudo nano /home/ubuntu/forseti-security/configs/forseti_conf_server.yamlSe utilizzi la configurazione basata su GCS, scaricala prima:bash gsutil cp gs://YOUR_FORSETI_SERVER_BUCKET/configs/forseti_conf_server.yaml ~/forseti_conf_server.yaml - Vai alla sezione
notifiere individua la sottosezioneresources. Per ogni tipo di risorsa di violazione che vuoi esportare, configura il notificatore
gcs_violations:notifier: resources: - resource: iam_policy_violations should_notify: true notifiers: - name: gcs_violations configuration: data_format: csv gcs_path: gs://forseti-violations-export/violations/ - resource: firewall_rule_violations should_notify: true notifiers: - name: gcs_violations configuration: data_format: csv gcs_path: gs://forseti-violations-export/violations/ - resource: cloudsql_acl_violations should_notify: true notifiers: - name: gcs_violations configuration: data_format: csv gcs_path: gs://forseti-violations-export/violations/ - resource: bucket_acl_violations should_notify: true notifiers: - name: gcs_violations configuration: data_format: csv gcs_path: gs://forseti-violations-export/violations/ - resource: config_validator_violations should_notify: true notifiers: - name: gcs_violations configuration: data_format: csv gcs_path: gs://forseti-violations-export/violations/Parametri chiave:
resource: Il tipo di violazione (ad es.iam_policy_violations).data_format: impostato sucsvojson.gcs_path: il percorso Cloud Storage (deve includere una barra finale).
Salva il file e, se necessario, caricalo di nuovo su GCS.
Ricarica la configurazione:
bash forseti server configuration reloadVerifica:
bash forseti server configuration get | grep gcs_violations
Recuperare il account di servizio Google SecOps
Configura un feed in Google SecOps
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed e seleziona Configura un singolo feed.
- Nome feed: inserisci un nome (ad es.
Forseti Violations). - Tipo di origine: seleziona Google Cloud Storage V2.
- Tipo di log: seleziona Forseti Open Source.
- Fai clic su Ottieni service account.
- Copia l'indirizzo email univoco del account di servizio (ad es.
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com). - Fai clic su Avanti.
- Specifica i parametri di input:
- URL del bucket di archiviazione:
gs://forseti-violations-export/violations/ - Opzione di eliminazione delle fonti: seleziona l'opzione che preferisci (ad es. Mai per i test).
- URL del bucket di archiviazione:
- Fai clic su Avanti, esamina la configurazione e fai clic su Invia.
Concedi le autorizzazioni IAM al account di servizio Google SecOps
Utilizzo della console Google Cloud
- Vai a Cloud Storage > Bucket.
- Fai clic sul nome del bucket e vai alla scheda Autorizzazioni.
- Fai clic su Concedi l'accesso.
- Aggiungi entità: incolla l'email del account di servizio Google SecOps.
- Assegna ruoli: seleziona Visualizzatore oggetti Storage. Utilizza Storage Object Admin se hai selezionato un'opzione di eliminazione nel feed.
- Fai clic su Salva.
Utilizzo dello strumento a riga di comando gcloud
gcloud storage buckets add-iam-policy-binding gs://forseti-violations-export \ --member="serviceAccount:CHRONICLE_SERVICE_ACCOUNT_EMAIL" \ --role="roles/storage.objectViewer"
Tabella di mappatura UDM
| Campo log | Mappatura UDM | Logica |
|---|---|---|
data.resource_data.instanceGroupUrls |
about |
Unito dall'array di instanceGroupUrls. |
data.resource_data.nodePools.*.statusMessage |
metadata.description |
Valore ottenuto da nodePool.statusMessage. |
data.resource_type |
metadata.event_type |
Tipi specifici per KMS/FW; altrimenti GENERIC_EVENT. |
data.scanner_index_id |
metadata.product_log_id |
Valore copiato direttamente come stringa. |
| N/D | metadata.product_name |
Imposta FORSETI SECURITY. |
| N/D | metadata.vendor_name |
Imposta su FORSETI. |
data.resource_data.direction |
network.direction |
Imposta IN ENTRATA se la direzione è INGRESSO. |
data.resource_data.endpoint |
principal.ip |
Valore copiato direttamente. |
data.full_name, serviceAccount |
principal.user.userid |
Estratto da full_name o serviceAccount. |
data.violation_type |
security_result.category |
Mappato su POLICY_VIOLATION o ACL_VIOLATION. |
data.rule_name |
security_result.rule_name |
Valore copiato direttamente. |
data.full_name |
target.asset.attribute.cloud.project.id |
Estratto da full_name utilizzando grok. |
data.resource_type |
target.resource.resource_type |
Mappato a un tipo specifico in base a resource_type. |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.