收集 Sophos Capsule8 記錄

支援的國家/地區:

本文說明如何使用 Bindplane 收集 Sophos Linux Sensor (舊稱 Capsule8) 記錄。Sophos Capsule8 會使用 eBPF 技術在核心層級偵測及回應威脅,為 Linux 工作負載、容器和 Kubernetes 環境提供執行階段防護。剖析器會先擷取並建構 JSON 格式的記錄資料,接著,系統會將擷取的欄位對應至 Chronicle 統合資料模型 (UDM) 中的相應屬性,著重於中繼資料、安全性結果和主體資訊。

事前準備

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

  • Google SecOps 執行個體
  • Windows 2016 以上版本,或搭載 systemd 的 Linux 主機
  • 另一部 Windows 或 Linux 電腦,能夠持續執行 Python
  • 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • Sophos Central 管理控制台的特殊權限
  • 部署在 Linux 系統上的 Sophos Linux Sensor (舊稱 Capsule8)

設定 Sophos Linux Sensor,將快訊匯出至 Sophos Central

設定整合功能前,請先設定 Sophos Linux Sensor,將快訊資料傳送至 Sophos Central。

整合 Sophos Central 的必要條件

  1. Sophos Linux Sensor 5.5.2.22 以上版本。
  2. 下列其中一種授權:
    • Intercept X Advanced for Server with XDR
    • Central Managed Detection and Response Essential Server
    • 中央代管偵測與應變完整伺服器
  3. 您的 Sophos Central MCS 網址和租戶 ID。
  4. 有效的 SLS 套件存放區 API 權杖。

找出 MCS 網址

  1. 登入 Sophos Central
  2. 依序點選「帳戶名稱」>「支援設定」
  3. 尋找以 This account is located 開頭的行,即可瞭解 Sophos Central 帳戶所在的地理區域
  4. 請參閱下表,根據您所在的區域找出 MCS 網址

    區域 MCS 網址
    美國 (奧勒岡州) mcs2-cloudstation-us-west-2.prod.hydra.sophos.com
    美國 (俄亥俄州) mcs2-cloudstation-us-east-2.prod.hydra.sophos.com
    愛爾蘭 mcs2-cloudstation-eu-west-1.prod.hydra.sophos.com
    德國 mcs2-cloudstation-eu-central-1.prod.hydra.sophos.com
    加拿大 mcs2.stn100yul.ctr.sophos.com
    澳洲 mcs2.stn100syd.ctr.sophos.com
    亞太地區 (東京) mcs2.stn100hnd.ctr.sophos.com
    南美洲 (聖保羅) mcs2.stn100gru.ctr.sophos.com

如果表格中沒有您所在的區域,請使用 mcs2.stn100bom.ctr.sophos.com 做為 MCS 網址。

設定 Sophos Linux Sensor 警報輸出

  1. 在文字編輯器中開啟 /etc/sophos/runtimedetections.yaml
  2. 新增下列幾行,將預留位置值替換為實際的 Sophos Central 詳細資料:

    send_labs_telemetry: true
    endpoint_telemetry_enabled: true
    cloud_meta: auto
    
    # Set your customer id:
    customer_id: "{tenant-id}"
    
    mcs:
      token: "{LINUX_REPO_API_KEY}"
      url: "{MCS_URL}"
      enabled: true
    
  3. 儲存變更並結束。

  4. 重新啟動感應器:

    systemctl restart sophoslinuxsensor
    

選用:設定 Sophos Linux Sensor,將中繼事件傳送至資料湖

