收集 Tanium Asset 記錄

支援的服務:

本文說明如何使用兩種不同方法,將 Tanium 資產記錄擷取至 Google Security Operations。

您可以選擇使用 Tanium Connect 的原生 Amazon S3 匯出功能,或是透過 Bindplane 轉送即時系統記錄。這兩種方法都會使用 Tanium Connect 模組,從 Tanium 擷取資產資料,並轉送至 Chronicle 進行分析和監控。

事前準備

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

  • Google SecOps 執行個體
  • 具備 Tanium 主控台 (Connect 模組) 的特殊權限,可設定匯出目的地
  • 選擇偏好的整合方式:
    • 選項 1 (建議):具備 AWS (S3、IAM) 的專屬存取權,可進行原生 S3 匯出作業
    • 方法 2:安裝 Bindplane 代理程式的 Windows 2016 以上版本或 Linux 主機 (含 systemd)

方法 1:使用 AWS S3 設定 Tanium Asset 記錄匯出功能

建立 Amazon S3 儲存貯體

  1. 按照這份使用手冊建立 bucket,建立 Amazon S3 bucket
  2. 儲存 bucket 的「名稱」和「區域」,以供日後參考 (例如 tanium-asset-logs)。
  3. 按照這份使用者指南建立使用者:建立 IAM 使用者。
  4. 選取建立的使用者。
  5. 選取「安全憑證」分頁標籤。
  6. 在「Access Keys」部分,按一下「Create Access Key」。
  7. 在「用途」部分選取「第三方服務」。
  8. 點選「下一步」。
    • 選用:新增說明標記。
  9. 按一下「Create access key」。
  10. 按一下「Download .csv file」,儲存「Access Key」和「Secret Access Key」,以供日後參考。
  11. 按一下「完成」。
  12. 選取「權限」分頁標籤。
  13. 在「權限政策」部分,按一下「新增權限」。
  14. 選取「新增權限」。
  15. 選取「直接附加政策」。
  16. 搜尋 AmazonS3FullAccess 政策。
  17. 選取政策。
  18. 點選「下一步」。
  19. 按一下「Add permissions」。

設定 Tanium Connect 以匯出至 S3

  1. 以管理員權限登入 Tanium 控制台。
  2. 依序前往「模組」>「連結」>「總覽」,然後按一下「建立連結」。
  3. 點選「建立」。
  4. 提供下列設定詳細資料:
    • 名稱:輸入描述性名稱 (例如 Google SecOps Asset S3 Export)。
    • 說明:這項連線的選填說明。
    • 啟用:選取「啟用」,即可按照時間表執行。
  5. 點選「下一步」。
  6. 在「來源」設定中:
    • 來源:選取「已儲存的問題」。
    • 問題:選擇現有已儲存的問題 (會傳回資產資料),或使用資產相關感應器 (例如電腦名稱、IP 位址、OS 平台、網域) 建立新問題。
    • 電腦群組:選取要收集資產資料的電腦群組。
  7. 點選「下一步」。
  8. 在「目的地」設定中:
    • 目的地:選擇「AWS S3」。
    • 「Name」(名稱):輸入目的地名稱 (例如 Chronicle Asset S3)。
    • AWS 存取金鑰 ID:輸入 IAM 使用者的存取金鑰 ID。
    • AWS 存取密鑰:輸入 IAM 使用者的存取密鑰。
    • S3 值區名稱:tanium-asset-logs。
    • S3 Key Prefix:tanium/assets/ (選用的組織前置字串)。
    • Region:選取 S3 bucket 所在的 AWS 區域。
  9. 點選「下一步」。
  10. 在「Formatting」(格式設定) 設定中:
    • 格式:選取「JSON」,匯出結構化資料。
    • 欄:選取要匯出的素材資源欄位,並適當設定格式。
  11. 點選「下一步」。
  12. 在「Schedule」(排程) 設定中:
    • 排程:設定傳送排程 (例如每小時或每天)。
    • 開始日期/時間:設定連線的開始時間。
  13. 按一下「儲存」建立連結,並開始自動匯出 S3。

(選用) 為 Google SecOps 建立唯讀 IAM 使用者和金鑰

  1. 前往 AWS 控制台 > IAM > 使用者 > 新增使用者。
  2. 點選 [Add users] (新增使用者)。
  3. 請提供下列設定詳細資料:
    • User:輸入 secops-reader。
    • Access type:選取「Access key — Programmatic access」。
  4. 點選「Create user」。
  5. 附加最低讀取權限政策 (自訂):依序選取「Users」>「secops-reader」>「Permissions」>「Add permissions」>「Attach policies directly」>「Create policy」。
  6. JSON:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::tanium-asset-logs/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::tanium-asset-logs"
        }
      ]
    }
    
  7. Name = secops-reader-policy。

  8. 依序點選「建立政策」 >「搜尋/選取」 >「下一步」 >「新增權限」。

  9. 為 secops-reader 建立存取金鑰:依序點選「安全憑證」>「存取金鑰」>「建立存取金鑰」> 下載 .csv (您會將這些值貼到動態饋給中)。

