收集 Palo Alto Cortex XDR Events 記錄
本文說明如何使用 Google Cloud Storage,將 Palo Alto Cortex XDR 事件記錄檔擷取至 Google Security Operations。剖析器會從 Palo Alto Networks Cortex XDR JSON 記錄中擷取安全事件資料。系統會根據與 event_type
和 event_sub_type
欄位相關的條件式邏輯,對應欄位、轉換資料類型,並使用供應商、產品和事件類型等中繼資料擴充事件,將資料正規化為整合式資料模型 (UDM)。此外,它還會處理網路連線、檔案和登錄作業、程序資訊,以及使用者活動。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Google Cloud 儲存空間已在環境中設定並啟用 Google Cloud
- Google Cloud 的特殊存取權和適當權限
- Palo Alto Cortex XDR 的特殊權限
建立 Google Cloud 儲存空間 bucket
- 登入 Google Cloud 主控台。
前往「Cloud Storage Buckets」(Cloud Storage bucket) 頁面。
點選「建立」。
在「建立 bucket」頁面中,輸入 bucket 資訊。完成下列每個步驟後,請按一下「繼續」前往下一個步驟:
在「開始使用」部分中,執行下列操作: * 輸入符合 bucket 名稱規定的不重複名稱 (例如 cortex-xdr-events-googlesecops)。 * 如要啟用階層命名空間,請按一下展開箭頭,展開「為檔案導向和資料密集型工作負載提供最理想的儲存空間」部分,然後選取「為這個值區啟用階層命名空間」。
Note: You can't enable hierarchical namespace in an existing bucket. * To add a bucket label, click the expander arrow to expand the **Labels** section. * Click **Add label** and specify a key and a value for your label.
在「Choose where to store your data」(選擇資料的儲存位置) 專區中執行下列操作: * 選取「位置類型」。 * 使用位置類型選單,選取要永久儲存 bucket 內物件資料的位置。
Note: If you select the **dual-region** location type, you can also choose to enable **turbo replication** by selecting the relevant checkbox. * To set up cross-bucket replication, expand the **Set up cross-bucket replication** section.
在「為資料選擇儲存空間級別」部分,選取值區的預設儲存空間級別,或選取「Autoclass」,讓系統自動管理值區資料的儲存空間級別。
在「選取如何控制物件的存取權」部分,選取「否」以強制禁止公開存取,並為值區物件選取存取權控管模型。
在「選擇保護物件資料的方式」專區中,執行下列操作: * 選取「資料保護」下方的任何選項,為 bucket 設定保護機制。 * 如要選擇物件資料的加密方式,請按一下「資料加密」展開箭頭,然後選取「資料加密方法」。
點選「建立」。
設定 Cortex XDR 事件轉送
- 登入 Cortex XDR 網頁版 UI。
- 依序前往「設定」>「設定」>「資料管理」>「事件轉送」。
- 在「啟用」部分啟用授權。
- 啟用 GB 事件轉送,將 Cortex XDR Pro 每 GB 的已剖析記錄檔匯出至外部 SIEM 儲存。
- 啟用「端點事件轉送」,匯出 Cortex XDR Pro EP 和 Cloud Endpoints 的原始端點資料。
- 儲存所選項目。
- 複製顯示的儲存路徑。
- 產生並下載服務帳戶 JSON WEB TOKEN,其中包含存取金鑰。
- 將檔案儲存在安全的位置。
設定 Google Cloud Secret Manager
- 登入 GCP。
- 前往「Secret Manager」頁面。
- 如果是第一次使用,系統會提示您啟用 Secret Manager API。
- 建立名為 EVENT_FRWD_CRTX_KEY 的密鑰,然後將您下載的 JSON xdr_sa_key.json 內容複製為密鑰的值。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態饋給」,設定動態饋給
如要設定動態消息,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中,輸入動態饋給的名稱 (例如「PANW Cortex XDR Event Logs」)。
- 選取「Google Cloud Storage」做為「來源類型」。
- 選取「Palo Alto Cortex XDR Events」做為「記錄類型」。
- 按一下「Chronicle 服務帳戶」的「取得服務帳戶」。
- 點選「下一步」。
指定下列輸入參數的值:
- 儲存空間值區 URI:儲存空間值區網址 (例如
gs://cortex-xdr-events-chronicle
)。 Google Cloud - 「URI Is A」(URI 為):選取「Directory which includes subdirectories」(包含子目錄的目錄)。
- 來源刪除選項:根據偏好設定選取刪除選項。
- 儲存空間值區 URI:儲存空間值區網址 (例如
點選「下一步」。
在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。
動態消息建立完成後,請在「動態消息」清單中找到該動態消息,然後按一下該行右側的三個動作點。
選取「停用動態消息」。
從內容中心設定動態饋給
為下列欄位指定值:
- 儲存空間值區 URI:儲存空間值區網址 (例如
gs://cortex-xdr-events-chronicle
)。 Google Cloud - 「URI Is A」(URI 為):選取「Directory which includes subdirectories」(包含子目錄的目錄)。
來源刪除選項:根據偏好設定選取刪除選項。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 來源類型:將記錄收集到 Google SecOps 的方法。
- 資產命名空間:與動態饋給相關聯的命名空間。
- 擷取標籤:套用至這個動態饋給所有事件的標籤。
設定 Cloud Storage 的密鑰 JSON 存取權
- 登入 GCP。
- 前往「Secret Manager」頁面。
- 選取密鑰 EVENT_FRWD_CRTX_KEY。
- 前往「權限」分頁標籤。
- 為先前建立的 bucket cortex-xdr-events-chronicle 提供「儲存空間物件管理員」和「儲存空間舊版 bucket 讀取者」存取權。
設定 Cloud Storage 的 Google SecOps 權限
- 前往「IAM 與管理」>「IAM」。
- 找到 Chronicle 服務帳戶。
- 將 Storage 物件檢視者 (roles/storage.objectViewer) 存取權授予先前建立的 bucket cortex-xdr-events-chronicle。
設定 PANW Cortex XDR Events 記錄檔,將資料擷取至專案 Cloud Storage
- 在 Google Cloud中,依序前往「API 和服務」>「程式庫」。
- 啟用 Cloud Run 和 Artifact Registry API。
- 按一下頂端導覽列中的圖示,開啟 Cloud Shell。
使用下列指令下載自訂程式碼:
git clone https://github.com/PaloAltoNetworks/google-cloud-cortex-chronicle.git
執行下列指令,前往該目錄:
cd google-cloud-cortex-chronicle/
使用
vi
等編輯器開啟env.properties
檔案。請提供下列設定詳細資料:
REGION=us-central1 # Update according to your project region REPO_NAME=panw-chronicle IMAGE_NAME=sync_cortex_bucket GCP_PROJECT_ID=chrxxxxxxxxx # Update according to your project ID JOB_NAME=cloud-run-job-cortex-data-sync # The Cloud Job name ROJECT_NUMBER=80xxxxx9 # Update according to your project number # JOB ENV VARIABLES SRC_BUCKET=xdr-us-xxxxx-event-forwarding # Update with the Cortex XDR GCS bucket name DEST_BUCKET=cortex-xdr-events-chronicle # Update with the GCS name of the bucket you created SECRET_NAME=EVENT_FRWD_CRTX_KEY # Need to match the secret you created JOB_SCHEDULE_MINS=30
授予
deploy.sh
指令碼必要權限:chmod 744 deploy.sh
執行
deploy.sh
指令碼:./deploy.sh
從指令碼輸出內容找出使用的 Cloud Job 服務帳戶。
將「Secret Manager 密鑰上層祖項」權限授予「Cloud Job」服務帳戶,以便存取您先前建立的密鑰 (如範例中的 EVENT_FRWD_CRTX_KEY)。
依序前往「Secret Manager」>「EVENT_FRWD_CRTX_KEY」(密碼) >「Permissions」。
在 Google SecOps 平台中,依序前往「SIEM Settings」>「Feeds」>「XDR Events Feed Name」>「Enable Feed」。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
action_file_path |
target.file.full_path |
直接對應 |
action_file_size |
target.file.size |
直接對應並轉換為不帶正負號的整數 |
action_local_ip |
principal.ip |
直接對應並與其他 IP 位址合併 |
action_local_port |
principal.port |
直接對應並轉換為整數 |
action_module_path |
target.process.file.full_path |
直接對應 |
action_network_connection_id |
network.session_id |
直接對應 |
action_network_protocol |
network.ip_protocol |
已重新命名為 protocol_number_src 、使用 parse_ip_protocol.include 剖析,並對應至 network.ip_protocol |
action_process_image_command_line |
target.process.command_line |
直接對應 |
action_process_image_md5 |
target.process.file.md5 |
直接對應 |
action_process_image_path |
target.process.file.full_path |
直接對應 |
action_process_image_sha256 |
target.process.file.sha256 |
直接對應 |
action_process_os_pid |
target.process.pid |
直接對應並轉換為字串 |
action_process_user_sid |
target.user.windows_sid |
直接對應 |
action_process_username |
target.user.userid 、target.administrative_domain |
轉換為小寫、剖析網域和使用者,並據此對應 |
action_registry_data |
target.registry.registry_value_data |
直接對應 |
action_registry_key_name |
target.registry.registry_key |
直接對應 |
action_registry_value_name |
target.registry.registry_value_name |
直接對應 |
action_remote_ip |
target.ip |
直接對應並與其他 IP 位址合併 |
action_remote_port |
target.port |
直接對應並轉換為整數 |
action_total_download |
network.received_bytes |
直接對應並轉換為不帶正負號的整數 |
action_total_upload |
network.sent_bytes |
直接對應並轉換為不帶正負號的整數 |
agent_hostname |
principal.hostname 、observer.hostname |
轉換為小寫並對應 |
agent_ip_addresses |
observer.ip |
剖析為 JSON、拆分為個別 IP,然後合併 |
agent_os_sub_type |
target.platform_version |
直接對應 |
event_id |
metadata.product_log_id |
直接對應 |
event_sub_type |
metadata.product_event_type |
轉換為字串,並用於 metadata.event_type 和 metadata.product_event_type 的條件式對應 |
event_timestamp |
metadata.event_timestamp 、timestamp |
轉換為字串、剖析為 UNIX_MS 時間戳記,並對應 |
event_type |
metadata.event_type |
轉換為字串,並用於 metadata.event_type 和 metadata.product_event_type 的條件式對應 |
os_actor_process_command_line |
principal.process.command_line |
直接對應 |
os_actor_process_image_md5 |
principal.process.file.md5 |
直接對應 |
os_actor_process_image_path |
principal.process.file.full_path |
直接對應 |
os_actor_process_image_sha256 |
principal.process.file.sha256 |
直接對應 |
os_actor_process_instance_id |
principal.process.product_specific_process_id |
加上「PAN:」前置字串並對應 |
os_actor_process_os_pid |
principal.process.pid |
已轉換為字串並對應 |
os_actor_primary_user_sid |
principal.user.windows_sid |
如果開頭為「S-」或「s-」,則會對應 |
os_actor_primary_username |
principal.user.userid 、principal.administrative_domain |
轉換為小寫、剖析網域和使用者,並據此對應 |
_action |
security_result.action |
合併至「_security_result 」並對應 |
metadata.log_type |
metadata.log_type |
硬式編碼為「PAN_CORTEX_XDR_EVENTS」 |
metadata.product_name |
metadata.product_name |
硬式編碼為「Cortex XDR」 |
metadata.vendor_name |
metadata.vendor_name |
硬式編碼為「PAN」 |
target.platform |
target.platform |
如果 agent_os_sub_type 包含「Windows」,則設為「WINDOWS」 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。