從 5.11.0 版開始,SLS 支援將事件資料傳送至 Sophos Data Lake。

  1. 在文字編輯器中開啟 /etc/sophos/runtimedetections.yaml
  2. 新增下列設定:

    investigations:
      reporting_interval: 5s
      zeromq:
        topics:
        - process_events: running_processes_linux_events
          audit_user_msg: user_events_linux
      sinks:
      - backend: mcs
        name: "mcs"
        type: mcs
      flight_recorder:
        enabled: true
        tables:
        - name: "process_events"
          enabled: true
          rows: 1000
          filter:
          - match eventType == "PROCESS_EVENT_TYPE_EXEC"
          - match eventType == "BASELINE_TASK"
          - default ignore
        - name: "audit_user_msg"
          enabled: true
          rows: 1000
          filter:
          - ignore programName == "cron"
          - ignore processPid == 1
          - default match
    
  3. 儲存變更並結束。

  4. 重新啟動感應器:

    systemctl restart sophoslinuxsensor
    

取得 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_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: 'SOPHOS_CAPSULE8'
        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
    

設定 Sophos Central API 存取權

  1. 登入 Sophos Central Admin
  2. 依序選取「通用設定」>「API 權杖管理」
  3. 按一下「新增權杖」即可建立新權杖。
  4. 輸入權杖名稱並點選「儲存」;(系統會顯示所提供權杖的「API 權杖摘要」)。
  5. 在「API 權杖摘要」部分中,按一下「複製」,複製 API 存取網址和標頭。

在其他機器上安裝 Python

  1. 開啟網路瀏覽器,然後前往 Python 網站
  2. 按一下適用於您作業系統的「下載 Python」
  3. 安裝 Python:

    • Windows:
      1. 執行安裝程式。
      2. 勾選「Add Python to PATH」方塊。
      3. 按一下「立即安裝」
    • 使用 Mac 電腦:

      1. Python 可能已安裝完畢,如果沒有,您可以使用終端機安裝最新版本。
      2. 開啟「終端機」並輸入下列指令:

        python --version
        

下載 Sophos 整合指令碼

  1. 前往 Sophos Central SIEM Integration GitHub 存放區的 GitHub 頁面。
  2. 按一下綠色的「Code」按鈕 >「Download ZIP」
  3. 解壓縮 ZIP 檔案。

設定指令碼

  1. 在解壓縮 ZIP 封存檔的目錄中開啟 config.ini 檔案。
  2. 編輯設定檔:
    • API 權杖:輸入先前從 Sophos Central 複製的 API 金鑰。
    • 系統記錄檔伺服器詳細資料:輸入系統記錄檔伺服器的詳細資料。
    • 主機:輸入 BindPlane 代理程式 IP 位址。
    • 「Port」(通訊埠):輸入 BindPlane 代理程式通訊埠編號。
    • 通訊協定:輸入 UDP (您也可以視設定使用 TCPTLS)。
  3. 儲存檔案。

執行指令碼

  1. 前往指令碼資料夾。

    • 使用 Windows 電腦:

      1. 按下 Windows 鍵,然後輸入 cmd
      2. 按一下「命令提示字元」
      3. 前往指令碼資料夾:
      cd C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
    • 在 macOS 上執行下列操作:

      1. 依序前往「應用程式」>「工具程式」
      2. 開啟 [Terminal]
      3. 前往指令碼資料夾:
      cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
  2. 執行指令碼:

    • 輸入下列指令來啟動指令碼:

      python siem.py
      

在 Windows 上自動執行指令碼 (使用工作排程器):

  1. 在「開始」選單中輸入「工作排程器」,開啟工作排程器。
  2. 按一下「建立工作」
  3. 在「一般」分頁中:
    • 為工作命名 (例如 Sophos AV Log Export)。
  4. 在「觸發條件」分頁中:
    • 按一下「新增」,然後視需要將工作設為「每日」或「啟動時」執行。
  5. 在「動作」分頁中:
    • 按一下「新增」,然後選取「開始計畫」
    • 瀏覽 python.exe 可執行檔 (通常位於 C:/Python/XX/python.exe)。
    • 在「Add arguments」(新增引數) 欄位中,輸入指令碼的路徑 (例如 C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integrationsiem.py)。
  6. 按一下「確定」儲存工作。

自動執行指令碼,在 Mac 上持續運作 (使用 Cron Jobs):

  1. 開啟終端機。
  2. 輸入 crontab -e,然後按下 Enter 鍵。
  3. 在檔案結尾處加上新的一行:

    * * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
    
  4. 按一下「儲存」並結束編輯器。