在 Google SecOps 中設定資訊提供,擷取 Tanium 資產記錄

  1. 依序前往 「SIEM 設定」 > 「動態饋給」。
  2. 按一下「+ 新增動態饋給」。
  3. 在「Feed name」(動態饋給名稱) 欄位中,輸入動態饋給名稱 (例如 Tanium Asset logs)。
  4. 在「來源類型」部分,選取「Amazon S3 V2」。
  5. 選取「Tanium Asset」做為「記錄類型」。
  6. 點選「下一步」。
  7. 指定下列輸入參數的值:
    • S3 URI:s3://tanium-asset-logs/tanium/assets/
    • 來源刪除選項:根據偏好選取刪除選項。
    • 檔案存在時間上限:納入在過去天數內修改的檔案。預設為 180 天。
    • 存取金鑰 ID:具有 S3 儲存貯體存取權的使用者存取金鑰。
    • 私密存取金鑰:具有 S3 bucket 存取權的使用者私密金鑰。
    • 資產命名空間:資產命名空間。
    • 擷取標籤:套用至這個動態饋給事件的標籤。
  8. 點選「下一步」。
  9. 在「Finalize」(完成) 畫面中檢查新的新聞動態消息設定,然後按一下「Submit」(提交)。

方法 2:使用系統記錄和 Bindlane 設定 Tanium Asset 記錄匯出功能

取得 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 設定」>「收集代理程式」。
  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
    

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 代理程式安裝指南。

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

  1. 存取設定檔:

    • 找出 config.yaml 檔案。通常位於 Linux 的 /opt/observiq-otel-collector/ 目錄,或 Windows 的安裝目錄。
    • 使用文字編輯器 (例如 nano、vi 或記事本) 開啟檔案。
  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:
        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
        # 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: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'TANIUM_ASSET'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • 請根據基礎架構需求,替換通訊埠和 IP 位址。
    • 將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會以這個值做為 chronicle.googleapis.com 的前置字元。
    • 將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。
    • 將 <PLACEHOLDER_CUSTOMER_ID> 替換為實際的客戶 ID。
    • 將 /path/to/ingestion-authentication-file.json 更新為服務帳戶金鑰檔案 (選項 1) 在步驟 1 中儲存的檔案路徑。

舊版 Ingestion API 匯出工具

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

    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: <PLACEHOLDER_CUSTOMER_ID>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'TANIUM_ASSET'
        raw_log_field: body
        ingestion_labels:
    

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

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

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

    net stop observiq-otel-collector && net start observiq-otel-collector
    

在 Tanium Asset 上設定 Syslog 轉送

  1. 以管理員權限登入 Tanium 控制台。
  2. 依序前往「模組」>「連結」>「總覽」,然後按一下「建立連結」。
  3. 點選「建立」。
  4. 提供下列設定詳細資料:
    • 名稱:輸入描述性名稱 (例如 Google SecOps Asset Integration)。
    • 說明:這項連線的選填說明。
    • 啟用:選取「啟用」,即可按照時間表執行。
  5. 點選「下一步」。
  6. 在「來源」設定中:
    • 來源:選取「已儲存的問題」。
    • 問題:選擇現有已儲存的問題 (會傳回資產資料),或使用資產相關感應器建立新問題。
    • 電腦群組:選取要收集資產資料的電腦群組。
  7. 點選「下一步」。
  8. 在「Destination」(目的地) 設定中:
    • 目的地:選擇「SIEM/Syslog」。
    • 「Name」(名稱):輸入目的地名稱 (例如 Chronicle Asset Syslog)。
    • Host:輸入 Bindplane IP。
    • 通訊埠:輸入 Bindplane 通訊埠編號 (例如 514)。
    • 「通訊協定」:選取「UDP」。
    • 格式:選取「SYSLOG RFC 5424」。
    • 時區:選取「UTC」時區,確保系統間的時間一致。
  9. 點選「下一步」。
  10. 在「Formatting」(格式設定) 設定中:
    • 格式:選取「JSON」。
    • 欄:選取要轉送的資產欄位 (例如電腦名稱、IP 位址、作業系統平台、網域)。
  11. 點選「下一步」。
  12. 在「排程」設定中:
    • 排程:設定傳送排程 (例如每小時)。
    • 開始日期/時間:設定連線的開始時間。
  13. 按一下「儲存」即可建立連線並開始轉送。

