Forseti Open Source-Logs erfassen
Parserversion:2.0
In diesem Dokument wird beschrieben, wie Sie Forseti Open Source-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.
Forseti Security ist eine von der Community entwickelte Sammlung von Open-Source-Tools, die die Sicherheit von Google Cloud Platform-Umgebungen verbessern sollen. Forseti erstellt Inventarsnapshots von Google Cloud-Ressourcen, scannt nach Compliance bei der Zugriffssteuerung und bietet Einblick in Cloud IAM-Richtlinien.
Hinweis
Folgende Voraussetzungen müssen erfüllt sein:
- Eine Google SecOps-Instanz.
- Ein GCP-Projekt mit aktivierter Cloud Storage API.
- Berechtigungen zum Erstellen und Verwalten von GCS-Buckets und IAM-Richtlinien.
- Eine vorhandene Forseti Security-Bereitstellung.
- Zugriff auf die Forseti-Serverkonfigurationsdatei (
forseti_conf_server.yaml).
Google Cloud Storage-Bucket erstellen
Google Cloud Console verwenden
- Gehen Sie zur Google Cloud Console.
- Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
- Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
- Klicken Sie auf Bucket erstellen.
Geben Sie die folgenden Konfigurationsdetails an:
Einstellung Wert Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. forseti-violations-export.Standorttyp Wählen Sie die Option aus, die am besten zu Ihren Anforderungen passt (Region, Dual-Region, Multi-Region). Standort Wählen Sie den Speicherort aus, z. B. us-central1.Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird) Zugriffskontrolle Einheitlich (empfohlen) Schutztools Optional: Objektversionierung oder Aufbewahrungsrichtlinie aktivieren Klicken Sie auf Erstellen.
gcloud-Befehlszeilentool verwenden
Alternativ können Sie einen Bucket mit dem Befehl
gclouderstellen:gcloud storage buckets create gs://forseti-violations-export \ --location=us-central1 \ --default-storage-class=STANDARDErsetzen Sie
forseti-violations-exportdurch den global eindeutigen Bucket-Namen, den Sie benötigen.Ersetzen Sie
us-central1durch die gewünschte Region.
Forseti Security so konfigurieren, dass Verstöße in GCS exportiert werden
Forseti Security verwendet eine Notifier-Konfiguration in der Datei forseti_conf_server.yaml, um Scanner-Verstöße in GCS zu exportieren.
- Stellen Sie eine Verbindung zu Ihrer Forseti-Server-VM über SSH her:
bash gcloud compute ssh forseti-server-vm --project=YOUR_PROJECT_ID --zone=YOUR_ZONE - Öffnen Sie die Konfigurationsdatei zur Bearbeitung:
bash sudo nano /home/ubuntu/forseti-security/configs/forseti_conf_server.yamlWenn Sie eine GCS-basierte Konfiguration verwenden, laden Sie sie zuerst herunter:bash gsutil cp gs://YOUR_FORSETI_SERVER_BUCKET/configs/forseti_conf_server.yaml ~/forseti_conf_server.yaml - Rufen Sie den Bereich
notifierauf und suchen Sie nach dem Unterbereichresources. Konfigurieren Sie für jeden Ressourcentyp für Verstöße, den Sie exportieren möchten, den
gcs_violations-Benachrichtiger: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/Wichtige Parameter:
resource: Der Verstoßtyp, z.B.iam_policy_violations.data_format: Legen Siecsvoderjsonfest.gcs_path: Der Cloud Storage-Pfad (muss einen abschließenden Schrägstrich enthalten).
Speichern Sie die Datei und laden Sie sie bei Bedarf wieder in GCS hoch.
Konfiguration neu laden:
bash forseti server configuration reloadBestätigen Sie:
bash forseti server configuration get | grep gcs_violations
Google SecOps-Dienstkonto abrufen
Feed in Google SecOps konfigurieren
- Rufen Sie die SIEM-Einstellungen > Feeds auf.
- Klicken Sie auf Neuen Feed hinzufügen und wählen Sie Einzelnen Feed konfigurieren aus.
- Feedname: Geben Sie einen Namen ein (z.B.
Forseti Violations). - Quelltyp: Wählen Sie Google Cloud Storage V2 aus.
- Logtyp: Wählen Sie Forseti Open Source aus.
- Klicken Sie auf Dienstkonto abrufen.
- Kopieren Sie die eindeutige E‑Mail-Adresse des Dienstkontos (z.B.
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com). - Klicken Sie auf Weiter.
- Geben Sie Eingabeparameter an:
- Storage-Bucket-URL:
gs://forseti-violations-export/violations/ - Option zum Löschen der Quelle: Wählen Sie die Option aus, die Ihren Anforderungen entspricht (z.B. Nie für Tests).
- Storage-Bucket-URL:
- Klicken Sie auf Weiter, prüfen Sie die Konfiguration und klicken Sie auf Senden.
Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren
Google Cloud Console verwenden
- Rufen Sie Cloud Storage > Buckets auf.
- Klicken Sie auf den Namen Ihres Buckets und rufen Sie den Tab Berechtigungen auf.
- Klicken Sie auf Zugriff erlauben.
- Hauptkonten hinzufügen: Fügen Sie die E‑Mail-Adresse des Google SecOps-Dienstkontos ein.
- Rollen zuweisen: Wählen Sie Storage Object Viewer aus. Verwenden Sie Storage Object Admin, wenn Sie im Feed eine Löschoption ausgewählt haben.
- Klicken Sie auf Speichern.
gcloud-Befehlszeilentool verwenden
gcloud storage buckets add-iam-policy-binding gs://forseti-violations-export \ --member="serviceAccount:CHRONICLE_SERVICE_ACCOUNT_EMAIL" \ --role="roles/storage.objectViewer"
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
data.resource_data.instanceGroupUrls |
about |
Zusammengeführt aus dem Array „instanceGroupUrls“. |
data.resource_data.nodePools.*.statusMessage |
metadata.description |
Wert aus „nodePool.statusMessage“. |
data.resource_type |
metadata.event_type |
Spezifische Typen für KMS/FW; andernfalls GENERIC_EVENT. |
data.scanner_index_id |
metadata.product_log_id |
Wert direkt als String kopiert. |
| – | metadata.product_name |
Auf FORSETI SECURITY festlegen. |
| – | metadata.vendor_name |
Auf FORSETI festlegen. |
data.resource_data.direction |
network.direction |
Auf INBOUND gesetzt, wenn die Richtung INGRESS ist. |
data.resource_data.endpoint |
principal.ip |
Der Wert wurde direkt kopiert. |
data.full_name, serviceAccount |
principal.user.userid |
Aus full_name oder serviceAccount extrahiert. |
data.violation_type |
security_result.category |
Wird POLICY_VIOLATION oder ACL_VIOLATION zugeordnet. |
data.rule_name |
security_result.rule_name |
Der Wert wurde direkt kopiert. |
data.full_name |
target.asset.attribute.cloud.project.id |
Mit Grok aus full_name extrahiert. |
data.resource_type |
target.resource.resource_type |
Entspricht einem bestimmten Typ basierend auf resource_type. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten