收集 BeyondTrust Secure Remote Access 記錄

支援的國家/地區:

本文說明如何使用 Bindplane 收集 BeyondTrust Secure Remote Access 記錄。剖析器會處理兩種系統記錄格式。第一種格式是在結構化訊息中使用鍵/值組合,第二種格式則使用以管道分隔的欄位;剖析器會從這兩種格式中擷取相關欄位,並將其對應至 UDM。此外,系統也會根據擷取的關鍵字將事件類型分類,並處理登入/登出事件和驗證類型的特定邏輯。

事前準備

  • 確認您有 Google Security Operations 執行個體。
  • 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
  • 確認您擁有 BeyondTrust Secure Remote Access 的特殊權限。

取得 Google SecOps 擷取驗證檔案

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

取得 Google SecOps 客戶 ID

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

安裝 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. 存取設定檔:

    1. 找出 config.yaml 檔案。通常位於 Linux 的 /etc/bindplane-agent/ 目錄,或 Windows 的安裝目錄。
    2. 使用文字編輯器 (例如 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: '/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
            ingestion_labels:
                log_type: BEYONDTRUST_REMOTE_ACCESS
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. 視基礎架構需求,替換通訊埠和 IP 位址。

  4. <customer_id> 替換為實際的客戶 ID。

  5. /path/to/ingestion-authentication-file.json 更新為「取得 Google SecOps 擷取驗證檔案」一節中儲存驗證檔案的路徑。

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

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

設定 BeyondTrust 遠端支援

  1. 登入 BeyondTrust 網頁版 UI。
  2. 依序選取「裝置」>「安全性」>「裝置管理」
  3. 在「系統記錄」Syslog部分執行下列操作:
    • 訊息格式:選取「舊版 BSD 格式」
    • 遠端系統記錄檔伺服器:輸入 Bindplane IP 位址和通訊埠。
  4. 按一下「提交」

UDM 對應表

記錄欄位 UDM 對應 邏輯
datetime metadata.event_timestamp 如果沒有 when 欄位,系統會使用 RFC3 339 格式,從 datetime 欄位剖析時間戳記。
deviceHost target.hostname deviceHost 的值會直接對應至 target.hostname
dstHost target.ip 驗證 dstHost 為有效 IP 位址後,系統會直接將其對應至 target.ip
dstPriv additional.fields.[key=dstPriv].value.string_value dstPriv 的值會放在 additional 欄位中,並以 dstPriv 做為鍵。
dstUid target.user.userid dstUid 的值會直接對應至 target.user.userid
dstUser target.user.user_display_name dstUser 的值會直接對應至 target.user.user_display_name
eventName metadata.event_type 如果 eventNamelogin (不區分大小寫),metadata.event_type 會設為 USER_LOGIN。如果 eventNamelogout (不區分大小寫),metadata.event_type 會設為 USER_LOGOUT。否則,如果 eventName 不是空白,metadata.event_type 會設為 USER_UNCATEGORIZED。如果 eventName 為空,且訊息符合第二個 grok 模式,則 metadata.event_type 會設為 GENERIC_EVENT。如果 eventName 為空,且訊息符合第一個 grok 模式,則 metadata.event_type 會設為 GENERIC_EVENT。如果 srcUiduseridwho 不為空白,則 metadata.event_type 會設為 USER_CHANGE_PERMISSIONS。如果 deviceHostsite 不為空白,metadata.event_type 會設為 USER_UNCATEGORIZED。否則,metadata.event_type 會設為 GENERIC_EVENT
event_name additional.fields.[key=event_name].value.string_value event_name 的值會放在 additional 欄位中,並以 event_name 做為鍵。
event_name metadata.product_event_type event_name 的值會與 id 欄位搭配使用,以 [id] -event_name`` 格式填入 metadata.product_event_type
externalKeyLabel additional.fields.[key=externalKeyLabel].value.string_value externalKeyLabel 的值會放在 additional 欄位中,並以 externalKeyLabel 做為鍵。
id metadata.product_event_type id 的值會與 event_name 欄位搭配使用,以 [id] -event_name`` 格式填入 metadata.product_event_type
jumpGroupId additional.fields.[key=jumpGroupId].value.string_value jumpGroupId 的值會放在 additional 欄位中,並以 jumpGroupId 做為鍵。
jumpGroupName additional.fields.[key=jumpGroupName].value.string_value jumpGroupName 的值會放在 additional 欄位中,並以 jumpGroupName 做為鍵。
jumpGroupType additional.fields.[key=jumpGroupType].value.string_value jumpGroupType 的值會放在 additional 欄位中,並以 jumpGroupType 做為鍵。
jumpointId additional.fields.[key=jumpointId].value.string_value jumpointId 的值會放在 additional 欄位中,並以 jumpointId 做為鍵。
jumpointName additional.fields.[key=jumpointName].value.string_value jumpointName 的值會放在 additional 欄位中,並以 jumpointName 做為鍵。
kv_data 各種 UDM 欄位 kv_data 欄位會剖析為鍵/值組合,然後根據鍵 (例如 eventNamewhenwhowho_ipsitetargetstatusreason)。
kvdata 各種 UDM 欄位 kvdata 欄位會剖析為鍵/值組合,然後根據鍵 (例如 msgsrcUsersrcUidsrcHostdstUserdstUiddstHostsessionIdjumpointIdjumpointNamejumpGroupIdjumpGroupNamejumpGroupTypeexternalKeyLabeldstPriv)。
message 各種 UDM 欄位 系統會使用 grok 模式剖析 message 欄位,擷取各種欄位,然後對應至 UDM 欄位。
msg metadata.description msg 的值會直接對應至 metadata.description
product_event_type metadata.product_event_type product_event_type 的值會直接對應至 metadata.product_event_type
product_log_id metadata.product_log_id product_log_id 的值會直接對應至 metadata.product_log_id
process_id principal.process.pid process_id 的值會直接對應至 principal.process.pid
reason security_result.description reason 的值會直接對應至 security_result.description
segment_number additional.fields.[key=segment_number].value.string_value segment_number 的值會放在 additional 欄位中,並以 segment_number 做為鍵。
sessionId network.session_id sessionId 的值會直接對應至 network.session_id
site target.hostname site 的值會直接對應至 target.hostname
site_id additional.fields.[key=site_id].value.string_value site_id 的值會放在 additional 欄位中,並以 site_id 做為鍵。
srcHost principal.ip 驗證 srcHost 為有效 IP 位址後,系統會直接將其對應至 principal.ip
srcUid principal.user.userid srcUid 的值會直接對應至 principal.user.userid
srcUser principal.user.user_display_name srcUser 的值會直接對應至 principal.user.user_display_name
status security_result.action 如果 statusfailure (不區分大小寫),security_result.action 會設為 BLOCK。否則,security_result.action 會設為 ALLOW
status security_result.action_details status 的值會直接對應至 security_result.action_details
target target.application target 的值會直接對應至 target.applicationrep_client 會替換為 Representative Consoleweb/login 則會替換為 Web/Login
target extensions.auth.type 如果 targetrep_client,則 extensions.auth.type 會設為 MACHINE。如果 targetweb/login,則 extensions.auth.type 會設為 SSO。否則,extensions.auth.type 會設為 AUTHTYPE_UNSPECIFIED
timestamp metadata.event_timestamp 如果沒有 datetimewhen,系統會使用原始記錄中的 timestamp 做為備用值。
total_segments additional.fields.[key=total_segments].value.string_value total_segments 的值會放在 additional 欄位中,並以 total_segments 做為鍵。
device_product additional.fields.[key=device_product].value.string_value device_product 的值會放在 additional 欄位中,並以 device_product 做為鍵。
device_vendor additional.fields.[key=device_vendor].value.string_value device_vendor 的值會放在 additional 欄位中,並以 device_vendor 做為鍵。
device_version metadata.product_version device_version 的值會直接對應至 metadata.product_version
when metadata.event_timestamp 如果存在,系統會使用 UNIX 格式從 when 欄位剖析時間戳記。
who principal.user.userid 如果 who 欄位符合規則運算式模式,系統會將擷取的 userid 對應至 principal.user.userid。否則,整個 who 欄位會對應至 principal.user.userid
who principal.user.user_display_name 如果 who 欄位符合規則運算式模式,系統會將擷取的 user_display_name 對應至 principal.user.user_display_name
who_ip principal.ip who_ip 的值會直接對應至 principal.ip
(剖析器邏輯) metadata.log_type 記錄類型設為 BEYONDTRUST_REMOTE_ACCESS
(剖析器邏輯) metadata.product_name 產品名稱已設為「BeyondTrust Secure Remote Access」。
(剖析器邏輯) metadata.vendor_name 供應商名稱已設為「BeyondTrust」。
(剖析器邏輯) security_result.summary 該值是使用 User %{eventName} 格式衍生而來。
(剖析器邏輯) extensions.auth.mechanism 如果 method 包含 using password,機制會設為 USERNAME_PASSWORD。如果 method 包含 using elevate,機制會設為 REMOTE

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