UDM 對應表

記錄欄位 UDM 對應 邏輯
application_name entity.metadata.source_labels.value 如果原始記錄中有「application_name」欄位,則會從該欄位擷取值。
application_vendor entity.metadata.source_labels.value 如果原始記錄中存在「application_vendor」欄位,系統會從該欄位擷取值。
application_version entity.metadata.product_version 如果原始記錄中有「application_version」欄位,系統會從該欄位擷取值。
BIOS_Current_Language entity.metadata.source_labels.value 如果原始記錄中存在「BIOS_Current_Language」欄位,系統會從該欄位取得值。
BIOS_Release_Date entity.metadata.source_labels.value 如果原始記錄中有「BIOS_Release_Date」欄位,系統會從該欄位擷取值。
BIOS_Vendor entity.metadata.source_labels.value 如果原始記錄中存在「BIOS_Vendor」欄位,系統會從該欄位擷取值。
BIOS_Version entity.metadata.product_version 如果原始記錄中有「BIOS_Version」欄位,系統會從該欄位擷取值。
Chassis Type entity.entity.asset.category 如果原始記錄中存在「機殼類型」欄位,系統會從該欄位取得值。
Computer ID entity.entity.asset.product_object_id 如果原始記錄中存在「電腦 ID」欄位,系統會從該欄位擷取值。也會用來填入 entity.relations.entity.asset.asset_id,並加上「id: 」前置字串。
Computer Name entity.entity.asset.hostname 如果原始記錄中存在「電腦名稱」欄位,系統會從該欄位擷取值。
Count entity.metadata.source_labels.value 如果原始記錄中存在「Count」欄位,系統會從該欄位擷取值。
Endpoint Fingerprint entity.entity.asset.hardware.serial_number 如果原始記錄中存在「端點指紋」欄位,系統會從該欄位擷取值。
IP Address entity.entity.asset.ip 系統會從「IP Address」欄位擷取值,並以獨立 IP 位址的形式新增至陣列。
Last Logged In User entity.relations.entity.user.userid 值取自「上次登入的使用者」欄位,並移除原始記錄中的任何網域前置字元。
Last Reboot entity.entity.asset.last_boot_time 如果原始記錄中有「Last Reboot」欄位,系統會剖析該欄位的值,並將其格式化為時間戳記。
MAC Address entity.entity.asset.mac 系統會從「MAC 位址」欄位擷取值,並以個別 MAC 位址的形式新增至陣列。
Manufacturer entity.entity.asset.hardware.manufacturer 如果原始記錄中存在「製造商」欄位,系統會從該欄位取得值。
Operating System entity.entity.asset.platform_software.platform_version 如果原始記錄中存在「作業系統」欄位,系統會從該欄位擷取值。用於判斷 entity.entity.asset.platform_software.platform 的值 (WINDOWS、LINUX 或 MAC)。
platform entity.entity.asset.platform_software.platform_version 如果原始記錄中有「platform」欄位,系統會從該欄位擷取值。用於判斷 entity.entity.asset.platform_software.platform 的值 (WINDOWS、LINUX 或 MAC)。
serial_number entity.entity.asset.hardware.serial_number 如果原始記錄中存在「serial_number」欄位,系統會從該欄位擷取值。
version entity.entity.asset.platform_software.platform_version 如果原始記錄中存在「版本」欄位,系統會從該欄位擷取值。用於判斷 entity.entity.asset.platform_software.platform 的值 (WINDOWS、LINUX 或 MAC)。
不適用 entity.metadata.collected_timestamp 設為批次的 create_time。
不適用 entity.metadata.vendor_name 一律設為「TANIUM_ASSET」。
不適用 entity.metadata.product_name 一律設為「TANIUM_ASSET」。
不適用 entity.metadata.entity_type 一律設為「ASSET」。
不適用 entity.relations.entity_type 一律設為「USER」。
不適用 entity.relations.relationship 一律設為「OWNS」。
comp_serial_num _asset_entity.asset.product_object_id 從變更記錄對應
application_name", "count", "application_vendor", "BIOS_Release_Date", "BIOS_Vendor", and "BIOS_Current_Language metadata.source_labels 從變更記錄對應
application_version" and "BIOS_Version metadata.product_version 從變更記錄對應
computer_id entity.asset.asset_id 從變更記錄對應
comp_serial_num hardware.serial_number 從變更記錄對應

變更記錄

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

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