收集 Palo Alto Networks IOC 記錄
本文說明如何透過 TAXII 上的 STIX,將 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) 服務,將 IOC 顯示為 STIX 2.1 資訊提供。Google SecOps 中的 STIX 剖析器會將常見指標類型 (IPv4 位址、網域、網址、檔案雜湊和電子郵件地址) 對應至 UDM。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體,以及 Google SecOps 擷取驗證檔案 (服務帳戶 JSON) 和客戶 ID。
- 已啟用帳單的專案,以及建立服務帳戶、Secret Manager 密鑰、Cloud Run functions 和 Cloud Scheduler 工作的權限。 Google Cloud
Palo Alto Cortex XSOAR 或 XSIAM,並具備威脅情報管理 (TIM) 授權,以及設定整合的權限存取權。
在 Cortex TIM 中設定 Palo Alto TAXII 2.1 資訊提供
TAXII2 伺服器整合功能會將 Cortex XSOAR 或 XSIAM 指標發布為外送 TAXII 2.1 資訊提供,供擷取指令碼提取。
- 在 Cortex XSOAR 或 XSIAM 中,從「設定與資訊」>「設定」>「整合」>「市集」安裝 TAXII 伺服器內容套件。
- 依序前往「設定」>「整合」>「執行個體」,搜尋「TAXII2 Server」,然後按一下「新增執行個體」。
- 提供下列設定詳細資料:
- 名稱:輸入執行個體的名稱 (例如
SecOps-TAXII)。 - 長時間執行的執行個體:啟用這個選項。
- TAXII2 伺服器版本:選取 2.1。
- 憑證:設定擷取指令碼用於 HTTP 基本驗證的使用者名稱和密碼。
- 名稱:輸入執行個體的名稱 (例如
在「集合 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" } }按一下「儲存並結束」,然後啟用執行個體。確認執行個體狀態顯示為「執行中」。
在 Google SecOps 練習環境或整合的指令列中,執行下列指令並儲存輸出內容:
!taxii-server-info !taxii-server-list-collections在指令輸出中,儲存下列值以供部署步驟使用:
- 導覽網址:
!taxii-server-info傳回的 API 根網址 (例如https://ext-TENANT.crtx.REGION.paloaltonetworks.com/xsoar/instance/execute/SecOps-TAXII/threatintel/)。 - 集合名稱:
SecOpsIOCs。 - 「使用者名稱」和「密碼」:您設定的基本驗證憑證。
- 導覽網址:
啟用必要的 Google Cloud API
在 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 密碼。
從擷取驗證檔案建立 Google SecOps 擷取服務帳戶密鑰:
gcloud secrets create secops-ingestion-sa --data-file=./ingestion-auth.json建立 TAXII 密碼私密金鑰:
printf '%s' 'YOUR_TAXII_PASSWORD' | gcloud secrets create taxii-password --data-file=-請以
projects/PROJECT_ID/secrets/SECRET_NAME/versions/latest格式儲存這兩個資源名稱。您會在.env.yml中使用這些值。
為函式建立服務帳戶
為 Cloud Run 函式建立執行階段服務帳戶:
gcloud iam service-accounts create stix-taxii-sa \ --display-name="STIX/TAXII ingestion function"授予存取下列兩個密鑰的權限:
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 記錄類型擷取資料。
在 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建立名為
.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"部署函式:
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從部署輸出內容中儲存函式的觸發網址 (例如
https://us-central1-PROJECT_ID.cloudfunctions.net/stix-taxii-ingestion)。
使用 Cloud Scheduler 排定函式執行時間
將可叫用函式的權限授予該服務帳戶:
gcloud functions add-invoker-policy-binding stix-taxii-ingestion \ --region=us-central1 \ --member="serviceAccount:stix-taxii-sa@PROJECT_ID.iam.gserviceaccount.com"建立排程器工作,每小時呼叫函式 (頻率與
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
觸發初始執行:
gcloud scheduler jobs run stix-taxii-scheduler --location=us-central1查看函式記錄:
gcloud functions logs read stix-taxii-ingestion --region=us-central1 --gen2 --limit=50在 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 專業人員尋求解答。