UDM 對應表

記錄欄位 UDM 對應 邏輯
類別 read_only_udm.security_result.category_details 系統會將類別陣列中的每個元素新增為個別的 category_details。
留言 read_only_udm.security_result.description 直接從註解欄位對應。
信賴度 read_only_udm.security_result.severity_details 直接從信賴度欄位對應。
說明 read_only_udm.security_result.summary 直接從說明欄位對應。
incident_id read_only_udm.security_result.rule_id 直接從 incident_id 欄位對應。
歷程 principal.process.parent_process... 系統會使用沿襲陣列填入父項程序鏈,最多可深入 15 個層級。譜系陣列中的每個元素都代表鏈結中的一個程序,索引 0 是直接父項,索引越高則代表更遠的祖先。每個沿襲元素的 pid 和 name 欄位都會對應至 UDM 中的相應欄位。
location.container_id principal.labels.value 直接從 location.container_id 欄位對應。對應的鍵會設為「container_id」。
location.container_labels.maintainer principal.labels.value 直接從 location.container_labels.maintainer 欄位對應。對應的鍵會設為「maintainer」。
location.container_name principal.labels.value 直接從 location.container_name 欄位對應。對應的鍵會設為「container_name」。
location.image_id principal.labels.value 直接從 location.image_id 欄位對應。對應的鍵會設為「image_id」。
location.image_name principal.labels.value 直接從 location.image_name 欄位對應。對應的鍵會設為「image_name」。
location.kubernetes_namespace principal.labels.value 直接從 location.kubernetes_namespace 欄位對應。對應的鍵會設為「kubernetes_namespace」。
location.kubernetes_pod principal.labels.value 直接從 location.kubernetes_pod 欄位對應。對應的鍵會設為「kubernetes_pod」。
matched_rule read_only_udm.security_result.rule_name 直接從 matched_rule 欄位對應。
metadata.gcp_instance_hostname principal.hostname 直接從 metadata.gcp_instance_hostname 欄位對應。
metadata.gcp_instance_zone principal.cloud.availability_zone 可用區是使用規則運算式,從 metadata.gcp_instance_zone 欄位擷取。
metadata.gcp_project_id principal.cloud.project.name 直接從 metadata.gcp_project_id 欄位對應。
metadata.gcp_project_numeric_id principal.cloud.project.id 直接從 metadata.gcp_project_numeric_id 欄位對應。
metadata.network_interface_eth0_addr_0 principal.ip 系統會使用規則運算式,從 metadata.network_interface_eth0_addr_0 欄位擷取 IP 位址。
metadata.network_interface_eth0_hardware_addr principal.mac 直接從 metadata.network_interface_eth0_hardware_addr 欄位對應。
policy_type read_only_udm.metadata.product_event_type 直接從 policy_type 欄位對應。
process_info.args principal.labels.value process_info.args 陣列中的每個元素都會新增為個別標籤。索引鍵會設為「process_info.arg[index]」,其中 index 是陣列中引數的位置。
process_info.name principal.process.file.full_path 直接從 process_info.name 欄位對應。
process_info.pid principal.process.pid 直接從 process_info.pid 欄位對應。
process_info.ppid principal.process.parent_process.pid 直接從 process_info.ppid 欄位對應。
優先順序 read_only_udm.security_result.severity 直接從優先順序欄位對應,並轉換為大寫。
時間戳記 read_only_udm.metadata.event_timestamp 直接從時間戳記欄位對應。
uuid read_only_udm.metadata.product_log_id 直接從 UUID 欄位對應。
不適用 read_only_udm.metadata.log_type 設為「SOPHOS_CAPSULE8」常數值。
不適用 read_only_udm.metadata.event_type 設為「SCAN_HOST」常數值。
不適用 read_only_udm.metadata.vendor_name 設為「Sophos」常數值。
不適用 read_only_udm.metadata.product_name 設為「Capsule8」的常數值。

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