收集 Fortinet FortiEDR 記錄
本文說明如何使用 Google Cloud Storage V2 或 Bindplane 代理程式,將 Fortinet FortiEDR 記錄檔擷取至 Google Security Operations。
Fortinet FortiEDR 是一種端點偵測與回應解決方案,可為整個機構的端點提供即時防護、自動事件應變和威脅情報。
收集方法差異
本指南提供兩種收集方法:
- 選項 1:透過 Bindplane 代理程式傳送系統記錄:FortiEDR 會將系統記錄訊息傳送至 Bindplane 代理程式,後者會將記錄轉送至 Google SecOps。建議用於以最少的基礎架構擷取即時記錄。
- 選項 2:透過 Cloud Function 將 Syslog 傳送至 GCS:FortiEDR 會將 Syslog 訊息傳送至 Cloud Function,後者會將記錄寫入 GCS,供 Google SecOps 擷取。建議用於集中式記錄檔儲存空間和批次處理。
請選擇最符合基礎架構和需求的做法。
方法 1:使用 Bindplane 代理程式收集 Fortinet FortiEDR 記錄
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
- Bindplane 代理程式與 Fortinet FortiEDR Central Manager 之間的網路連線
- 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
- Fortinet FortiEDR 管理主控台的特殊權限
- FortiEDR 5.0 以上版本
取得 Google SecOps 擷取驗證檔案
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「收集代理程式」。
- 按一下「下載」即可下載擷取驗證檔案。
將檔案安全地儲存在要安裝 Bindplane 代理程式的系統中。
取得 Google SecOps 客戶 ID
- 登入 Google SecOps 控制台。
- 依序前往「SIEM 設定」>「設定檔」。
複製並儲存「機構詳細資料」專區中的客戶 ID。
安裝 Bindplane 代理程式
請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。
Windows 安裝
- 以管理員身分開啟「命令提示字元」或「PowerShell」。
執行下列指令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet等待安裝完成。
執行下列指令來驗證安裝:
sc query observiq-otel-collector
服務應顯示為「RUNNING」(執行中)。
Linux 安裝
- 開啟具有根層級或 sudo 權限的終端機。
執行下列指令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh等待安裝完成。
執行下列指令來驗證安裝:
sudo systemctl status observiq-otel-collector
服務應顯示為啟用 (執行中)。
其他安裝資源
如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。
設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps
找出設定檔
Linux:
sudo nano /etc/bindplane-agent/config.yaml
Windows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
編輯設定檔
將 config.yaml 的所有內容替換為下列設定:
receivers:
tcplog:
listen_address: "0.0.0.0:514"
exporters:
chronicle/fortiedr:
compression: gzip
creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
customer_id: 'YOUR_CUSTOMER_ID'
endpoint: malachiteingestion-pa.googleapis.com
log_type: FORTINET_FORTIEDR
raw_log_field: body
ingestion_labels:
env: production
service:
pipelines:
logs/fortiedr_to_chronicle:
receivers:
- tcplog
exporters:
- chronicle/fortiedr
設定參數
請替換下列預留位置:
接收器設定:
listen_address:要接聽的 IP 位址和通訊埠。使用0.0.0.0:514監聽通訊埠 514 上的所有介面。
匯出工具設定:
creds_file_path:擷取驗證檔案的完整路徑:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:上一個步驟中的客戶 ID。endpoint:區域端點網址:- 美國:
malachiteingestion-pa.googleapis.com - 歐洲:
europe-malachiteingestion-pa.googleapis.com - 亞洲:
asia-southeast1-malachiteingestion-pa.googleapis.com
- 美國:
ingestion_labels:YAML 格式的選用標籤。
儲存設定檔
編輯完成後,請儲存檔案:
- Linux:依序按下
Ctrl+O、Enter和Ctrl+X - Windows:依序點選「檔案」>「儲存」
重新啟動 Bindplane 代理程式,以套用變更
Linux
sudo systemctl restart observiq-otel-collector確認服務正在執行:
sudo systemctl status observiq-otel-collector檢查記錄中是否有錯誤:
sudo journalctl -u observiq-otel-collector -f
Windows
選擇下列其中一個選項:
以管理員身分使用命令提示字元或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector使用服務控制台:
- 按下
Win+R鍵,輸入services.msc,然後按下 Enter 鍵。 - 找出 observIQ OpenTelemetry Collector。
按一下滑鼠右鍵,然後選取「重新啟動」。
確認服務正在執行:
sc query observiq-otel-collector檢查記錄中是否有錯誤:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- 按下
設定 Fortinet FortiEDR 系統記錄檔轉送
設定系統記錄目的地
- 登入 FortiEDR Central Manager 控制台。
- 依序前往「Administration」(管理) >「Export Settings」(匯出設定) >「Syslog」(系統記錄)。
- 按一下「定義新的系統記錄」按鈕。
- 在「Syslog Name」(系統記錄名稱) 欄位中,輸入描述性名稱 (例如
Chronicle-Integration)。 - 在「主機」欄位中,輸入 Bindplane 代理程式主機的 IP 位址。
- 在「Port」(通訊埠) 欄位中輸入
514。 - 在「通訊協定」下拉式選單中,選取「TCP」。
- 在「格式」下拉式選單中,選取「分號」 (以分號分隔欄位的預設格式)。
- 按一下「測試」按鈕,測試與 Bindplane 代理程式的連線。
- 確認測試成功。
- 按一下「儲存」按鈕,儲存系統記錄目的地。
依事件類型啟用系統記錄通知
- 在「Syslog」(系統記錄)Syslog 頁面中,選取剛建立的系統記錄目的地資料列。
- 在右側的「通知」窗格中,使用滑桿為每個事件類型啟用或停用目的地:
- 系統事件:啟用後,系統會傳送 FortiEDR 系統健康狀態事件。
- 安全性事件:啟用後,系統會傳送安全性事件彙整資料。
- 稽核追蹤:啟用後即可傳送稽核記錄事件。
- 針對每個已啟用的事件類型,按一下事件類型右側的按鈕。
- 勾選要納入系統記錄訊息的欄位核取方塊。
- 按一下 [儲存]。
設定應對手冊通知
只有在裝置發生安全性事件,且裝置已指派給啟用「傳送系統記錄通知」選項的 Playbook 政策時,系統才會傳送系統記錄訊息。
- 依序前往「安全性設定」>「劇本」。
- 選取要監控裝置適用的 Playbook 政策 (例如「預設 Playbook」)。
- 在「通知」部分,找到「系統記錄」列。
- 勾選要傳送的事件分類核取方塊,啟用「傳送系統記錄通知」選項:
- 惡意:歸類為惡意的安全性事件。
- 可疑:歸類為可疑的安全性事件。
- PUP:可能包含垃圾內容的程式。
- 結果不明確:分類結果不明確的事件。
- 可能安全:分類為可能安全的事件 (選用)。
按一下 [儲存]。
方法 2:使用 GCS 收集 Fortinet FortiEDR 記錄
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- 已啟用 Cloud Storage API 的 GCP 專案
- 建立及管理 GCS 值區的權限
- 管理 Google Cloud Storage 值區 IAM 政策的權限
- 建立 Cloud Run 服務、Pub/Sub 主題和 Cloud Scheduler 工作的權限
- Fortinet FortiEDR 管理主控台的特殊權限
- FortiEDR 5.0 以上版本
建立 Google Cloud Storage 值區
- 前往 Google Cloud Console。
- 選取專案或建立新專案。
- 在導覽選單中,依序前往「Cloud Storage」>「Bucket」。
- 按一下「建立值區」。
請提供下列設定詳細資料:
設定 值 為 bucket 命名 輸入全域不重複的名稱 (例如 fortiedr-logs)位置類型 根據需求選擇 (區域、雙區域、多區域) 位置 選取位置 (例如 us-central1)儲存空間級別 標準 (建議用於經常存取的記錄) 存取控管 統一 (建議) 保護工具 選用:啟用物件版本管理或保留政策 點選「建立」。
為 Cloud Run 函式建立服務帳戶
Cloud Run 函式需要具備 GCS bucket 寫入權限的服務帳戶,並由 Pub/Sub 叫用。
建立服務帳戶
- 在 GCP 主控台中,依序前往「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下「Create Service Account」(建立服務帳戶)。
- 請提供下列設定詳細資料:
- 服務帳戶名稱:輸入
fortiedr-syslog-collector-sa。 - 服務帳戶說明:輸入
Service account for Cloud Run function to collect FortiEDR syslog logs。
- 服務帳戶名稱:輸入
- 按一下「建立並繼續」。
- 在「將專案存取權授予這個服務帳戶」部分,新增下列角色:
- 按一下「選擇角色」。
- 搜尋並選取「Storage 物件管理員」。
- 點選「+ 新增其他角色」。
- 搜尋並選取「Cloud Run Invoker」。
- 點選「+ 新增其他角色」。
- 搜尋並選取「Cloud Functions Invoker」(Cloud Functions 叫用者)。
- 按一下「繼續」。
- 按一下 [完成]。
這些角色適用於:
- Storage 物件管理員:將記錄檔寫入 GCS 值區,並管理狀態檔案
- Cloud Run 叫用者:允許 Pub/Sub 叫用函式
- Cloud Functions 叫用者:允許函式叫用
授予 GCS 值區的 IAM 權限
授予服務帳戶 GCS bucket 的寫入權限:
- 依序前往「Cloud Storage」>「Buckets」。
- 按一下 bucket 名稱。
- 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:輸入服務帳戶電子郵件地址 (例如
fortiedr-syslog-collector-sa@PROJECT_ID.iam.gserviceaccount.com)。 - 指派角色:選取「Storage 物件管理員」。
- 新增主體:輸入服務帳戶電子郵件地址 (例如
- 按一下 [儲存]。
建立 Pub/Sub 主題
建立 Pub/Sub 主題,Cloud Scheduler 會將訊息發布至該主題,而 Cloud Run 函式會訂閱該主題。
- 在 GCP Console 中,前往「Pub/Sub」>「Topics」(主題)。
- 按一下「建立主題」。
- 請提供下列設定詳細資料:
- 主題 ID:輸入
fortiedr-syslog-trigger。 - 其他設定保留預設值。
- 主題 ID:輸入
- 點選「建立」。
建立 Cloud Run 函式來接收系統記錄
Cloud Run 函式會透過 HTTP 接收 FortiEDR 的系統記錄訊息,並將這些訊息寫入 GCS。
- 前往 GCP Console 的「Cloud Run」。
- 按一下「Create service」(建立服務)。
- 選取「函式」 (使用內嵌編輯器建立函式)。
在「設定」部分,提供下列設定詳細資料:
設定 值 服務名稱 fortiedr-syslog-collector區域 選取與 GCS bucket 相符的區域 (例如 us-central1)執行階段 選取「Python 3.12」以上版本 在「Trigger (optional)」(觸發條件 (選用)) 專區:
- 按一下「+ 新增觸發條件」。
- 選取「HTTPS」HTTPS。
- 在「Authentication」(驗證) 中,選取「Allow unauthenticated invocations」(允許未經驗證的叫用)。
- 按一下 [儲存]。
捲動至「Containers, Networking, Security」(容器、網路、安全性) 並展開。
前往「安全性」分頁:
- 服務帳戶:選取服務帳戶 (
fortiedr-syslog-collector-sa)。
- 服務帳戶:選取服務帳戶 (
前往「容器」分頁:
- 按一下「變數與密鑰」。
針對每個環境變數,按一下「+ 新增變數」:
變數名稱 範例值 說明 GCS_BUCKETfortiedr-logsGCS bucket 名稱 GCS_PREFIXfortiedr-syslog記錄檔的前置字串
在「變數與 Secret」部分,捲動至「要求」:
- 要求逾時:輸入
60秒。
- 要求逾時:輸入
前往「設定」分頁:
- 在「資源」部分:
- 記憶體:選取 256 MiB 以上。
- CPU:選取 1。
- 在「資源」部分:
在「修訂版本資源調度」部分:
- 執行個體數量下限:輸入
0。 - 「Maximum number of instances」(執行個體數量上限):輸入
10(或根據預期負載調整)。
- 執行個體數量下限:輸入
點選「建立」。
等待服務建立完成 (1 到 2 分鐘)。
服務建立完成後,系統會自動開啟內嵌程式碼編輯器。
新增函式程式碼
- 在「進入點」欄位中輸入「main」。
在內嵌程式碼編輯器中建立兩個檔案:
- 第一個檔案:main.py:
import functions_framework from google.cloud import storage import json import os from datetime import datetime, timezone from flask import Request # Initialize Storage client storage_client = storage.Client() # Environment variables GCS_BUCKET = os.environ.get('GCS_BUCKET') GCS_PREFIX = os.environ.get('GCS_PREFIX', 'fortiedr-syslog') @functions_framework.http def main(request: Request): """ Cloud Run function to receive syslog messages from FortiEDR and write to GCS. Args: request: Flask Request object containing syslog message """ if not GCS_BUCKET: print('Error: Missing GCS_BUCKET environment variable') return ('Missing GCS_BUCKET environment variable', 500) try: # Get request body request_data = request.get_data(as_text=True) if not request_data: print('Warning: Empty request body') return ('Empty request body', 400) # Parse syslog messages (one per line) lines = request_data.strip().split('\n') if not lines: print('Warning: No syslog messages found') return ('No syslog messages found', 400) # Get GCS bucket bucket = storage_client.bucket(GCS_BUCKET) # Write to GCS as NDJSON now = datetime.now(timezone.utc) timestamp = now.strftime('%Y%m%d_%H%M%S_%f') object_key = f"{GCS_PREFIX}/logs_{timestamp}.ndjson" blob = bucket.blob(object_key) # Convert each line to JSON object with raw syslog message records = [] for line in lines: if line.strip(): records.append({'raw': line.strip(), 'timestamp': now.isoformat()}) ndjson = '\n'.join([json.dumps(record, ensure_ascii=False) for record in records]) + '\n' blob.upload_from_string(ndjson, content_type='application/x-ndjson') print(f"Wrote {len(records)} records to gs://{GCS_BUCKET}/{object_key}") return (f"Successfully processed {len(records)} records", 200) except Exception as e: print(f'Error processing syslog: {str(e)}') return (f'Error processing syslog: {str(e)}', 500)- 第二個檔案:requirements.txt:
functions-framework==3.* google-cloud-storage==2.* flask==3.*點選「部署」來儲存並部署函式。
等待部署作業完成 (2 到 3 分鐘)。
部署完成後,前往「觸發條件」分頁,然後複製「觸發條件網址」 (例如
https://fortiedr-syslog-collector-abc123-uc.a.run.app)。
設定 Fortinet FortiEDR 系統記錄檔轉送至 Cloud Function
設定系統記錄目的地
- 登入 FortiEDR Central Manager 控制台。
- 依序前往「Administration」(管理) >「Export Settings」(匯出設定) >「Syslog」(系統記錄)。
- 按一下「定義新的系統記錄」按鈕。
- 在「Syslog Name」(系統記錄名稱) 欄位中,輸入描述性名稱 (例如
Chronicle-GCS-Integration)。 - 在「主機」欄位中,輸入 Cloud Functions 觸發網址的主機名稱 (例如
fortiedr-syslog-collector-abc123-uc.a.run.app)。 - 在「Port」(通訊埠) 欄位中輸入
443。 - 在「通訊協定」下拉式選單中,選取「TCP」。
- 在「格式」下拉式選單中,選取「分號」 (以分號分隔欄位的預設格式)。
- 按一下「測試」按鈕,測試與 Cloud Function 的連線。
- 確認測試成功。
按一下「儲存」按鈕,儲存系統記錄目的地。
依事件類型啟用系統記錄通知
- 在「Syslog」(系統記錄)Syslog 頁面中,選取剛建立的系統記錄目的地資料列。
- 在右側的「通知」窗格中,使用滑桿為每個事件類型啟用或停用目的地:
- 系統事件:啟用後,系統會傳送 FortiEDR 系統健康狀態事件。
- 安全性事件:啟用後,系統會傳送安全性事件彙整資料。
- 稽核追蹤:啟用後即可傳送稽核記錄事件。
- 針對每個已啟用的事件類型,按一下事件類型右側的按鈕。
- 勾選要納入系統記錄訊息的欄位核取方塊。
- 按一下 [儲存]。
設定應對手冊通知
只有在裝置發生安全性事件,且裝置已指派給啟用「傳送系統記錄通知」選項的 Playbook 政策時,系統才會傳送系統記錄訊息。
- 依序前往「安全性設定」>「劇本」。
- 選取要監控裝置適用的 Playbook 政策 (例如「預設 Playbook」)。
- 在「通知」部分,找到「系統記錄」列。
- 勾選要傳送的事件分類核取方塊,啟用「傳送系統記錄通知」選項:
- 惡意:歸類為惡意的安全性事件。
- 可疑:歸類為可疑的安全性事件。
- PUP:可能包含垃圾內容的程式。
- 結果不明確:分類結果不明確的事件。
- 可能安全:分類為可能安全的事件 (選用)。
按一下 [儲存]。
測試整合項目
- 在 FortiEDR Central Manager 控制台中,依序前往「Administration」>「Export Settings」>「Syslog」。
- 選取 Syslog 目的地列。
- 按一下「測試」按鈕傳送測試訊息。
- 前往 GCP 主控台的「Cloud Run」>「Services」(服務)。
- 按一下函式名稱 (
fortiedr-syslog-collector)。 - 按一下 [Logs] (記錄) 分頁標籤。
確認函式是否已順利執行。尋找:
Wrote X records to gs://fortiedr-logs/fortiedr-syslog/logs_YYYYMMDD_HHMMSS_MMMMMM.ndjson Successfully processed X records依序前往「Cloud Storage」>「Buckets」。
按一下 bucket 名稱。
前往前置字元資料夾 (
fortiedr-syslog/)。確認是否已建立含有目前時間戳記的新
.ndjson檔案。
如果在記錄中發現錯誤:
- 要求主體為空白:FortiEDR 未將資料傳送至 Cloud Function
- 缺少 GCS_BUCKET 環境變數:檢查是否已設定環境變數
- 權限遭拒:確認服務帳戶在 bucket 中具有 Storage 物件管理員角色
擷取 Google SecOps 服務帳戶
Google SecOps 會使用專屬服務帳戶,從 GCS bucket 讀取資料。您必須授予這個服務帳戶值區存取權。
在 Google SecOps 中設定動態饋給,以便擷取 Fortinet FortiEDR 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
FortiEDR Syslog Logs)。 - 選取「Google Cloud Storage V2」做為「來源類型」。
選取「Fortinet FortiEDR」做為「記錄類型」。
按一下「取得服務帳戶」。
系統會顯示不重複的服務帳戶電子郵件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com複製這個電子郵件地址,後續步驟會用到。
點選「下一步」。
指定下列輸入參數的值:
儲存空間 bucket URL:輸入 GCS bucket URI,並加上前置路徑:
gs://fortiedr-logs/fortiedr-syslog/取代:
fortiedr-logs:您的 GCS bucket 名稱。fortiedr-syslog:儲存記錄的選用前置字元/資料夾路徑 (如為根目錄,請留空)。
來源刪除選項:根據偏好設定選取刪除選項:
- 永不:移轉後一律不刪除任何檔案 (建議用於測試)。
- 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
- 刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄。
檔案存在時間上限:包含在過去天數內修改的檔案。預設值為 180 天。
資產命名空間:資產命名空間。
擷取標籤:要套用至這個動態饋給事件的標籤。
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
將 IAM 權限授予 Google SecOps 服務帳戶
Google SecOps 服務帳戶需要 GCS bucket 的「Storage 物件檢視者」角色。
- 依序前往「Cloud Storage」>「Buckets」。
- 按一下 bucket 名稱。
- 前往「權限」分頁標籤。
- 按一下「授予存取權」。
- 請提供下列設定詳細資料:
- 新增主體:貼上 Google SecOps 服務帳戶電子郵件地址。
- 指派角色:選取「Storage 物件檢視者」。
按一下 [儲存]。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
| 國家/地區 | target.location.country_or_region | 如果不是 N/A 或空白,則直接複製值 |
| srccountry | principal.location.country_or_region | 如果不是「已保留」或空白,則直接複製值 |
| dstcountry | target.location.country_or_region | 如果值不是空白,則直接複製 |
| srcip | principal.ip | 直接複製值 |
| dstip | target.ip | 如果不是 N/A,則直接複製值 |
| 目的地 | target.ip | 如果有效,則從目的地擷取為 IP |
| dst | target.ip | 如果有效,則從 dst 擷取為 IP |
| srcmac | principal.mac | 直接複製值 |
| dstosname | target.platform | 如果符合 LINUX,請設為 LINUX;如果符合 WINDOWS,請設為 WINDOWS;如果符合 MAC,請設為 MAC |
| srcport | principal.port | 已轉換為整數 |
| dstport | target.port | 已轉換為整數 |
| spt | principal.port | 已轉換為整數 |
| dpt | target.port | 已轉換為整數 |
| sessionid | network.session_id | 直接複製值 |
| sentbyte | network.sent_bytes | 已轉換為無正負號整數 |
| rcvdbyte | network.received_bytes | 已轉換為無正負號整數 |
| 持續時間 | network.session_duration.seconds | 已轉換為整數 |
| 動作 | security_result.summary | 直接複製值 |
| level | security_result.severity_details | 設為「level: %{level}」 |
| policyid | security_result.rule_id | 直接複製值 |
| policyname | security_result.rule_name | 直接複製值 |
| policytype | security_result.rule_type | 直接複製值 |
| 服務 | target.application | 直接複製值 |
| intermediary_ip | target.ip | 如果 message_type 為 Audit 或 loginStatus 不為空白,則直接複製值 |
| 中介 | 中介 | 直接複製值 |
| devname | target.hostname | 直接複製值 |
| server_host | target.hostname | 如果 message_type 為 Audit 或 loginStatus 不為空白,則直接複製值 |
| server_host | intermediary.hostname | 如果不是 Audit 或 loginStatus,則直接複製值做為標籤 |
| deviceInformation | target.resource.name、target.resource.resource_type | 已擷取 device_name,並將 resource_type 設為 DEVICE |
| component_name | additional.fields | 設為標籤,並使用「元件名稱」做為鍵 |
| process_name | principal.application | 直接複製值 |
| 程序路徑 | target.file.full_path | 直接複製值 |
| asset_os | target.platform | 如果符合 .Windows.,請設為 WINDOWS;如果符合 LINUX,則為 .Linux. |
| os_version | target.platform_version | 從 asset_os 擷取 |
| asset_os | principal.platform | 如果符合 .Windows.,請設為 WINDOWS;如果符合 LINUX,則為 .Linux. |
| os_version | principal.platform_version | 從 asset_os 擷取 |
| usr_name | userId | 直接複製值 |
| 使用者 | userId | 如果不是 WG 或 ADDC,則直接複製值 |
| id | userId | 直接複製值 |
| userId | target.user.userid | 如果 message_type 為 Audit 或 loginStatus 不為空白,則直接複製值 |
| userId | principal.user.userid | 如果不是 Audit 或 loginStatus,則直接複製值 |
| userDisplayName | target.user.user_display_name | 如果 message_type 為 Audit 或 loginStatus 不為空白,則直接複製值 |
| userDisplayName | principal.user.user_display_name | 如果不是 Audit 或 loginStatus,則直接複製值 |
| userPrincipalName | principal.user.userid | 直接複製值 |
| 說明 | metadata.description | 如果值不是空白,則直接複製 |
| 詳細資料 | metadata.description | 如果值不是空白,則直接複製 |
| mfaResult | metadata.description | 如果值不是空白,則直接複製 |
| data7 | metadata.description | 如果值不是空白,則直接複製 |
| message_type | metadata.description | 如果 description_details 為空,則直接複製值 |
| src_ip、srcip | principal.ip | 如果 src_ip 不為空值,則為 src_ip 的值;否則為 src 的值;否則為 Source 的值;否則為 ipAddress 的值 |
| src_ip | principal.ip | 如果有效,則從 src_ip 擷取為 IP |
| mac_address | principal.mac | 以陣列形式處理、轉換為小寫、合併 (如果 MAC 有效) |
| event_id | target.process.pid | 如果 message_type 為 Audit 或 loginStatus 不為空白,則直接複製值 |
| event_id | metadata.product_log_id | 如果不是 Audit 或 loginStatus,則直接複製值 |
| event_type | metadata.event_type | 直接複製值 |
| 嚴重性 | security_result.severity | 如果為「低」或空白,請設為「資訊」;如果為「中」,請設為「中」;如果為「高」,請設為「高」;如果為「重大」,請設為「重大」 |
| 動作 | security_result.action | 如果相符 (?i)Allow,則設為 ALLOW;如果相符 (?i)Block,則設為 BLOCK;否則設為 action_details |
| security_action | security_result.action | 直接複製值 |
| 規則 | 規則 | 直接複製值 |
| 規則 | security_result.rule_name | 直接複製值 |
| 分類 | security_result.summary | 直接複製值 |
| 首次出現時間 | security_result.detection_fields | 設為索引鍵為「First Seen」的標籤 |
| 上次出現時間 | security_result.detection_fields | 設為標籤,並使用「上次查看時間」鍵 |
| 機構 | target.administrative_domain | 如果 message_type 為 Audit 或 loginStatus 不為空白,則直接複製值 |
| 機構 | additional.fields | 如果不是 Audit 或 loginStatus,請將其設為鍵為「Organization」的標籤 |
| security_result | security_result | 從 sec_result 合併 |
| metadata.vendor_name | 設為「FORTINET」 | |
| metadata.product_name | 設為「FORTINET_FORTIEDR」 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。