收集 VMware vCenter 記錄

支援的國家/地區:

本文說明如何使用 Bindplane 將 VMware vCenter 記錄擷取至 Google Security Operations。剖析器會將原始記錄轉換為統一資料模型 (UDM)。系統會先嘗試將記錄資料剖析為 JSON,如果失敗,則會將資料視為系統記錄訊息,使用 grok 模式擷取欄位,並將這些欄位對應至 UDM 結構定義。

事前準備

請確認您已完成下列事前準備事項:

  • Google SecOps 執行個體
  • Windows 2016 以上版本,或搭載 systemd 的 Linux 主機
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟
  • VMware vCenter 的特殊存取權

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案。將檔案安全地儲存在要安裝 Bindplane 的系統上。

取得 Google SecOps 客戶 ID

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「設定檔」
  3. 複製並儲存「機構詳細資料」專區中的客戶 ID

安裝 Bindplane 代理程式

請按照下列操作說明,在 Windows 或 Linux 作業系統上安裝 Bindplane 代理程式。

Windows 安裝

  1. 以系統管理員身分開啟「命令提示字元」或「PowerShell」
  2. 執行下列指令:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Linux 安裝

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安裝資源

如需其他安裝選項,請參閱安裝指南

設定 Bindplane 代理程式,擷取系統記錄檔並傳送至 Google SecOps

  1. 存取設定檔:
    • 找出 config.yaml 檔案。通常位於 Linux 的 /etc/bindplane-agent/ 目錄,或 Windows 的安裝目錄。
    • 使用文字編輯器 (例如 nanovi 或記事本) 開啟檔案。
  2. 按照下列方式編輯 config.yaml 檔案:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'VMWARE_VCENTER'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • 視基礎架構需求,替換通訊埠和 IP 位址。
    • <customer_id> 替換為實際的客戶 ID。
    • /path/to/ingestion-authentication-file.json 更新為「取得 Google SecOps 擷取驗證檔案」一節中儲存驗證檔案的路徑。

重新啟動 Bindplane 代理程式,以套用變更

  • 如要在 Linux 中重新啟動 Bindplane 代理程式,請執行下列指令:

    sudo systemctl restart bindplane-agent
    
  • 如要在 Windows 中重新啟動 Bindplane 代理程式,可以使用「服務」控制台,或輸入下列指令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

設定 VMware vCenter 的系統記錄

  1. 登入 vCenter Server Management 網頁 UI。
  2. 依序前往「Syslog」>「Forwarding Configuration」>「Configure」
  3. 選取「建立轉送設定」,然後輸入 Bindplane 代理程式 IP 位址。
  4. 從「Protocol」(通訊協定) 下拉式選單中,根據實際的 Bindplane 代理程式設定,選取「UDP」或「TCP」
  5. 在「Port」(通訊埠) 區段中,輸入 Bindplane 代理程式通訊埠編號。
  6. 按一下 [儲存]
  7. 按一下「傳送測試訊息」,確認是否收到訊息。

UDM 對應表

記錄欄位 UDM 對應 邏輯
Access Mask principal.process.access_mask 從十六進位轉換為十進位。
Account Domain principal.administrative_domain
Account Name principal.user.userid
ApplicationProtocol additional.fields
Authentication Package security_result.about.resource.name
Client Address principal.ip、principal.asset.ip 已剖析為 IP。
Client Port principal.port 轉換成整數。
cmd target.process.command_line
date 時間戳記 系統會將其剖析為 yyyy-MM-dd,並與時間合併為 yyyy-MM-dd HH:mm:ss,剖析為日期。
date_time 時間戳記 以 RFC 3339、TIMESTAMP_ISO8601、SYSLOGTIMESTAMP 格式剖析為日期。
desc metadata.description
eventid metadata.product_event_type 與工作合併為 eventid - task。
host_name principal.hostname、principal.asset.hostname
http_method network.http.method
ip target.ip、target.asset.ip
kv_data1 剖析為鍵/值組合。
kv_data2 剖析為鍵/值組合。
kv_msg1.cipher network.tls.cipher
kv_msg1.ctladdr intermediary.labels
kv_msg1.daemon security_result.about.labels
kv_msg1.from network.email.from 如果 mail_from 不含 @,則會附加 @local。
kv_msg1.msgid network.email.mail_id
kv_msg1.proto security_result.about.labels
kv_msg1.relay intermediary.hostname、intermediary.ip 是否已剖析為 (HOSTNAME)?[IP] 或 HOSTNAME,如果 relay_domain 存在,則設為 intermediary.hostname;如果 relay_ip 存在,則合併至 intermediary.ip。
kv_msg1.size network.sent_bytes 已轉換為無正負號整數。
kv_msg1.stat security_result.summary
kv_msg1.verify security_result.description、security_result.action 如果 kv_msg1.verify 為 FAIL,則 security_result.action 會設為 BLOCK。
kv_msg1.version network.tls.version
labels.log_type metadata.product_event_type
labels.net.host.ip principal.ip、principal.asset.ip
labels.net.host.port principal.port
labels.net.peer.ip target.ip、target.asset.ip
labels.net.peer.port target.port
labels.net.transport network.ip_protocol 如果 labels.net.transport 是 TCP,則為 TCP。
level security_result.severity 如果層級為 INFO/Informational/DEBUG/info/Information,則為 INFORMATIONAL;如果層級為 ERROR/error,則為 ERROR;如果層級為 WARNING,則為 LOW。
log.file.path target.process.file.full_path
logName security_result.category_details
Logon Account principal.user.userid
Logon Type extensions.auth.mechanism 如果 logon_type 為 2/Interactive,則為 INTERACTIVE;如果 logon_type 為 3/8,則為 NETWORK;如果 logon_type 為 4,則為 BATCH;如果 logon_type 為 5,則為 SERVICE;如果 logon_type 為 7,則為 UNLOCK;如果 logon_type 為 9,則為 NEW_CREDENTIALS;如果 logon_type 為 10,則為 REMOTE_INTERACTIVE;如果 logon_type 為 11,則為 CACHED_INTERACTIVE;否則為 MECHANISM_UNSPECIFIED。
mail_from network.email.from 如果 mail_from 不含 @,則會附加 @local。
mail_to network.email.to 如果 mail_to 不含 @,則會附加 @local。
message 使用 grok 模式剖析。
namespace principal.namespace
port target.port 轉換成整數。
process_id target.process.pid
providername principal.application
Relative Target Name target.file.full_path
resource.labels.project_id src.cloud.project.id
resource.type src.labels
response_status network.http.response_code 轉換成整數。
sec_desc security_result.description
Security ID target.user.windows_sid
security_result_action_detail security_result.action_details
server_name target.hostname、target.asset.hostname
Share Name target.resource.name
Source Network Address principal.ip、principal.asset.ip 已剖析為 IP。
Source Port principal.port 轉換成整數。
summary security_result.summary
target_host target.hostname、target.asset.hostname
target_url target.url
target_userid target.user.userid
time 時間戳記 剖析為 HH:mm:ss,並與日期合併為 yyyy-MM-dd HH:mm:ss,剖析為日期。
upn_name intermediary.url
URL target.url
User ID target.user.windows_sid
user_id principal.user.userid
UserAgent network.http.user_agent
metadata.event_type 如果 msg 包含 API_HEALTH 或 JobDispatcher,請設為 STATUS_UPDATE;如果 msg 包含「logged in as」且 target_userid 不為空白,請設為 USER_LOGIN;如果 msg 包含「Leave Validate」,請設為 SCAN_HOST;如果 msg 包含「Getting IP Address from host」,請設為 NETWORK_UNCATEGORIZED;如果 msg 包含「Wrote vpxd health」,請設為 RESOURCE_WRITTEN;如果 has_principal 和 has_target 為 true 且 application_protocol 不為空白,請設為 NETWORK_HTTP;如果 process_id 和 cmd 不為空白,請設為 PROCESS_LAUNCH;如果 user_id 不為空白或 eventid 為 4776,請設為 USER_UNCATEGORIZED;如果 eventid 為 4624/4768/4769,請設為 USER_LOGIN;如果 eventid 為 4634/4647,請設為 USER_LOGOUT;如果 eventid 為 5145,請設為 USER_RESOURCE_ACCESS;如果 host_name 不為空白,請設為 STATUS_UPDATE;否則請設為 GENERIC_EVENT。
extensions.auth.type 如果 eventid 為 4624/4768/4769,請設為 MACHINE。
metadata.log_type 設為 VMWARE_VCENTER。
metadata.vendor_name 設為 VMWARE。
metadata.product_name 設為 VCENTER。
security_result.action 如果 response_status 為 200 或 action 為 Allow,則設為 ALLOW。

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