收集 Palo Alto Networks IOC 記錄

支援的國家/地區:

本文說明如何使用 STIX over TAXII,將 Palo Alto Networks 入侵指標 (IOC) 擷取至 Google Security Operations。stix_taxii 擷取指令碼 (Cloud Run 函式) 會依排程從 Palo Alto TAXII 2.1 伺服器提取指標,並使用 STIX 記錄類型將指標傳送至 Google SecOps。

Palo Alto Networks 會透過 TAXII,從 Cortex XSOAR 或 XSIAM 威脅情報管理 (TIM) 系統,以 STIX 2.1 資訊串流的形式公開 IOC。Google SecOps 中的 STIX 剖析器會將常見指標類型 (IPv4 位址、網域、網址、檔案雜湊和電子郵件地址) 對應至 UDM。

事前準備

請確認您符合下列必要條件:

  • Google SecOps 執行個體、Google SecOps 擷取驗證檔案 (服務帳戶 JSON) 和客戶 ID。
  • 已啟用計費功能的 Google Cloud 專案,以及建立服務帳戶、Secret Manager 密鑰、Cloud Run functions 和 Cloud Scheduler 作業的權限。
  • Palo Alto Cortex XSOAR 或 XSIAM,並具備威脅情報管理 (TIM) 授權,以及設定整合功能的權限。

在 Cortex TIM 中設定 Palo Alto TAXII 2.1 動態饋給

TAXII2 伺服器整合功能會將 Cortex XSOAR 或 XSIAM 指標發布為外送 TAXII 2.1 資訊提供,供擷取指令碼提取。

  1. 在 Cortex XSOAR 或 XSIAM 中,從「Settings & Info」(設定與資訊) >「Settings」(設定) >「Integrations」(整合) >「Marketplace」(市集) 安裝「TAXII Server」(TAXII 伺服器) 內容套件。
  2. 依序前往「Settings」 >「Integrations」 >「Instances」,搜尋「TAXII2 Server」,然後點選「Add instance」。
  3. 提供下列設定詳細資料:
    • 名稱:輸入執行個體的名稱 (例如 SecOps-TAXII)。
    • 長時間執行的執行個體:啟用這個選項。
    • TAXII2 伺服器版本:選取「2.1」。
    • 憑證:設定攝入指令碼用於 HTTP 基本驗證的使用者名稱和密碼。
  4. 在「Collection JSON」欄位中,貼上下列內容。它會發布名為 SecOpsIOCs 的集合,其中包含 STIX 剖析器支援的指標類型:

    {
        "SecOpsIOCs": {
            "query": "type:IP or type:Domain or type:URL or type:File or type:Email",
            "description": "Indicators exported to Google SecOps"
        }
    }
    
  5. 按一下「儲存並結束」,然後啟用執行個體。確認執行個體狀態顯示為執行中。

  6. 在 Google SecOps Playground 或整合項目的指令列中,執行下列指令並儲存輸出內容:

    !taxii-server-info
    !taxii-server-list-collections
    
  7. 從指令輸出內容中,儲存下列值,以便在部署步驟中使用:

    • 導覽網址:!taxii-server-info 傳回的 API 根網址 (例如 https://ext-TENANT.crtx.REGION.paloaltonetworks.com/xsoar/instance/execute/SecOps-TAXII/threatintel/)。
    • 集合名稱:SecOpsIOCs。
    • 使用者名稱和密碼:您設定的基本驗證憑證。

啟用必要的 Google Cloud API

  1. 在 Google Cloud 控制台中開啟 Cloud Shell,然後執行下列指令:

    gcloud services enable \
        cloudfunctions.googleapis.com \
        cloudbuild.googleapis.com \
        cloudscheduler.googleapis.com \
        secretmanager.googleapis.com
    

將憑證儲存在 Secret Manager

指令碼會從 Secret Manager 讀取 Google SecOps 服務帳戶 JSON 和 TAXII 密碼。

  1. 使用擷取驗證檔案,建立 Google SecOps 擷取服務帳戶密鑰:

    gcloud secrets create secops-ingestion-sa --data-file=./ingestion-auth.json
    
  2. 建立 TAXII 密碼密鑰:

    printf '%s' 'YOUR_TAXII_PASSWORD' | gcloud secrets create taxii-password --data-file=-
    
  3. 請以 projects/PROJECT_ID/secrets/SECRET_NAME/versions/latest 格式儲存這兩個資源名稱。您可以在 .env.yml 中使用這些表情符號。

為函式建立服務帳戶

  1. 為 Cloud Run 函式建立執行階段服務帳戶:

    gcloud iam service-accounts create stix-taxii-sa \
        --display-name="STIX/TAXII ingestion function"
    
  2. 授予存取下列兩個密鑰的權限:

    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"
    

部署擷取指令碼

stix_taxii 擷取指令碼是 Cloud Run 函式,可從 TAXII 伺服器提取指標,並使用 Ingestion API 將指標串流至 Google SecOps。一律使用 STIX 記錄類型擷取。

  1. 在 Cloud Shell 中,複製擷取指令碼存放區:

    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. 建立名為 .env.yml 的檔案,並在其中加入下列內容。將預留位置值替換為先前儲存的值:

    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. 部署函式:

    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. 從部署作業輸出內容中,儲存函式的觸發條件網址 (例如 https://us-central1-PROJECT_ID.cloudfunctions.net/stix-taxii-ingestion)。

使用 Cloud Scheduler 排定函式執行時間

  1. 授予服務帳戶叫用函式的權限:

    gcloud functions add-invoker-policy-binding stix-taxii-ingestion \
        --region=us-central1 \
        --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com"
    
  2. 建立排程器工作,每小時呼叫一次函式 (頻率與 POLL_INTERVAL 相符):

    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

  1. 觸發初始執行:

    gcloud scheduler jobs run stix-taxii-scheduler --location=us-central1
    
  2. 查看函式記錄檔:

    gcloud functions logs read stix-taxii-ingestion --region=us-central1 --gen2 --limit=50
    
  3. 在 Google SecOps 中,搜尋 STIX 記錄類型事件,確認指標已擷取。

UDM 對應表

記錄欄位 UDM 對應 邏輯
observable.object.properties.type categorization 直接對應
type categorization 直接對應
x_ctix_confidence_score confidence_score 已重新命名/對應
name domain_and_ports.domain 直接對應
observable.object.properties.value domain_and_ports.domain 直接對應
value domain_and_ports.domain 直接對應
type feed_name 對應:"ipv4","ipv4-addr", "scan_ip", "mal_ip" → STIX-IOC、`"phish_domain"、"domain"、"...
src_ip ip_and_ports.ip_address 直接對應
value ip_and_ports.ip_address 直接對應
src_port ip_and_ports.ports 已合併
type ip_and_ports.ports 已對應:"ipv4","ipv4-addr", "scan_ip", "mal_ip" → src_port、ipv4-addr → src_port
created metadata.event_timestamp 已剖析為 ISO8601
modified metadata.event_timestamp 已剖析為 ISO8601
timestamp metadata.event_timestamp 已剖析為 ISO8601
valid_from metadata.event_timestamp 已剖析為 ISO8601
valid_until metadata.event_timestamp 已剖析為 ISO8601
不適用 feed_name 常數:STIX-IOC

變更記錄

查看這個剖析器的變更記錄

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求解答。