收集 Forescout NAC 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 Forescout Network Access Control (NAC) 記錄擷取至 Google Security Operations。剖析器會處理 Forescout NAC 的系統記錄和 CEF 格式記錄。它會使用 grok 模式擷取欄位、將欄位對應至統一資料模型 (UDM),並根據關鍵字和擷取的欄位將事件分類,處理登入/登出、網路連線、郵件事件和系統狀態更新。針對處理「CounterACT」和「Virtual Firewall」事件,實作特定邏輯,包括嚴重程度對應和使用者環境資訊擴充。

事前準備

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

  • Google SecOps 執行個體
  • Windows 2016 以上版本,或搭載 systemd 的 Linux 主機
  • 如果透過 Proxy 執行,防火牆通訊埠已開啟
  • 請安裝 ForeScout CounterAct 8.0 以上版本
  • 必須安裝 ForeScout CounterAct 核心擴充模組 Syslog 外掛程式 v3.5
  • Forescout 裝置和 CounterACT 外掛程式的特殊存取權

取得 Google SecOps 擷取驗證檔案

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM 設定」>「收集代理程式」
  3. 下載擷取驗證檔案。將檔案安全地儲存在要安裝 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 代理程式,擷取系統記錄檔並傳送至 Google SecOps

  1. 存取設定檔:
    • 找出 config.yaml 檔案。通常位於 Linux 的 /etc/bindplane-agent/ 目錄,或 Windows 的安裝目錄。
    • 使用文字編輯器 (例如 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
            ingestion_labels:
                log_type: 'FORESCOUT_NAC'
                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
    

安裝 CounterACT Syslog 外掛程式

  1. 前往「Forescount Base Plugins」(Forescount 基礎外掛程式) 頁面,然後下載外掛程式 .fpi 檔案。
  2. 將檔案儲存至安裝 CounterACT Console 的電腦。
  3. 登入 CounterACT Console
  4. 依序選取「選項」>「外掛程式」>「安裝」
  5. 瀏覽並選取儲存的外掛程式 FPI 檔案。
  6. 按一下 [安裝]
  7. 接受授權協議,然後繼續操作。
  8. 安裝完成後,按一下「關閉」
  9. 在「外掛程式」窗格中選取外掛程式,然後按一下「開始」
  10. 選取要啟動外掛程式的 CounterACT 裝置 (建議在環境中的所有裝置上執行外掛程式)。
  11. 按一下 [確定]
  12. 按一下 [關閉]

在 Forescout CounterACT Syslog 外掛程式上設定 Syslog

  1. 在「外掛程式」窗格中,依序點選「系統記錄」>「設定」
  2. 在對話方塊中選取任一裝置或 Enterprise Manager,然後按一下「確定」
  3. 在「將事件傳送至」中,按一下「新增」
  4. 提供下列設定詳細資料:
    • 伺服器位址:輸入 Bindplane 代理程式 IP 位址。
    • 伺服器通訊埠:輸入 Bindplane 代理程式通訊埠編號 (例如 UDP 的 514)。
    • 伺服器通訊協定:選取「UDP」
    • 身分:任意文字欄位,用於識別系統記錄訊息。
    • 選用:設施:Syslog 訊息設施,會以訊息優先順序欄位的一部分傳輸。如果未提及設施值,則會設為 local5
    • 嚴重性:選取「資訊」
  5. 前往「Syslog Trigger」(系統記錄觸發條件) 分頁。
  6. 請勿選取「Only send messages generated by the "Send Message to Syslog" action」(僅傳送由「Send Message to Syslog」動作產生的訊息) 核取方塊。
  7. 只勾選「Include timestamp and CounterACT device identifier in all messages」(在所有訊息中加入時間戳記和 CounterACT 裝置 ID) 核取方塊。
  8. 按一下「選項」,定義會觸發系統記錄訊息的事件類型:
    • 包含 NAC 政策記錄。
    • 納入 NAC 政策比對/不比對事件。
    • 選取其他活動 (如有)。
  9. 前往「預設動作設定」分頁。
  10. 提供下列設定詳細資料:
    • 伺服器位址:輸入 Bindplane 代理程式 IP 位址。
    • 伺服器通訊埠:輸入 Bindplane 代理程式通訊埠編號 (例如 UDP 的 514)。
    • 伺服器通訊協定:選取「UDP」
    • 訊息 ID:任意文字欄位,用於識別 Syslog 訊息。
    • 選用:設施:Syslog 訊息設施,會以訊息優先順序欄位的一部分傳輸。如未提及設施值,則會設為 local5
    • 嚴重性:選取「資訊」
  11. 按一下 [確定]

UDM 對應表

記錄欄位 UDM 對應 邏輯
act security_result.action_details 直接從 CEF 記錄中的 act 欄位對應。
app network.application_protocol 直接從 CEF 記錄中的 app 欄位對應。
Available_memory additional.fields event_type 為「系統統計資料」時,從 kv_data 擷取。索引鍵為「可用記憶體」,值為擷取的字串。
Available_swap additional.fields 如果 event_type 為「系統統計資料」,則會從 kv_data 擷取。索引鍵為「Available swap」,值為擷取的字串。
application_status additional.fields event_type 為「Application status」時,系統會從 kv_data 擷取這項資訊。鍵為「Application status」,值為擷取的字串。
Assigned_hosts additional.fields event_type 為「Application status」時,系統會從 kv_log_data 擷取這項資訊。索引鍵為「Assigned hosts」,值為擷取的字串。
Category security_result.description security_result.description 的一部分,et_lower 為「nac policy log」(NAC 政策記錄)。與其他詳細資料串連。
command principal.process.command_line 如果開頭為「command:」,則會從 CEF 記錄的 rnmsg 欄位擷取。
Connected_clients additional.fields event_type 為「Application status」時,系統會從 kv_log_data 擷取這項資訊。鍵為「Connected clients」,值為擷取的字串。
CPU_usage additional.fields 如果 event_type 為「系統統計資料」,則會從 kv_data 擷取。索引鍵為「CPU usage」,值為擷取的字串。
cs1 additional.fields 直接從 CEF 記錄中的 cs1 欄位對應。索引鍵為「法規遵循政策名稱」。
cs2 additional.fields 直接從 CEF 記錄中的 cs2 欄位對應。索引鍵為「法規遵循政策子規則名稱」。
cs3 additional.fields 直接從 CEF 記錄中的 cs3 欄位對應。鍵為「Host Compliancy Status」。
cs4 additional.fields 直接從 CEF 記錄中的 cs4 欄位對應。鍵為「法規遵循事件觸發條件」。
data security_result.description 用於剖析器的各個部分,可擷取資訊並提供給最終 UDM 欄位。不會直接對應至單一 UDM 欄位。
details security_result.description 用於在多種情況下填入 security_result.description,包括剖析「記錄」事件和使用者工作階段變更時。可能會進一步剖析,以取得特定資訊。
Destination target.iptarget.hostname kv_datadata 剖析。如果可以轉換為 IP 位址,則會對應至 target.ip。否則會對應至 target.hostname
deviceExternalId about.asset.asset_id 直接從 CEF 記錄檔的 deviceExternalId 欄位對應,並加上「Forescout.CommandCenter:」前置字元。
dhost target.hostname 直接從 CEF 記錄中的 dhost 欄位對應。
dmac target.mac 直接從 CEF 記錄中的 dmac 欄位對應。
dntdom target.administrative_domain 直接從 CEF 記錄中的 dntdom 欄位對應。
dst target.ip 直接從 CEF 記錄中的 dst 欄位對應。
dpt target.port 直接從 CEF 記錄中的 dpt 欄位對應。
duser target.user.user_display_name 直接從 CEF 記錄中的 duser 欄位對應。
dvc about.ip 直接從 CEF 記錄中的 dvc 欄位對應。
dvchost about.hostname 直接從 CEF 記錄中的 dvchost 欄位對應。
EM_connection_status additional.fields event_type 為「Application status」時,系統會從 kv_log_data 擷取這項資訊。鍵為「EM connection status」,值為擷取的字串。
Engine_status additional.fields event_type 為「Application status」時,系統會從 kv_log_data 擷取這項資訊。鍵為「引擎狀態」,值為擷取的字串。
event_type metadata.descriptionsecurity_result.summary 從記錄訊息剖析。用於判斷 UDM 事件類型和其他欄位。如果事件是「GENERIC_EVENT」,也會用於說明。
eventtype additional.fields 直接從 CEF 記錄中的 eventtype 欄位對應。索引鍵為「eventtype」。
externalId metadata.product_log_id 直接從 CEF 記錄中的 externalId 欄位對應。
from\[...\] to\[...\] principal.iptarget.ip 從「from[...] to[...]」模式中擷取來源和目的地 IP。
Host principal.ipprincipal.hostname et_lower 為「封鎖事件」時,系統會從 kv_data 剖析此值。如果可轉換為 IP,則對應至 principal.ip;否則對應至 principal.hostname
Hostname principal.hostnameprincipal.asset.hostname 如果屬性變更偵測事件中存在這些屬性,則會對應至 principal.hostnameprincipal.asset.hostname
Installed_Plugins additional.fields event_type 為「Application status」時,系統會從 kv_log_data 擷取這項資訊。鍵為「Installed Plugins」,值為擷取的字串。
iporhost intermediary.ipintermediary.hostname 從「header_data」剖析。如果可轉換為 IP,則對應至 intermediary.ip;否則對應至 intermediary.hostname
Is Virtual Firewall blocking rule security_result.actionsecurity_result.rule_name 如果為「true」,則將 security_result.action 設為「BLOCK」,並將 security_result.rule_name 設為「Virtual Firewall blocking」。
log_description security_result.summary 如果存在,則直接對應至 security_result.summary
log_type metadata.log_type 設為常數值「FORESCOUT_NAC」。
MAC principal.mac 從偵測到的資源變更事件中剖析,並格式化為 MAC 位址。kv_data
mail_from network.email.from 直接從 mail_details 擷取的 mail_from 欄位對應。
mail_subject network.email.subject 直接從 mail_details 擷取的 mail_subject 欄位對應。
mail_to network.email.to 直接從 mail_details 擷取的 mail_to 欄位對應。
Match security_result.rule_name et_lower 為「nac policy log」時,直接從 Match 欄位對應。
metadata.event_type metadata.event_type 由剖析器中的各種條件決定,包括記錄訊息中是否有特定欄位和關鍵字。預設為 GENERIC_EVENT,並根據剖析的資料更新。例如 USER_LOGINUSER_LOGOUTNETWORK_CONNECTIONSCAN_NETWORKSTATUS_UPDATEEMAIL_TRANSACTIONUSER_UNCATEGORIZED
metadata.product_name metadata.product_name 大多數事件都設為「FORESCOUT NAC」,如果存在 product 欄位,則設為該欄位的值。如果是 CEF 事件,則會設為「CounterAct」。
metadata.vendor_name metadata.vendor_name 大多數事件都設為「FORESCOUT」。如果是 CEF 事件,則取自 cs1Label 欄位 (如有),或設為「ForeScout Technologies」。
msg metadata.description 直接從 CEF 記錄中的 msg 欄位對應。
pid intermediary.process.pid 直接從 header_data 擷取的 pid 欄位對應。
policy_details security_result.description security_result.description 的一部分,et_lower 為「nac policy log」(NAC 政策記錄)。與其他詳細資料串連。
product metadata.product_name 如果存在,則直接對應至 metadata.product_name
proto network.ip_protocol 直接從 CEF 記錄中的 proto 欄位對應。
Reason security_result.description et_lower 為「封鎖事件」時,直接從 Reason 欄位對應。
resource principal.resource.name 直接從 CEF 記錄中的 resource 欄位對應。
rnmsg security_result.descriptionprincipal.process.command_line 如果開頭為「command:」,則「command:」後方的部分會對應至 principal.process.command_line。否則會對應至 security_result.description
rt metadata.event_timestamp 直接從 CEF 記錄的 rt 欄位對應,並轉換為時間戳記。
Rule security_result.rule_id et_lower 為「nac policy log」時,直接從 Rule 欄位對應。
security_result.severity security_result.severity 衍生自「severity_level」欄位。0 到 3 對應到「低」,4 到 6 對應到「中」,7 到 8 對應到「高」,9 到 10 對應到「嚴重」。
security_result.severity_details security_result.severity_details 直接從 CEF 記錄中的 severity 欄位對應。
Service target.portnetwork.ip_protocol 系統會剖析網址,擷取通訊埠和通訊協定。通訊埠對應至 target.port,通訊協定對應至 network.ip_protocol
session_id network.session_id 直接從「session_id」欄位對應。
severity security_result.severity_details 直接從 CEF 記錄中的 severity 欄位對應。
severity_level security_result.severity 用於判斷 security_result.severity

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