收集 AlgoSec Security Management 記錄

支援的國家/地區:

本文說明如何使用 Bindplane 代理程式,將 AlgoSec Security Management 記錄擷取至 Google Security Operations。剖析器會擷取欄位,並處理 CEF 和非 CEF 格式的記錄。這個外掛程式會剖析時間戳記、IP 位址和事件詳細資料等常見欄位,然後根據產品 (Suite、Firewall Analyzer、FireFlow) 和事件 ID 將這些欄位對應至 UDM,並設定適當的中繼資料和安全性結果欄位。此外,這項服務也會處理登入/登出、管理警報和分析報表等特定事件類型,擷取相關詳細資料並設定嚴重程度。

事前準備

  • 確認您擁有 Google SecOps 執行個體。
  • 確認您使用的是 Windows 2016 以上版本,或是搭載 systemd 的 Linux 主機。
  • 如果透過 Proxy 執行,請確認防火牆通訊埠已開啟。
  • 確認您擁有 AlgoSec Firewall Analyzer、FireFlow 和 AppViz 的特殊權限。

取得 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: ALGOSEC
                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
    

設定防火牆分析工具的系統記錄檔

  1. 使用 SSH 登入 AFA 裝置。
  2. 前往 syslog-ng 設定目錄:

    cd /etc/syslog-ng
    
  3. 備份現有設定:

    cp syslog-ng.conf syslog-ng.conf.orig
    
  4. 編輯 syslog-ng 設定檔:

    vi syslog-ng.conf
    
  5. 新增下列指令行,定義遠端系統記錄檔伺服器:

    destination d_remote {
        udp("<bindplane-server-ip>" port(514));
    };
    
    log {
        source(s_sys);
        destination(d_remote);
    };
    
    • <bindplane-server-ip> 替換為 Bindplane 代理程式的 IP 位址。
  6. 儲存並結束編輯器。

  7. 重新啟動 syslog-ng 服務,以套用變更:

    service syslog-ng restart
    
  8. 選用:驗證系統記錄設定:

    1. 依序前往「Administration」>「Syslog Server Settings」
    2. 按一下「測試連線」

設定 FireFlow 的系統記錄

  1. root 身分登入 FireFlow 電腦。
  2. 開啟 /etc/syslog.conf 檔案進行編輯。

    vi /etc/syslog.conf
    
  3. local0.*@<BindplaneAgent> 檔案中新增下列程式碼:

    • <BindplaneAgent> 替換為 Bindplane 代理程式伺服器的 IP 位址。

設定 AppViz 的系統記錄

  1. 透過 SSH 登入 AppViz 裝置。
  2. 前往 syslog-ng 設定目錄:

    cd /etc/syslog-ng
    
  3. 備份現有設定:

    cp syslog-ng.conf syslog-ng.conf.orig
    
  4. 編輯 syslog-ng 設定檔:

    vi syslog-ng.conf
    
  5. 新增下列項目,定義遠端系統記錄檔伺服器:

    destination d_remote {
        udp("<bindplane-server-ip>" port(514));
    };
    
    log {
        source(s_sys);
        destination(d_remote);
    };
    
    • <bindplane-server-ip> 替換為 Bindplane 代理程式的 IP 位址。
  6. 儲存並結束編輯器。

  7. 重新啟動 syslog-ng 服務,以套用變更:

    service syslog-ng restart
    
  8. 驗證系統記錄設定:

    1. 在 AppViz 介面中,依序前往「Administration」(管理)>「Syslog Server Settings」(系統記錄伺服器設定)
    2. 按一下「測試連線」

設定登入和登出事件的系統記錄

  1. 透過 SSH 登入 ASMS 設備
  2. 前往 syslog-ng 設定目錄:

    cd /etc/syslog-ng
    
  3. 備份現有設定:

    cp syslog-ng.conf syslog-ng.conf.orig
    
  4. 編輯 syslog-ng 設定檔:

    vi syslog-ng.conf
    
  5. 新增下列項目,定義遠端系統記錄檔伺服器:

    destination d_remote {
        udp("<bindplane-server-ip>" port(514));
    };
    
    log {
        source(s_sys);
        destination(d_remote);
    };
    
    • <bindplane-server-ip> 替換為系統記錄伺服器的 IP 位址。
  6. 儲存並結束編輯器。

  7. 重新啟動 syslog-ng 服務,以套用變更:

    service syslog-ng restart
    

UDM 對應表

