收集 Array Networks SSL VPN 記錄

剖析器版本:1.0

支援:

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

事前準備

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

  • Google SecOps 執行個體
  • Windows 2016 以上版本或 Linux 主機,並安裝 systemd
  • 如果是在 Proxy 後方執行,請確認防火牆通訊埠已按照 Bindplane 代理程式規定開啟
  • Array Networks SSL VPN 管理主控台或設備 (AG 系列或 vxAG) 的特殊權限存取權

取得 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 與管理」>「設定」,然後複製「專案編號」。匯出工具設定時會用到。

方法 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. 開啟具有 root 或 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 的 /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: <CUSTOMER_ID>
        endpoint: chronicle.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'ARRAYNETWORKS_VPN'
        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 更新為步驟 1 中儲存服務帳戶金鑰檔案 (選項 1) 的檔案路徑。
    • 將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會在這個值前面加上 chronicle.googleapis.com。如需完整清單,請參閱「區域性端點」。
    • 將 <PROJECT_NUMBER> 替換為「IAM 與管理」>「設定」中的專案編號。

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

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

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

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

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

在 Array Networks SSL VPN 設定 Syslog 轉送

  1. 登入 Array Networks SSL VPN 管理控制台 (WebUI)。
  2. 在左側導覽選單中,按一下「管理工具」。
  3. 點選「監控」。
  4. 按一下「Logging」分頁標籤。
  5. 按一下「Syslog Servers」子分頁標籤。
  6. 在「REMOTE SYSLOG SERVER CONFIGURATION」(遠端系統記錄伺服器設定) 部分,按一下「Add Server Entry」(新增伺服器項目)。
  7. 請提供下列設定詳細資料:
    • Host IP:輸入 Bindplane 代理程式 IP 位址。
    • 主機通訊埠:輸入 Bindplane 代理程式通訊埠號碼 (例如 514)。
    • 「Protocol」(通訊協定):依據 Bindplane 代理程式設定,選取「UDP」或「TCP」。
    • 來源通訊埠:保留預設值,或視網路設定需求指定。
    • 層級:選取要轉送的最低嚴重性等級 (例如「資訊」、「警告」、「錯誤」)。
  8. 按一下「新增」或「儲存」,套用設定。
  9. 按一下頁面頂端的「Save Configuration」(儲存設定),即可保留變更。

UDM 對應表

記錄欄位 UDM 對應 邏輯
clientip principal.ip 從原始記錄訊息的 clientip 欄位擷取的用戶端 IP 位址。
column1 principal.ip 從原始記錄中的 column1 擷取的 IP 位址。
column1 principal.asset.ip 從原始記錄中的 column1 擷取的 IP 位址。
column3 network.received_bytes 接收的位元組數,轉換為不帶正負號的整數。
column4 network.http.method 從原始記錄中的 column4 擷取的 HTTP 方法。
column7 target.ip 從原始記錄中的 column7 擷取的目標 IP 位址。
dport target.port 目的地通訊埠,已轉換為整數。
dst target.ip 目的地 IP 位址。
dst target.asset.ip 目的地 IP 位址。
hostname principal.hostname 從原始記錄訊息的 hostname 欄位擷取的伺服器名稱。
hostname principal.asset.hostname 從原始記錄訊息 hostname 欄位擷取的主機名稱。
http_method network.http.method 從原始記錄訊息擷取的 HTTP 方法。
id principal.application 原始記錄中的應用程式 ID。
mac principal.mac 從原始記錄訊息 mac 欄位擷取的 MAC 位址。
msg metadata.product_event_type 原始記錄中的訊息欄位,用做產品事件類型。移除反斜線和引號後,也可用於 security_result.description。
product_name metadata.product_name 從原始記錄訊息中擷取的產品名稱。
prxy_ip intermediary.ip Proxy IP 位址。
prxy_port intermediary.port Proxy 通訊埠,已轉換為整數。
response_code network.http.response_code HTTP 回應代碼,已轉換為整數。
security_result.action security_result.action 由剖析器邏輯根據 column2 的值決定。如果 column2 包含「TCP_MISS」,則為「BLOCK」,否則為「UNKNOWN_ACTION」。
security_result.description security_result.description 從原始記錄中移除反斜線和引號後,顯示的訊息欄位。
sport principal.port 來源通訊埠,已轉換為整數。
src principal.ip 來源 IP 位址。
src principal.asset.ip 來源 IP 位址。
target_hostname target.hostname 從原始記錄訊息擷取的目標主機名稱。
timestamp metadata.event_timestamp 從原始記錄訊息擷取並剖析為時間戳記物件的時間戳記。
uri target.url 目標網址的一部分。與 uri_param 合併,形成完整網址。
uri_param target.url 目標網址的一部分。與 uri 結合,形成完整網址。
user target.user.userid 從原始記錄訊息擷取的使用者名稱。
user_agent_string network.http.user_agent 從原始記錄訊息擷取的使用者代理程式字串。
vpn target.user.group_identifiers 從原始記錄訊息擷取的 VPN 名稱。
metadata.event_type metadata.event_type 由剖析器邏輯根據「has_principal」、「has_target」、「has_http_value」和「user」等欄位的組合決定。可以是「NETWORK_HTTP」、「NETWORK_CONNECTION」、「STATUS_UPDATE」、「USER_UNCATEGORIZED」或「GENERIC_EVENT」。
network.ip_protocol network.ip_protocol 如果訊息包含「TCP」,請設為「TCP」。

變更記錄

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

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