IOC-Logs von Palo Alto Networks erfassen
In diesem Dokument wird beschrieben, wie Sie Palo Alto Networks-Kompromittierungsindikatoren (IOCs) mit STIX über TAXII in Google Security Operations aufnehmen. Das stix_taxii-Aufnahmeskript (eine Cloud Run-Funktion) ruft regelmäßig Indikatoren von einem Palo Alto TAXII 2.1-Server ab und sendet sie mit dem Logtyp STIX an Google SecOps.
Palo Alto Networks stellt IOCs als STIX 2.1-Feed über TAXII von Cortex XSOAR oder XSIAM Threat Intelligence Management (TIM) bereit. Der STIX-Parser in Google SecOps ordnet die gängigen Indikatortypen (IPv4-Adressen, Domains, URLs, Dateihashes und E‑Mail-Adressen) dem UDM zu.
Hinweis
Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:
- Eine Google SecOps-Instanz sowie die Google SecOps-Authentifizierungsdatei für die Datenaufnahme (die JSON-Datei des Dienstkontos) und die Kundennummer.
- Ein Google Cloud -Projekt mit aktivierter Abrechnung und Berechtigungen zum Erstellen von Dienstkonten, Secret Manager-Secrets, Cloud Run-Funktionen und Cloud Scheduler-Jobs.
Palo Alto Cortex XSOAR oder XSIAM mit einer Threat Intelligence Management (TIM)-Lizenz und privilegiertem Zugriff zum Konfigurieren von Integrationen.
Palo Alto TAXII 2.1-Feed in Cortex TIM einrichten
Bei der Integration TAXII2 Server werden Ihre Cortex XSOAR- oder XSIAM-Indikatoren als ausgehender TAXII 2.1-Feed veröffentlicht, aus dem das Erfassungsskript Daten abruft.
- Installieren Sie in Cortex XSOAR oder XSIAM das Inhaltspaket TAXII Server über Einstellungen & Informationen > Einstellungen > Integrationen > Marketplace.
- Rufen Sie die Einstellungen> Integrationen> Instanzen auf, suchen Sie nach TAXII2-Server und klicken Sie auf Instanz hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen Namen für die Instanz ein, z. B.
SecOps-TAXII. - Lang laufende Instanz: Aktivieren Sie diese Option.
- TAXII2-Serverversion: Wählen Sie 2.1 aus.
- Anmeldedaten: Legen Sie den Nutzernamen und das Passwort fest, die vom Erfassungsscript für die HTTP-Basisauthentifizierung verwendet werden.
- Name: Geben Sie einen Namen für die Instanz ein, z. B.
Fügen Sie im Feld Sammlungs-JSON Folgendes ein. Es wird eine Sammlung mit dem Namen
SecOpsIOCsveröffentlicht, die die Indikatortypen enthält, die vomSTIX-Parser unterstützt werden:{ "SecOpsIOCs": { "query": "type:IP or type:Domain or type:URL or type:File or type:Email", "description": "Indicators exported to Google SecOps" } }Klicken Sie auf Speichern und beenden und aktivieren Sie die Instanz. Prüfen Sie, ob der Instanzstatus „Wird ausgeführt“ lautet.
Führen Sie im Google SecOps-Playground oder in der Befehlsleiste der Integration die folgenden Befehle aus und speichern Sie die Ausgabe:
!taxii-server-info !taxii-server-list-collectionsSpeichern Sie die folgenden Werte aus der Befehlsausgabe für den Bereitstellungsschritt:
- Discovery-URL: Die API-Stamm-URL, die von
!taxii-server-infozurückgegeben wird (z. B.https://ext-TENANT.crtx.REGION.paloaltonetworks.com/xsoar/instance/execute/SecOps-TAXII/threatintel/). - Collection name:
SecOpsIOCs. - Nutzername und Passwort: Die Authentifizierungsdaten für die Basisauthentifizierung, die Sie festgelegt haben.
- Discovery-URL: Die API-Stamm-URL, die von
Erforderliche Google Cloud APIs aktivieren
Öffnen Sie in der Google Cloud Console Cloud Shell und führen Sie folgenden Befehl aus:
gcloud services enable \ cloudfunctions.googleapis.com \ cloudbuild.googleapis.com \ cloudscheduler.googleapis.com \ secretmanager.googleapis.com
Anmeldedaten in Secret Manager speichern
Das Script liest das JSON-Dienstkonto von Google SecOps und das TAXII-Passwort aus Secret Manager.
Erstellen Sie das Secret für das Google SecOps-Dienstkonto für die Datenaufnahme aus Ihrer Authentifizierungsdatei für die Datenaufnahme:
gcloud secrets create secops-ingestion-sa --data-file=./ingestion-auth.jsonErstellen Sie das TAXII-Passwort-Secret:
printf '%s' 'YOUR_TAXII_PASSWORD' | gcloud secrets create taxii-password --data-file=-Speichern Sie beide Ressourcennamen im Format
projects/PROJECT_ID/secrets/SECRET_NAME/versions/latest. Sie verwenden sie in.env.yml.
Dienstkonto für die Funktion erstellen
Erstellen Sie ein Laufzeitdienstkonto für die Cloud Run-Funktion:
gcloud iam service-accounts create stix-taxii-sa \ --display-name="STIX/TAXII ingestion function"Gewähren Sie ihm Zugriff auf die beiden Secrets:
gcloud secrets add-iam-policy-binding secops-ingestion-sa \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor" gcloud secrets add-iam-policy-binding taxii-password \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/secretmanager.secretAccessor"
Aufnahmeskript bereitstellen
Das stix_taxii-Aufnahmeskript ist eine Cloud Run-Funktion, die Indikatoren vom TAXII-Server abruft und sie mithilfe der Ingestion API an Google SecOps streamt. Die Daten werden immer mit dem Logtyp STIX erfasst.
Klonen Sie in Cloud Shell das Repository mit den Aufnahmeskripts:
git clone https://github.com/chronicle/ingestion-scripts.git cp -r ingestion-scripts/common ingestion-scripts/stix_taxii/common cd ingestion-scripts/stix_taxiiErstellen Sie eine Datei mit dem Namen
.env.ymlund folgendem Inhalt. Ersetzen Sie die Platzhalterwerte durch die Werte, die Sie zuvor gespeichert haben:CHRONICLE_CUSTOMER_ID: "YOUR_CUSTOMER_ID" CHRONICLE_REGION: "us" CHRONICLE_SERVICE_ACCOUNT: "projects/PROJECT_ID/secrets/secops-ingestion-sa/versions/latest" TAXII_VERSION: "2.1" TAXII_DISCOVERY_URL: "https://ext-TENANT.crtx.REGION.paloaltonetworks.com/xsoar/instance/execute/SecOps-TAXII/threatintel/" TAXII_COLLECTION_NAMES: "SecOpsIOCs" TAXII_USERNAME: "YOUR_TAXII_USERNAME" TAXII_PASSWORD_SECRET_PATH: "projects/PROJECT_ID/secrets/taxii-password/versions/latest" POLL_INTERVAL: "60"Die Funktion bereitstellen:
gcloud functions deploy stix-taxii-ingestion \ --gen2 \ --entry-point main \ --trigger-http \ --runtime python312 \ --region us-central1 \ --service-account stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com \ --timeout 540 \ --memory 512MB \ --no-allow-unauthenticated \ --env-vars-file .env.ymlSpeichern Sie die Trigger-URL der Funktion aus der Deployment-Ausgabe (z. B.
https://us-central1-PROJECT_ID.cloudfunctions.net/stix-taxii-ingestion).
Funktion mit Cloud Scheduler planen
Gewähren Sie dem Dienstkonto die Berechtigung zum Aufrufen der Funktion:
gcloud functions add-invoker-policy-binding stix-taxii-ingestion \ --region=us-central1 \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com"Erstellen Sie einen Scheduler-Job, der die Funktion stündlich aufruft (passen Sie die Häufigkeit an
POLL_INTERVALan):gcloud scheduler jobs create http stix-taxii-scheduler \ --location=us-central1 \ --schedule="0 */1 * * *" \ --uri="FUNCTION_TRIGGER_URL" \ --http-method=POST \ --oidc-service-account-email="stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com" \ --oidc-token-audience="FUNCTION_TRIGGER_URL"
Deployment prüfen
Lösen Sie einen ersten Lauf aus:
gcloud scheduler jobs run stix-taxii-scheduler --location=us-central1Funktionslogs prüfen:
gcloud functions logs read stix-taxii-ingestion --region=us-central1 --gen2 --limit=50Suchen Sie in Google SecOps nach Ereignissen mit dem Protokolltyp
STIX, um zu bestätigen, dass die Indikatoren aufgenommen wurden.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
observable.object.properties.type |
categorization |
Direkt zugeordnet |
type |
categorization |
Direkt zugeordnet |
x_ctix_confidence_score |
confidence_score |
Umbenannt/zugeordnet |
name |
domain_and_ports.domain |
Direkt zugeordnet |
observable.object.properties.value |
domain_and_ports.domain |
Direkt zugeordnet |
value |
domain_and_ports.domain |
Direkt zugeordnet |
type |
feed_name |
Zugeordnet: "ipv4","ipv4-addr", "scan_ip", "mal_ip" → STIX-IOC, `"phish_domain", "domain", "... |
src_ip |
ip_and_ports.ip_address |
Direkt zugeordnet |
value |
ip_and_ports.ip_address |
Direkt zugeordnet |
src_port |
ip_and_ports.ports |
Zusammengeführt |
type |
ip_and_ports.ports |
Zugeordnet: "ipv4","ipv4-addr", "scan_ip", "mal_ip" → src_port, ipv4-addr → src_port |
created |
metadata.event_timestamp |
Als ISO8601 geparst |
modified |
metadata.event_timestamp |
Als ISO8601 geparst |
timestamp |
metadata.event_timestamp |
Als ISO8601 geparst |
valid_from |
metadata.event_timestamp |
Als ISO8601 geparst |
valid_until |
metadata.event_timestamp |
Als ISO8601 geparst |
| – | feed_name |
Konstante: STIX-IOC |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten