收集 CyberArk 記錄

剖析器版本:8.0

支援的服務:

本文說明如何使用 Bindplane 代理程式,將 CyberArk 記錄檔擷取至 Google Security Operations。

CyberArk Privileged Access Manager (PAM) 是企業級特權存取安全解決方案,可保護、管理及監控地端部署和雲端環境中的特權帳戶和憑證。這項服務提供憑證保管、工作階段隔離和監控、透過特殊權限威脅分析 (PTA) 偵測威脅,以及所有特殊權限活動的全面稽核記錄。

事前準備

請確認您符合下列必要條件:

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
  • Bindplane 代理程式與 CyberArk Vault 伺服器之間的網路連線
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • CyberArk Vault Server 的管理員存取權 (可存取 Server\Conf 安裝資料夾)
  • CyberArk Vault 10.0 以上版本

取得 Bindplane 代理程式的 Google SecOps 憑證

如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:繼續使用擷取驗證檔案 (選項 2),直到 Ingestion API 於 2027 年 7 月 20 日停用。
  1. 登入 Google Cloud 控制台,然後選取連結至 Google SecOps 執行個體的 Google Cloud 專案。
  2. 依序前往 「IAM & Admin」(IAM 與管理) >「Service Accounts」(服務帳戶)。
  3. 按一下「建立服務帳戶」。
  4. 提供下列設定詳細資料:
    • 服務帳戶名稱:輸入帳戶名稱 (例如 bindplane-ingest)。
    • 「服務帳戶說明」:輸入說明 (例如 Bindplane agent log ingestion)。
  5. 點按「Create and continue」(建立並繼續)。
  6. 在「將專案存取權授予這個服務帳戶」部分,按一下「選取角色」,然後選取「Chronicle 編輯者」。
  7. 依序點選「繼續」和「完成」。
  8. 按一下您建立的服務帳戶,然後前往「金鑰」分頁。
  9. 依序點選「新增金鑰」>「建立新的金鑰」。
  10. 選取「JSON」,然後按一下「建立」。金鑰檔案會下載到電腦。
  11. 將金鑰檔案儲存為 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,使其與儲存檔案的路徑相符。
  12. 依序前往「IAM & Admin」(IAM 與管理) >「Settings」(設定),然後複製「Project number」(專案編號)。匯出工具設定時會用到。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM Settings」 > 「Collection Agents」。
  3. 下載擷取驗證檔案。
  4. 將檔案安全地儲存在要安裝 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
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

    服務狀態應為「RUNNING」。

Linux 安裝

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

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

    服務狀態應為「active (running)」。

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南。

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

找出設定檔

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

編輯設定檔

  1. 將 config.yaml 的全部內容替換為下列設定:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/cyberark:
        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: 'your-customer-id'
        endpoint: chronicle.googleapis.com
        log_type: CYBERARK
        raw_log_field: body
    
    service:
      pipelines:
        logs/cyberark_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/cyberark
    
  2. 請替換下列預留位置:

    • 接收端設定:

      • listen_address:要接聽的 IP 位址和通訊埠:

        • 0.0.0.0:514:監聽通訊埠 514 上的所有介面 (Linux 需有 root 權限)
        • 0.0.0.0:1514,在非具備權限的連接埠上接聽 (建議用於 Linux 非根目錄)
      • 接收器類型選項:

        • udplog:UDP 系統記錄 (CyberArk Vault 預設)
        • tcplog (適用於 TCP Syslog)
        • 如果 CyberArk Vault 是以 SyslogServerProtocol=TCP 設定,請使用 tcplog
    • 匯出工具設定:

      • creds_file_path:服務帳戶 JSON 金鑰檔案的完整路徑 (選項 1):

        • Linux:/opt/observiq-otel-collector/ingestion-auth.json
        • Windows:C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • customer_id:Google SecOps 客戶 ID

      • location:將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會在這個值前面加上 chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。

      • project:將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。

      • endpoint:維持設為 chronicle.googleapis.com。

舊版 Ingestion API 匯出工具

  • 如果您使用方式 2 的擷取驗證檔案,請將 exporters 區塊替換成下列內容。將 creds_file_path 設為擷取驗證檔案的路徑,如果您的執行個體位於美國境外,請將 malachiteingestion-pa.googleapis.com 替換為區域端點 (例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/cyberark:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'your-customer-id'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: CYBERARK
        raw_log_field: body
    

儲存設定檔

編輯完畢後,請儲存檔案:

  • Linux:依序按下 Ctrl+O、Enter 和 Ctrl+X
  • Windows:依序點選「檔案」>「儲存」

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

  • 如要在 Linux 重新啟動 Bindplane 代理程式,請按照下列步驟操作:

    1. 執行下列指令:

      sudo systemctl restart observiq-otel-collector
      
    2. 確認服務正在執行︰

      sudo systemctl status observiq-otel-collector
      
    3. 檢查記錄檔是否有錯誤:

      sudo journalctl -u observiq-otel-collector -f
      
  • 如要在 Windows 重新啟動 Bindplane 代理程式,請按照下列步驟操作:

    1. 您可以選擇下列其中一個選項:

      • 以管理員身分開啟命令提示字元或 PowerShell:

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • 服務控制台:

        1. 按下 Win+R 鍵,輸入 services.msc,然後按下 Enter 鍵。
        2. 找出「observIQ OpenTelemetry Collector」。
        3. 按一下滑鼠右鍵,然後選取「重新啟動」。
    2. 確認服務正在執行︰

      sc query observiq-otel-collector
      
    3. 查看記錄檔,找出錯誤:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

設定 CyberArk 系統記錄檔轉送功能

CyberArk Vault 會透過 syslog 傳送 CEF (通用事件格式) 的稽核事件。Vault 伺服器會使用 XSL 轉換器檔案,將 XML 稽核記錄轉換為 CEF 訊息,然後轉送至 Bindplane 代理程式。

設定 Vault 伺服器傳送系統記錄檔

  1. 以管理員權限登入 CyberArk Vault Server 主體機器。
  2. 前往 CyberArk Vault 伺服器安裝資料夾 (例如 `C:\Program Files (x86)\PrivateArk\Server\Conf`)。
  3. 使用文字編輯器開啟 DBParm.ini 檔案。
  4. 從 DBParm.sample.ini 檔案 (位於相同資料夾) 複製 [SYSLOG] 區段,然後貼到 DBParm.ini 底部。
  5. 在 [SYSLOG] 區段中設定下列系統記錄參數:

    [SYSLOG]
    SyslogServerIP=<BINDPLANE_AGENT_IP>
    SyslogServerPort=514
    SyslogServerProtocol=UDP
    UseLegacySyslogFormat=No
    SyslogTranslatorFile=Syslog\Arcsight.sample.xsl
    SyslogMessageCodeFilter=0-999
    
  6. 替換下列值:

    • SyslogServerIP:輸入 Bindplane 代理程式主機的 IP 位址 (例如 192.168.1.100)。
    • SyslogServerPort:輸入與 Bindplane 代理程式 listen_address 相符的通訊埠 (例如 514)。
    • SyslogServerProtocol:選取通訊協定:

      • UDP (預設)
      • TCP (適用於 TCP syslog)
    • SyslogTranslatorFile:輸入 CEF 格式的 XSL 轉譯器檔案:

      • Syslog\Arcsight.sample.xsl:標準 CEF 輸出 (建議)
    • SyslogMessageCodeFilter:輸入要轉寄的訊息代碼:

      • 0-999 轉寄所有活動
      • 指定個別代碼或範圍 (例如 1,2,3,5-10,30),篩選特定事件
    • UseLegacySyslogFormat:設為 No,即可使用 RFC 5424 格式。

  7. 儲存 DBParm.ini 檔案。

  8. 重新啟動 PrivateArk Server 服務:

    1. 開啟 Windows 服務 (services.msc)。
    2. 找出 CyberArk Vault 災難復原 服務並停止 (如果正在執行)。
    3. 找出 PrivateArk Server 服務。
    4. 按一下滑鼠右鍵,然後選取「重新啟動」。
    5. 再次啟動 CyberArk Vault 災難復原 服務 (如適用)。

將系統記錄轉送至多個目的地

  • 如要將 Vault 系統記錄事件轉送至 Bindplane 代理程式和其他目的地 (例如 PTA),請指定多個以半形逗號分隔的 IP 位址和轉譯器檔案:

    SyslogServerIP=<BINDPLANE_AGENT_IP>,<PTA_SERVER_IP>
    SyslogTranslatorFile=Syslog\Arcsight.sample.xsl,Syslog\PTA.xsl
    

設定 Privileged Threat Analytics (PTA) 系統記錄轉送功能 (選用)

如要將 PTA 安全性警示轉送至 Google SecOps,請設定 PTA SIEM 整合:

  1. 登入 PVWA (密碼保險箱網頁存取) 控制台。
  2. 依序前往 「Administration」 > 「Configuration Options」 > 「Privileged Threat Analytics」。
  3. 在「SIEM」SIEM部分,設定下列項目:
    • Syslog 伺服器 IP:輸入 Bindplane 代理程式主機的 IP 位址。
    • 系統記錄檔伺服器連接埠:輸入與 Bindplane 代理程式設定相符的連接埠 (例如 514)。
    • 通訊協定:選取「UDP」或「TCP」,與 Bindplane 代理程式接收器相符。
    • 格式:選取「CEF」。
  4. 按一下 [儲存]。

可用的 XSL 轉換器檔案

  • CyberArk Server 安裝資料夾中的 Syslog 子資料夾包含範例 XSL 轉換器檔案:

    翻譯檔案 格式 說明
    Arcsight.sample.xsl CEF 標準 CEF 格式 (建議用於 Google SecOps)
    SplunkCIM.xsl CIM Splunk Common Information Model 格式
    PTA.xsl 自訂 轉送至 CyberArk PTA 的格式
    XSIAM.xsl CEF Palo Alto Cortex XSIAM 格式

驗證系統記錄檔轉送

  1. 重新啟動 PrivateArk Server 服務後,請在 Vault 中執行測試動作 (例如擷取密碼或登入 PVWA)。
  2. 查看 Bindplane 代理記錄,確認是否有傳入的系統記錄訊息:
    • Linux:sudo journalctl -u observiq-otel-collector -f
    • Windows:type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
  3. 確認記錄檔中顯示 CEF 格式的訊息,例如:

    CEF:0|Cyber-Ark|Vault|10.0|22|CPM password retrieved|5|suser=Administrator src=10.0.0.1 fname=Root\operating system-server1-admin
    

UDM 對應表

記錄欄位 UDM 對應 邏輯
RequestId_label additional.fields 對應為鍵/值組合
Category_label additional.fields 對應為鍵/值組合
ExtraDetails_label additional.fields 對應為鍵/值組合
CAPolicy_label additional.fields 對應為鍵/值組合
line_number_label additional.fields 對應為鍵/值組合
pasvc_action_label additional.fields 對應為鍵/值組合
control_socket_label additional.fields 對應為鍵/值組合
data_socket_label additional.fields 對應為鍵/值組合
timeout_label additional.fields 對應為鍵/值組合
vault_name_label additional.fields 對應為鍵/值組合
class_name_label additional.fields 對應為鍵/值組合
status_label additional.fields 對應為鍵/值組合
Publisher_Event additional.fields 對應為鍵/值組合
Last_Event additional.fields 對應為鍵/值組合
Total_Events additional.fields 對應為鍵/值組合
cs1_var additional.fields 對應為鍵/值組合
cs3_var additional.fields 對應為鍵/值組合
app_var additional.fields 對應為鍵/值組合
reason_var additional.fields 對應為鍵/值組合
cs5_var additional.fields 對應為鍵/值組合
cs4_var additional.fields 對應為鍵/值組合
_auth_mechanism extensions.auth.mechanism 直接合併
dvc intermediary.ip 如果值符合 IP 位址模式
EventName metadata.description 如果程序不符合 exe 模式
act metadata.description 如果 fname 為空白
EventMessage metadata.description 如果 act 為空
LastEventDate metadata.event_timestamp 使用 ISO8601 或 yyyy-MM-ddTHH:mm:ss 格式轉換
_temp_datetime metadata.event_timestamp 轉換時使用 dd/MM/yyyy HH:mm:ss 格式
日期時間 metadata.event_timestamp 使用 ISO8601 或 MMM d HH:mm:ss 格式轉換
_event_type metadata.event_type 直接重新命名
名稱 metadata.event_type 根據條件設定:FILE_CREATION (「儲存檔案」)、USER_LOGIN (「登入」)、NETWORK_CONNECTION (如有主體和目標)、FILE_UNCATEGORIZED (如有目標檔案詳細資料)、PROCESS_UNCATEGORIZED (如有目標程序詳細資料)、STATUS_UPDATE (僅有主體)、NETWORK_UNCATEGORIZED (如有應用程式錯誤、主體和目標),否則為 GENERIC_EVENT
EventType metadata.product_event_type 直接對應
signature_id、name metadata.product_event_type 由 signature_id 和 name 串連而成
LastEventID metadata.product_log_id 已轉換為字串
tid metadata.product_log_id 直接對應
產品 metadata.product_name 直接重新命名
版本 metadata.product_version 直接重新命名
vendor metadata.vendor_name 直接重新命名
主機 observer.hostname 直接對應
LastEventUserName principal.administrative_domain 使用 grok 模式 domain\user 擷取
ApplicationType principal.application 直接對應
shost principal.asset.hostname 如果值不符合 IP 位址模式
shost principal.asset.hostname dhost 為空白時的備用值
shost principal.asset.ip 如果值符合 IP 位址模式
src principal.asset.ip 直接對應
ip_address principal.asset.ip 直接對應
shost principal.asset.ip dhost 為空白時的備用值
shost principal.ip 如果值符合 IP 位址模式,則合併
src principal.ip 直接合併
ip_address principal.ip 直接合併
位置 principal.location.name 直接對應
LastEventSourceName principal.platform 如果值符合 Windows 模式,請設為 WINDOWS
EventName principal.process.command_line 如果程序符合 EXE 模式
LastEventPackageName principal.resource.name 如果值不是 EventName
ApplicationType principal.user.attribute.roles 如果值等於 AdminTask,請設為 ADMINISTRATOR
LastEventUserName principal.user.user_display_name 使用 grok 模式 domain\user 擷取的使用者部分
user_name principal.user.user_display_name 直接對應
SourceUser principal.user.userid 直接對應
suser principal.user.userid 如果事件不是 USER_ 類型
usrName principal.user.userid 直接對應
__action security_result.action 直接合併
名稱 security_result.action 如果值開頭為「Failure」或「Failed」,則設為 BLOCK,否則設為 ALLOW
msg security_result.description 直接對應
msg, reason security_result.description 如果失敗條件,則從 msg 和 reason 串連
_sec_result_description security_result.description 直接對應
PolicyName security_result.rule_name 直接對應
cs2 security_result.rule_name 直接對應
嚴重性 security_result.severity 如果值 <= 5,請設為 LOW;如果值 <= 8,請設為 MEDIUM;否則請設為 HIGH
sev security_result.severity 直接對應
sev security_result.severity_details 直接對應
原因 security_result.summary 直接對應
名稱 security_result.summary 直接對應
dhost target.asset.hostname 如果值不符合 IP 位址模式
shost target.asset.hostname dhost 為空白時的備用值
dhost target.asset.ip 如果值符合 IP 位址模式
GatewayStation target.asset.ip 直接對應
shost target.asset.ip dhost 為空白時的備用值
FileQualifier target.asset_id 加上前置字串「資產 ID:」,並轉換為字串
檔案 target.file.full_path 直接對應
file_path target.file.full_path 直接對應
LastEventSourceName target.file.full_path 如果值開頭為「C:」
fname target.file.full_path 直接對應
雜湊 target.file.sha1 如果類型為 SHA1,則移除「SHA1##」前置字串,並將值轉換為小寫
GatewayStation target.ip 直接合併
pid target.process.pid 已轉換為字串
安全 target.resource.name 直接對應
user_name target.user.user_display_name 直接對應
TargetUser target.user.userid 直接對應
duser target.user.userid 直接對應
suser target.user.userid 如果事件為 USER_ 類型
event_msg.created event.idm.read_only_udm.metadata.collected_timestamp 從變更記錄對應
datetime event.idm.read_only_udm.metadata.event_timestamp 從變更記錄對應
Issuer event.idm.read_only_udm.principal.application 從變更記錄對應
Message event.idm.read_only_udm.security_result.description 從變更記錄對應
Station event.idm.read_only_udm.principal.ip、event.idm.read_only_udm.principal.asset.ip 從變更記錄對應
MessageID event.idm.read_only_udm.metadata.product_log_id 從變更記錄對應
Safe event.idm.read_only_udm.target.resource.name 從變更記錄對應
Version event.idm.read_only_udm.metadata.product_version 從變更記錄對應
usrName event.idm.read_only_udm.principal.user.userid 從變更記錄對應
src event.idm.read_only_udm.principal.ip 和 event.idm.read_only_udm.principal.asset.ip 從變更記錄對應
GatewayStation event.idm.read_only_udm.target.ip 和 event.idm.read_only_udm.target.asset.ip 從變更記錄對應
Reason event.idm.read_only_udm.security_result.summary 從變更記錄對應
Location event.idm.read_only_udm.principal.location.name 從變更記錄對應
File event.idm.read_only_udm.target.file.full_path 從變更記錄對應
RequestId security_result.detection_fields 從變更記錄對應
sev event.idm.read_only_udm.security_result 從變更記錄對應
Category event.idm.read_only_udm.additional.fields 從變更記錄對應
ExtraDetails event.idm.read_only_udm.additional.fields 從變更記錄對應
CAPolicy event.idm.read_only_udm.additional.fields 從變更記錄對應
status event.idm.read_only_udm.additional.fields 從變更記錄對應
class_name event.idm.read_only_udm.additional.fields 從變更記錄對應
vault_name event.idm.read_only_udm.additional.fields 從變更記錄對應
timeout event.idm.read_only_udm.additional.fields 從變更記錄對應
data_socket event.idm.read_only_udm.additional.fields 從變更記錄對應
control_socket event.idm.read_only_udm.additional.fields 從變更記錄對應
pasvc_action event.idm.read_only_udm.additional.fields 從變更記錄對應
line_number event.idm.read_only_udm.additional.fields 從變更記錄對應
ip_address event.idm.read_only_udm.principal.ip 和 event.idm.read_only_udm.principal.asset.ip 從變更記錄對應
file_path event.idm.read_only_udm.target.file.full_path 從變更記錄對應
tid event.idm.read_only_udm.metadata.product_log_id 從變更記錄對應
pid event.idm.read_only_udm.target.process.pid 從變更記錄對應
EventMessage event.idm.read_only_udm.metadata.description 從變更記錄對應
SourceUser event.idm.read_only_udm.principal.user.userid 從變更記錄對應
TargetUser event.idm.read_only_udm.target.user.userid 從變更記錄對應
user_name event.idm.read_only_udm.target.user.user_display_name 從變更記錄對應
host event.idm.read_only_udm.observer.hostname 從變更記錄對應

變更記錄

查看這個剖析器的變更記錄

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