收集 Symantec VIP Enterprise Gateway 記錄
本文說明如何使用 Bindplane 代理程式,將 Symantec VIP Enterprise Gateway 記錄擷取至 Google Security Operations。
Symantec VIP (Validation and ID Protection) Enterprise Gateway 是一種多重驗證解決方案,可為驗證事件、憑證驗證、LDAP 同步處理和健康狀態檢查活動產生系統記錄訊息。剖析器會從 JSON 格式和系統記錄格式的記錄檔中擷取欄位,並對應至統合式資料模型 (UDM)。
事前準備
請確認您符合下列必要條件:
- Google SecOps 執行個體
- Windows Server 2016 以上版本,或搭載
systemd的 Linux 主機 - Bindplane 代理程式與 Symantec VIP Gateway 之間的網路連線
- 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
- Symantec VIP Gateway 網頁 UI 的管理員存取權
取得 Bindplane 代理程式的 Google SecOps 憑證
如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:
- 新部署作業:使用 Chronicle API (選項 1)。
- 舊版部署作業:在 2027 年 7 月 20 日停用 Ingestion API 前,請繼續使用擷取驗證檔案 (選項 2)。
方法 1:為 Chronicle API 建立服務帳戶 (建議)
- 登入 Google Cloud 控制台,然後選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
- 依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
- 按一下「建立服務帳戶」。
- 提供下列設定詳細資料:
- 「Service account name」(服務帳戶名稱):輸入帳戶名稱 (例如
bindplane-ingest)。 - 服務帳戶說明:輸入說明 (例如
Bindplane agent log ingestion)。
- 「Service account name」(服務帳戶名稱):輸入帳戶名稱 (例如
- 點按「Create and continue」(建立並繼續)。
- 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
- 依序點選「繼續」和「完成」。
- 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
- 依序點選「新增金鑰」>「建立新的金鑰」。
- 選取「JSON」,然後點選「建立」。金鑰檔案會下載到電腦。
- 將金鑰檔案儲存為 Bindplane 收集器目錄中的
ingestion-auth.json(Linux 上的/opt/observiq-otel-collector/ingestion-auth.json或 Windows 上的C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json),或更新config.yaml中的creds_file_path,使其與儲存路徑相符。 - 依序前往「IAM & Admin」(IAM 與管理) >「Settings」(設定),然後複製「Project number」(專案編號)。設定匯出工具時會用到。
方法 2:下載擷取驗證檔案 (舊版)
- 登入 Google SecOps 控制台。
- 依序前往「SIEM Settings」 > 「Collection Agents」。
- 下載擷取驗證檔案。
- 將檔案安全地儲存在要安裝 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服務應顯示為「active (running)」。
其他安裝資源
如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。
設定 Bindplane 代理程式,擷取系統記錄並傳送至 Google SecOps
找出設定檔
Linux:
sudo nano /opt/observiq-otel-collector/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
編輯設定檔
將
config.yaml的全部內容替換為下列設定:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/symantec_vip: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: SYMANTEC_VIP raw_log_field: body service: pipelines: logs/symantec_vip_to_chronicle: receivers: - udplog exporters: - chronicle/symantec_vip
設定參數
請替換下列預留位置:
接收器設定:
listen_address:要接聽的 IP 位址和通訊埠:0.0.0.0在所有介面接聽電話 (建議)- 通訊埠
514是標準 syslog 通訊埠 (在 Linux 上需要根目錄;非根目錄請使用1514)
Exporter 設定:
creds_file_path:服務帳戶 JSON 金鑰檔案的完整路徑 (選項 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:從 Google SecOps 控制台複製的客戶 IDlocation:將<LOCATION>替換為 Google SecOps 執行個體的區域 (例如us、europe或asia-southeast1)。匯出工具會在這個值前面加上chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。project:依序前往「IAM 與管理」>「設定」,然後將<PROJECT_NUMBER>替換為專案編號。endpoint:維持設為chronicle.googleapis.com。
舊版擷取 API 匯出工具
如果您使用選項 2 的擷取驗證檔案,請將
exporters區塊替換為下列內容。將creds_file_path設為擷取驗證檔案的路徑。如果執行個體位於美國境外,請將malachiteingestion-pa.googleapis.com替換為區域端點 (例如europe-malachiteingestion-pa.googleapis.com)。exporters: chronicle/symantec_vip: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SYMANTEC_VIP raw_log_field: body
儲存設定檔
- 編輯完成後,請儲存檔案:
- Linux:依序按下
Ctrl+O、Enter和Ctrl+X - Windows:依序點選「檔案」 > 「儲存」
- Linux:依序按下
重新啟動 Bindplane 代理程式,套用變更
如要在 Linux 重新啟動 Bindplane 代理程式,請執行下列指令:
sudo systemctl restart observiq-otel-collector確認服務正在執行:
sudo systemctl status observiq-otel-collector查看記錄檔是否有錯誤:
sudo journalctl -u observiq-otel-collector -f
如要在 Windows 中重新啟動 Bindplane 代理程式,請選擇下列其中一個選項:
以管理員身分開啟命令提示字元或 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"
- 按下
在 Symantec VIP Enterprise Gateway 中設定系統記錄檔
- 登入 Symantec VIP Gateway 網頁版 UI。
- 依序前往 「Logs」 > 「Syslog Configuration」。
- 如果是首次設定系統記錄,請在系統提示時選取「是」。如果已設定,請按一下「編輯」。
- 提供下列設定詳細資料:
- 系統記錄設施:選取「LOG_LOCAL0」。
- Syslog 主機:輸入 Bindplane 代理程式 IP 位址。
- 「Syslog Port」(Syslog 通訊埠):輸入 Bindplane 代理程式通訊埠編號 (例如
514,用於 UDP)。
- 按一下 [儲存]。
- 依序前往「設定」>「主機設定」。
- 提供下列設定詳細資料:
- 記錄層級:選取「資訊」。
- 啟用 Syslog:選取「是」。
- 按一下「提交」。
- 依序前往「設定」 > 「健康檢查設定」。
- 選取「Yes」(是),啟用健康狀態檢查服務。
- 請提供下列設定詳細資料:
- 記錄層級:選取「資訊」。
- 啟用 Syslog:選取「是」。
- 按一下「提交」。
- 依序前往「User Store」>「LDAP Directory Synchronization」。
- 編輯下列設定詳細資料:
- 「記錄層級」:選取「資訊」。
- 啟用 Syslog:選取「是」。
- 按一下「提交」。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
| 調度應用程式資源 | read_only_udm.principal.application | 從 JSON 篩選器擷取的「application」欄位值。 |
| 指令 | read_only_udm.target.process.command_line | 值取自 grok 模式擷取的 command 欄位。 |
| credentialType | 這個欄位不會直接對應至 UDM。用於衍生 read_only_udm.extensions.auth.mechanism 的值。 | |
| 資料 | 這個欄位不會直接對應至 UDM。系統會剖析這項資訊,擷取其他欄位。 | |
| data2 | 這個欄位不會直接對應至 UDM。系統會剖析這個欄位,擷取其他欄位。 | |
| 日期時間 | read_only_udm.metadata.event_timestamp.seconds read_only_udm.metadata.event_timestamp.nanos |
從 datetime 欄位擷取的秒數和奈秒數 (自 Epoch 起算)。 |
| 遞減 | read_only_udm.metadata.description | 值取自 JSON 篩選器擷取的 desc 欄位。 |
| 說明 | read_only_udm.security_result.description | 值取自 JSON 篩選器擷取的 description 欄位。 |
| filename | read_only_udm.target.process.file.full_path | 從 grok 模式擷取的 filename 欄位取得的值。 |
| 主機名稱 | read_only_udm.principal.hostname | 從 JSON 篩選器擷取的「hostname」欄位值。 |
| host_name | read_only_udm.intermediary.hostname | 值取自 JSON 篩選器擷取的 host_name 欄位。 |
| log_level | 這個欄位不會直接對應至 UDM。用於衍生 read_only_udm.security_result.severity 的值。 | |
| log_type | read_only_udm.metadata.product_event_type | 值取自 JSON 篩選器擷取的 log_type 欄位。 |
| msg | 這個欄位不會直接對應至 UDM。系統會剖析這項資訊,擷取其他欄位。 | |
| 作業 | read_only_udm.security_result.summary | 從 grok 模式擷取的 operation 欄位取得的值。 |
| processid | read_only_udm.target.process.pid | 從 grok 模式擷取的 processid 欄位取得的值。 |
| 產品 | read_only_udm.metadata.product_name | 從 JSON 篩選器擷取的「product」欄位值。 |
| 原因 | read_only_udm.metadata.description | 值取自 grok 模式擷取的 reason 欄位。 |
| request_id | read_only_udm.target.resource.id | 值取自 grok 模式擷取的 request_id 欄位。 |
| src_ip | read_only_udm.principal.ip | 值取自 grok 模式擷取的 src_ip 欄位。 |
| 狀態 | read_only_udm.metadata.description | 值取自 grok 模式擷取的 status 欄位。 |
| 摘要 | read_only_udm.security_result.summary | 從 JSON 篩選器擷取的「summary」欄位值。 |
| timestamp.nanos | read_only_udm.metadata.event_timestamp.nanos | 原始記錄時間戳記的奈秒。 |
| timestamp.seconds | read_only_udm.metadata.event_timestamp.seconds | 原始記錄時間戳記的秒數。 |
| 時間 | 這個欄位不會直接對應至 UDM。用於衍生 read_only_udm.metadata.event_timestamp.seconds 和 read_only_udm.metadata.event_timestamp.nanos 的值。 | |
| 使用者 | read_only_udm.target.user.userid | 值取自 JSON 篩選器或 grok 模式擷取的 user 欄位。 |
| vendor | read_only_udm.metadata.vendor_name | 值取自 JSON 篩選器擷取的 vendor 欄位。 |
| read_only_udm.extensions.auth.mechanism | 由 credentialType 欄位決定。如果 credentialType 為 SMS_OTP 或 STANDARD_OTP,則會使用 OTP。如果 credentialType 符合規則運算式 PASSWORD,則會使用 USERNAME_PASSWORD。 |
|
| read_only_udm.extensions.auth.type | 如果 reason 欄位符合規則運算式 LDAP,系統就會使用 SSO。否則,系統會使用 AUTHTYPE_UNSPECIFIED。 |
|
| read_only_udm.metadata.event_type | 取決於是否有特定欄位。如果 user 或 processid 不是空白,則會使用 USER_LOGIN。如果 user 為空值,且 src_ip 不是空值或 0.0.0.0,則會使用 STATUS_UPDATE。否則會使用 GENERIC_EVENT。 |
|
| read_only_udm.metadata.log_type | 硬式編碼為 SYMANTEC_VIP。 |
|
| read_only_udm.security_result.action | 由 status 欄位決定。如果 status 是 Authentication Success、GRANTED、Authentication Completed、After Services Authenticate call 或 CHALLENGED,則會使用 ALLOW。如果 status 是 DENIED、Acces-Reject、Unknown Error、Service Unavailable 或 FAILED,則會使用 BLOCK。如果 status 為 PUSH request sent for user 或 Trying to fetch attribute,則使用 QUARANTINE。 |
|
| read_only_udm.security_result.severity | 由 log_level 欄位決定。如果 log_level 是 DEBUG、INFO 或 AUDIT,則會使用 INFORMATIONAL。如果 log_level 為 ERROR,則會使用 ERROR。如果 log_level 為 WARNING,則會使用 MEDIUM。 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專家尋求解答。