記錄欄位 UDM 對應 邏輯
by_user principal.user.user_display_name 原始記錄檔中的 by_user 欄位值會指派給這個 UDM 欄位。
collection_time metadata.event_timestamp 系統會合併 seconds 和 nanos 欄位,建立時間戳記。
comm target.process.command_line desc 欄位中以 grok 擷取的 comm 欄位值會指派給這個 UDM 欄位。
datetime metadata.event_timestamp 系統會從原始記錄檔擷取日期和時間,並用於填入事件時間戳記。
desc metadata.description 如果沒有其他說明,系統會將原始記錄中的 desc 欄位值指派給這個 UDM 欄位。
dest_ip target.ip 原始記錄檔中的 dest_ip 欄位值會指派給這個 UDM 欄位。
dest_port target.port 原始記錄檔中的 dest_port 欄位值會指派給這個 UDM 欄位。
details security_result.summary 原始記錄檔中的 details 欄位值會指派給這個 UDM 欄位。
device principal.asset.hostname 原始記錄檔中的 device 欄位值會指派給這個 UDM 欄位。
dst_ip target.ip 原始記錄檔中的 dst_ip 欄位值會指派給這個 UDM 欄位。
dst_port target.port 原始記錄檔中的 dst_port 欄位值會指派給這個 UDM 欄位。
event_id metadata.product_event_type 原始記錄檔中的 event_id 欄位值會指派給這個 UDM 欄位。剖析器邏輯也會使用這項資訊,判斷 metadata.event_type 和其他欄位。
event_name metadata.product_event_type 原始記錄檔中的 event_name 欄位值會指派給這個 UDM 欄位。
firewall target.hostname 原始記錄檔中的 firewall 欄位值會指派給這個 UDM 欄位。
host principal.hostname 原始記錄檔中的 host 欄位值會指派給這個 UDM 欄位。
host_type principal.asset.category 原始記錄檔中的 host_type 欄位值會指派給這個 UDM 欄位。
iporhost principal.ip / principal.hostname / target.ip / target.hostname / observer.ip / observer.hostname 如果值是 IP 位址,則會根據記錄來源和事件類型,對應至 principal.iptarget.ipobserver.ip。如果是主機名稱,則會對應至 principal.hostnametarget.hostnameobserver.hostname
IP principal.ip 原始記錄檔中的 IP 欄位值會指派給這個 UDM 欄位。
kv_data security_result.summary 原始記錄檔中的 kv_data 欄位值會指派給這個 UDM 欄位。
log_type metadata.log_type 硬式編碼為 ALGOSEC
metric security_result.action_details 原始記錄檔中的 metric 欄位值會指派給這個 UDM 欄位。
msg security_result.summary/security_result.description 系統會根據情境,使用原始記錄中的 msg 欄位值,填入安全性結果的摘要或說明。這項功能也可用於擷取 risk_levelrisk_countrisk_coderisk_title 欄位。
pid target.process.pid desc 欄位中以 grok 擷取的 pid 欄位值會指派給這個 UDM 欄位。
product metadata.product_name 原始記錄檔中的 product 欄位值會指派給這個 UDM 欄位。
report security_result.description 原始記錄中的 report 欄位值會納入安全性結果的說明。
report_data.Device IP target.ip 剖析 JSON 資料後,系統會將 Device IP 欄位的值指派給這個 UDM 欄位。
report_data.Highest Risk Level security_result.description 剖析的 JSON 資料中的 Highest Risk Level 欄位值會納入安全性結果的說明。並用於判斷安全性結果的嚴重程度。
report_data.Security Rating Score security_result.description 剖析的 JSON 資料中的 Security Rating Score 欄位值會納入安全性結果的說明。
Requestor.Email principal.user.email_addresses 剖析 JSON 資料後,系統會將 Requestor 物件中的 Email 欄位值指派給這個 UDM 欄位。
Requestor.Name principal.user.user_display_name 剖析 JSON 資料後,系統會將 Requestor 物件中的 Name 欄位值指派給這個 UDM 欄位。
RequestType target.resource.attribute.labels 原始記錄中的 RequestType 欄位值會新增為目標資源的標籤。
risk_title security_result.summary 原始記錄檔中的 risk_title 欄位值會指派給這個 UDM 欄位。
src_ip principal.ip 原始記錄檔中的 src_ip 欄位值會指派給這個 UDM 欄位。
src_port principal.port 原始記錄檔中的 src_port 欄位值會指派給這個 UDM 欄位。
status security_result.description/security_result.action_details 視情況而定,原始記錄中的 status 欄位值會顯示在安全性結果或動作詳細資料的說明中。並用於判斷安全性結果的嚴重程度。
target_app target.application 原始記錄檔中的 target_app 欄位值會指派給這個 UDM 欄位。
TemplateName metadata.description 原始記錄檔中的 TemplateName 欄位值會指派給這個 UDM 欄位。
url security_result.url_back_to_product 原始記錄檔中的 url 欄位值會指派給這個 UDM 欄位。
user principal.user.userid 原始記錄檔中的 user 欄位值會指派給這個 UDM 欄位。
vendor metadata.vendor_name 原始記錄檔中的 vendor 欄位值會指派給這個 UDM 欄位。
version metadata.product_version 原始記錄檔中的 version 欄位值會指派給這個 UDM 欄位。
WorkFlow target.resource.attribute.labels 原始記錄中的 WorkFlow 欄位值會新增為目標資源的標籤。
(剖析器邏輯) extensions.auth.type 硬式編碼為 MACHINE
(剖析器邏輯) security_result.action 根據 event_id 和其他欄位判斷。通常設為 ALLOWBLOCK
(剖析器邏輯) security_result.category 硬式編碼為 POLICY_VIOLATION,適用於防火牆分析器事件。
(剖析器邏輯) security_result.description 根據其他欄位建構,提供事件的背景資訊和詳細資料。
(剖析器邏輯) security_result.severity 系統會根據 event_idmsg 和其他欄位判斷。通常設為 LOWMEDIUMHIGH
(剖析器邏輯) metadata.event_type 根據 event_id 和其他欄位判斷。例如 USER_LOGINUSER_LOGOUTUSER_RESOURCE_ACCESSGENERIC_EVENTSTATUS_UNCATEGORIZEDSCAN_HOSTNETWORK_CONNECTIONSTATUS_UPDATE

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