Raccogli i log open source di Forseti
Versione parser: 2.0
Questo documento spiega come importare i log di Forseti Open Source in Google Security Operations utilizzando Google Cloud Storage V2.
Forseti Security è una raccolta di strumenti open source basata sulla community, progettata per migliorare la sicurezza degli ambienti Google Cloud Platform. Forseti acquisisce snapshot dell'inventario delle risorse GCP, esegue scansioni per la conformità controllo dell'accesso e fornisce visibilità sulle policy 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 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 globalmente univoco (ad es. forseti-violations-export)Tipo di località Scegli in base alle tue esigenze (Regione, a due regioni, multiregionale) Località Seleziona la località (ad es. us-central1)Classe di archiviazione Standard (consigliato per i log ad accesso frequente) Controllo degli accessi Uniforme (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 di notifica nel file forseti_conf_server.yaml per esportare le violazioni dello scanner in GCS.
- Connettiti alla VM del 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 con violazioni che vuoi esportare, configura l'agente di notifica
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 di 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
Recupera il account di servizio Google SecOps
Configura un feed in Google SecOps
- Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > Feed.
- Fai clic su Aggiungi nuovo feed e seleziona Configura un singolo feed.
- Nome del 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 bucket di archiviazione:
gs://forseti-violations-export/violations/ - Opzione di eliminazione dell'origine: seleziona l'opzione che preferisci (ad es. Mai per i test).
- URL 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'indirizzo 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 |
Impostalo su FORSETI SECURITY. |
| N/D | metadata.vendor_name |
Impostalo su FORSETI. |
data.resource_data.direction |
network.direction |
Imposta su INBOUND se la direzione è INGRESS. |
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 a 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.