IOC-Logs von Palo Alto Networks erfassen

Unterstützt in:

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.

  1. Installieren Sie in Cortex XSOAR oder XSIAM das Inhaltspaket TAXII Server über Einstellungen & Informationen > Einstellungen > Integrationen > Marketplace.
  2. Rufen Sie die Einstellungen> Integrationen> Instanzen auf, suchen Sie nach TAXII2-Server und klicken Sie auf Instanz hinzufügen.
  3. 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.
  4. Fügen Sie im Feld Sammlungs-JSON Folgendes ein. Es wird eine Sammlung mit dem Namen SecOpsIOCs veröffentlicht, die die Indikatortypen enthält, die vom STIX-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"
        }
    }
    
  5. Klicken Sie auf Speichern und beenden und aktivieren Sie die Instanz. Prüfen Sie, ob der Instanzstatus „Wird ausgeführt“ lautet.

  6. 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-collections
    
  7. Speichern Sie die folgenden Werte aus der Befehlsausgabe für den Bereitstellungsschritt:

    • Discovery-URL: Die API-Stamm-URL, die von !taxii-server-info zurü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.

Erforderliche Google Cloud APIs aktivieren

  1. Ö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.

  1. 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.json
    
  2. Erstellen Sie das TAXII-Passwort-Secret:

    printf '%s' 'YOUR_TAXII_PASSWORD' | gcloud secrets create taxii-password --data-file=-
    
  3. 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

  1. Erstellen Sie ein Laufzeitdienstkonto für die Cloud Run-Funktion:

    gcloud iam service-accounts create stix-taxii-sa \
        --display-name="STIX/TAXII ingestion function"
    
  2. 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.

  1. 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_taxii
    
  2. Erstellen Sie eine Datei mit dem Namen .env.yml und 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"
    
  3. 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.yml
    
  4. Speichern 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

  1. 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"
    
  2. Erstellen Sie einen Scheduler-Job, der die Funktion stündlich aufruft (passen Sie die Häufigkeit an POLL_INTERVAL an):

    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

  1. Lösen Sie einen ersten Lauf aus:

    gcloud scheduler jobs run stix-taxii-scheduler --location=us-central1
    
  2. Funktionslogs prüfen:

    gcloud functions logs read stix-taxii-ingestion --region=us-central1 --gen2 --limit=50
    
  3. Suchen 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