收集 Microsoft Defender for IoT (CyberX) 記錄

支援的國家/地區:

本文說明如何使用 Bindplane,將 Microsoft Defender for IoT (CyberX) 記錄檔擷取至 Google Security Operations。

Microsoft Defender for IoT (舊稱 CyberX) 是無代理程式的 IoT/OT 安全平台,可為工業控制系統 (ICS) 和營運技術 (OT) 環境提供資產探索、安全漏洞管理和持續威脅監控功能。這項服務可偵測 IoT/OT 網路中的異常行為和已知威脅,不會影響作業程序。剖析器會從 CyberX 系統記錄和鍵/值格式的記錄中擷取欄位。剖析器會使用 grok 和/或 kv 剖析記錄訊息,然後將這些值對應至統合式資料模型 (UDM)。此外,也會為事件來源和類型設定預設中繼資料值。

事前準備

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

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
  • 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • Microsoft Defender for IoT 感應器控制台的特殊存取權

取得 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
    
  3. 等待安裝完成。

  4. 執行下列指令來驗證安裝:

    sc query observiq-otel-collector
    

服務應顯示為「RUNNING」(執行中)

Linux 安裝

  1. 開啟具有根層級或 sudo 權限的終端機。
  2. 執行下列指令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. 等待安裝完成。

  4. 執行下列指令來驗證安裝:

    sudo systemctl status observiq-otel-collector
    

服務應顯示為啟用 (執行中)

其他安裝資源

如需其他安裝選項和疑難排解資訊,請參閱 Bindplane 代理程式安裝指南

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

找出設定檔

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

編輯設定檔

  • config.yaml 的所有內容替換為下列設定:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            customer_id: 'YOUR_CUSTOMER_ID'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: 'CYBERX'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

設定參數

  • 替換下列預留位置:

    • 接收器設定:

      • udplog:使用 udplog 進行 UDP 系統記錄,或使用 tcplog 進行 TCP 系統記錄
      • 0.0.0.0:要接聽的 IP 位址 (0.0.0.0 可接聽所有介面)
      • 514:要接聽的通訊埠號碼 (標準系統記錄通訊埠)
    • 匯出工具設定:

      • creds_file_path:擷取驗證檔案的完整路徑:
        • Linux/etc/bindplane-agent/ingestion-auth.json
        • WindowsC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID:從「取得客戶 ID」一節取得的客戶 ID
      • endpoint:區域端點網址:
        • 美國malachiteingestion-pa.googleapis.com
        • 歐洲europe-malachiteingestion-pa.googleapis.com
        • 亞洲asia-southeast1-malachiteingestion-pa.googleapis.com
        • 如需完整清單,請參閱「區域端點
      • log_type:記錄類型,與 Chronicle 中顯示的完全相同 (CYBERX)

儲存設定檔

  • 編輯完成後,請儲存檔案:
    • Linux:依序按下 Ctrl+OEnterCtrl+X
    • Windows:依序點選「檔案」>「儲存」

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

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

    sudo systemctl restart observiq-otel-collector
    
    1. 確認服務正在執行:

        sudo systemctl status observiq-otel-collector
      
    2. 檢查記錄中是否有錯誤:

        sudo journalctl -u observiq-otel-collector -f
      
  • 如要在 Windows 中重新啟動 Bindplane 代理程式,請選擇下列任一做法:

    • 以管理員身分開啟命令提示字元或 PowerShell:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • 服務控制台:

      1. 按下 Win+R 鍵,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出 observIQ OpenTelemetry Collector
      3. 按一下滑鼠右鍵,然後選取「重新啟動」

      4. 確認服務正在執行:

        sc query observiq-otel-collector
        
      5. 檢查記錄中是否有錯誤:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

在 Microsoft Defender for IoT (CyberX) 上設定 Syslog 轉送

  1. 登入 Microsoft Defender for IoT 感應器控制台 (舊稱 CyberX)。
  2. 依序前往「系統設定」>「轉寄」
  3. 按一下「新增」 (或「+」) 建立新的轉寄規則。
  4. 請提供下列設定詳細資料:
    • 規則名稱:輸入描述性名稱,例如 Google-SecOps-Bindplane
    • 嚴重程度:選取「全部」 (或選取特定嚴重程度等級:次要、主要、重大)。
    • 「通訊協定」:選取「全部」 (或選取要監控的特定通訊協定)。
    • 引擎:選取「全部」 (或選取特定偵測引擎)。
    • 操作:選取「傳送系統記錄檔」
  5. 在「系統記錄伺服器」設定中:
    • 主機:輸入 Bindplane 代理程式主機的 IP 位址。
    • 「Port」(通訊埠):輸入 514
    • 「通訊協定」:選取「UDP」
    • 格式:選取 CEF (通用事件格式)。
    • 時區:選取「世界標準時間」(建議)。
  6. 按一下 [儲存]
  7. 將規則切換為「有效」,即可啟用轉送規則。
  8. 檢查 Bindplane 代理程式記錄,確認系統記錄訊息是否已傳送。

UDM 對應表

記錄欄位 UDM 對應 邏輯
存取遮罩 security_result.detection_fields.value 從已剖析的 access_request_kvdata 取得 access_mask 的值
帳戶網域 principal.administrative_domain 從已剖析的 principal_kvdata 取得 principal_domain 的值
帳戶網域 target.administrative_domain 從已剖析的 target_kvdata 取得 target_domain 的值
帳戶名稱 principal.user.userid 從已剖析的 principal_kvdata 取得 principal_account_name 的值
帳戶名稱 target.user.userid 從已剖析的 target_kvdata 取得 target_account_name 的值
動作 security_result.action_details 動作價值
動作 security_result.action 衍生。如果動作是「accept」、「passthrough」、「pass」、「permit」、「detected」或「close」,請對應至「ALLOW」。如果動作為「deny」、「dropped」或「blocked」,請對應至「BLOCK」。如果動作是「timeout」,請對應至「FAIL」。否則,請對應至「UNKNOWN_ACTION」。
演算法名稱 security_result.detection_fields.value 從已剖析的 cryptographic_kvdata 取得 algorithm_name 的值
應用程式 target.application 如果 app_protocol_output 為空白,則為服務值
appcat security_result.detection_fields.value appcat 的值
應用程式名稱 principal.application application_name 的值
驗證套件 security_result.about.resource.name authentication_package 的值
Azure Defender for IoT 警示 security_result.detection_fields.value azure_defender_for_iot_alert 的值
頻道 security_result.detection_fields.value 管道價值
用戶端位址 principal.ip、principal.asset.ip source_ip 的值
用戶端通訊埠 principal.port source_port 的值
craction security_result.detection_fields.value craction 的值
已備份認證管理員憑證 security_result.description 說明值
已讀取認證管理員憑證。 security_result.description 說明值
crscore security_result.severity_details crscore 的值
crlevel security_result.severity、security_result.severity_details crlevel 的值。如果 crlevel 為「HIGH」、「MEDIUM」、「LOW」或「CRITICAL」,請對應至相應的 UDM 嚴重程度。
密碼編譯作業 metadata.description product_desc 的值
CyberX 平台名稱 security_result.detection_fields.value cyberx_platform_name 的值
說明 security_result.description 如果 Message 為空,則為說明值
目的地 target.ip、target.asset.ip 或 target.hostname 如果「目的地」是 IP 位址,請對應至 target.ip 和 target.asset.ip。否則,請對應至 target.hostname。
目的地地址 target.ip、target.asset.ip 從已剖析的 network_information 取得 destination_ip 的值
目的地 DRA target.resource.name destination_dra 的值
目的地 IP target.ip、target.asset.ip destination_ip 的值
目的地通訊埠 target.port 從已剖析的 network_information 取得 destination_port 的值
devid principal.resource.product_object_id devid 的值
devname principal.resource.name devname 的值
方向 network.direction 如果「方向」是「incoming」、「inbound」或「response」,請對應至「INBOUND」。如果 Direction 為「outgoing」、「outbound」或「request」,則對應至「OUTBOUND」。
dstip target.ip、target.asset.ip 如果 destination_ip 為空白,dstip 的值
dstcountry target.location.country_or_region dstcountry 的值
dstintf security_result.detection_fields.value dstintf 的值
dstintfrole security_result.detection_fields.value dstintfrole 的值
dstosname target.platform dstosname 的值 (如果為「WINDOWS」、「LINUX」或「MAC」)。
dstport target.port 如果 destination_port 為空白,則 dstport 的值
dstswversion target.platform_version dstswversion 的值
持續時間 network.session_duration.seconds 時間長度值
event_id security_result.rule_name 用於建構規則名稱,格式為「EventID: %{event_id}」
event_in_sequence security_result.detection_fields.value event_in_sequence 的值
篩選器執行階段 ID security_result.detection_fields.value 從已剖析的 filter_information 取得 filter_run_time_id 的值
群組成員資格 security_result.detection_fields.value 如果 event_id 不是 4627,group_membership 的值
群組成員資格 target.user.group_identifiers 如果 event_id 為 4627,則為剖析 group_membership 的值
handle_id security_result.detection_fields.value 從已剖析的 object_kvdata 取得 handle_id 值
帳號代碼 security_result.detection_fields.value 從已剖析的 object_kvdata 取得 handle_id 值
impersonation_level security_result.detection_fields.value 從已剖析的 logon_information_kvdata 取得 impersonation_level 值
金鑰長度 security_result.detection_fields.value 從已剖析的 auth_kvdata 取得 key_length 值
金鑰名稱 security_result.detection_fields.value 從已剖析的 cryptographic_kvdata 取得 key_name 的值
金鑰類型 security_result.detection_fields.value 從已剖析的 cryptographic_kvdata 取得 key_type 的值
關鍵字 security_result.detection_fields.value 關鍵字值
圖層名稱 security_result.detection_fields.value 從已剖析的 filter_information 取得 layer_name 的值
圖層執行階段 ID security_result.detection_fields.value 從已剖析的 filter_information 取得 layer_run_time_id 的值
logid metadata.product_log_id logid 的值
登入 GUID principal.resource.product_object_id logon_guid 的值
登入 ID security_result.detection_fields.value logon_id 的值
logon_type event.idm.read_only_udm.extensions.auth.mechanism 衍生。如果 logon_type 為「3」,則對應至「NETWORK」。如果是「4」,則對應至「BATCH」。如果是「5」,則對應至「SERVICE」。如果是「8」,則對應至「NETWORK_CLEAR_TEXT」。如果是「9」,則對應至「NEW_CREDENTIALS」。如果是「10」,則對應至「REMOTE_INTERACTIVE」。如果是「11」,則對應至「CACHED_INTERACTIVE」。否則,如果不是空白,請對應至「MECHANISM_OTHER」。
登入帳戶 security_result.detection_fields.value 從 grok 剖析取得 logon_id 的值
登入程序 security_result.detection_fields.value 從已剖析的 auth_kvdata 取得 logon_process 的值
必要標籤 security_result.detection_fields.value mandatory_label 的值
mastersrcmac principal.mac mastersrcmac 的值
訊息 security_result.description 訊息值
new_process_id target.process.pid 從已剖析的程序 kvdata 取得 new_process_id 的值
new_process_name target.process.file.full_path 從已剖析的程序 kvdata 取得 new_process_name 的值
物件名稱 security_result.detection_fields.value 從已剖析的 object_kvdata 取得 object_name 的值
物件伺服器 security_result.detection_fields.value 從已剖析的 object_kvdata 取得 object_server 值
物件類型 security_result.detection_fields.value 從已剖析的 object_kvdata 取得 object_type 的值
osname principal.platform 如果 osname 的值為「WINDOWS」、「LINUX」或「MAC」。
套件名稱 (僅限 NTLM) security_result.detection_fields.value 從已剖析的 auth_kvdata 取得 package_name 值
policyid security_result.rule_id policyid 的值
policyname security_result.rule_name policyname 的值
policytype security_result.rule_type policytype 的值
程序 ID principal.process.pid process_id 的值
程序名稱 principal.process.file.full_path 從已剖析的程序 kvdata 取得 creator_process_name 的值
profile_changed security_result.detection_fields.value profile_changed 的值
已變更設定檔 security_result.detection_fields.value 從 grok 剖析的 profile_changed 值
proto network.ip_protocol 如果 proto 為「17」,則對應至「UDP」。如果「6」或子類型為「wad」,請對應至「TCP」。如果是「41」,則對應至「IP6IN4」。如果服務為「PING」或 proto 為「1」,或服務包含「ICMP」,則對應至「ICMP」。
通訊協定 network.application_protocol 從通訊協定衍生的 app_protocol_output 值
供應商名稱 security_result.detection_fields.value 從已剖析的 provider_kvdata 或 cryptographic_kvdata 取得 provider_name 的值
rcvdbyte network.received_bytes rcvdbyte 的值
rcvdpkt security_result.detection_fields.value rcvdpkt 的值
restricted_admin_mode security_result.detection_fields.value 從已剖析的 logon_information_kvdata 取得 restricted_admin_mode 的值
回覆代碼 security_result.detection_fields.value 從已剖析的 cryptographic_kvdata 取得 return_code 值
回應 security_result.detection_fields.value 回覆價值
rule_id security_result.rule_id rule_id 的值
安全 ID principal.user.windows_sid 從已剖析的 principal_kvdata 取得 principal_security_id 的值
安全 ID target.user.windows_sid 從已剖析的目標 kvdata 取得 target_security_id 的值
sentbyte network.sent_bytes sentbyte 的值
sentpkt security_result.detection_fields.value 傳送的封包值
服務 network.application_protocol 或 target.application 從服務衍生的 app_protocol_output 值。如果 app_protocol_output 為空,請對應至 target.application。
服務 ID security_result.detection_fields.value 從已剖析的 service_kvdata 取得 service_id 值
服務名稱 security_result.detection_fields.value 從已剖析的 service_kvdata 取得 service_name 的值
sessionid network.session_id sessionid 的值
嚴重性 security_result.severity、security_result.severity_details 如果嚴重程度為「ERROR」或「CRITICAL」,請對應至相應的 UDM 嚴重程度。如果是「INFO」,請對應至「INFORMATIONAL」。如果為「MINOR」,請對應至「LOW」。如果是「WARNING」,則對應至「MEDIUM」。如果是「MAJOR」,則對應至「HIGH」。同時將原始值對應至 severity_details。
嚴重性 security_result.severity、security_result.severity_details 如果嚴重程度為「1」、「2」或「3」,請對應至「LOW」。如果是「4」、「5」或「6」,則對應至「MEDIUM」。如果是「7」、「8」或「9」,則對應至「HIGH」。同時將原始值對應至 severity_details。
共用區名稱 security_result.detection_fields.value 從已剖析的 share_information_kvdata 取得 share_name 值
分享路徑 security_result.detection_fields.value 從已剖析的 share_information_kvdata 取得 share_path 的值
來源 principal.ip、principal.asset.ip 或 principal.hostname、principal.asset.hostname 如果「來源」是 IP 位址,請對應至 principal.ip 和 principal.asset.ip。否則,請對應至 principal.hostname 和 principal.asset.hostname。
來源地址 principal.ip、principal.asset.ip 從已剖析的 network_information 取得 source_ip 的值
來源 DRA principal.resource.name source_dra 的值
來源 IP principal.ip source_ip 的值
來源網路位址 principal.ip、principal.asset.ip source_ip 的值
來源通訊埠 principal.port 從已剖析的 network_information 取得 source_port 的值
來源工作站 workstation_name source_workstation_name 的值
srcip source_ip 如果 source_ip 為空值,srcip 的值
srccountry principal.location.country_or_region srccountry 的值
srcmac principal.mac srcmac 的值
srcname principal.hostname、principal.asset.hostname srcname 的值
srcport source_port 如果 source_port 為空白,則 srcport 的值
srcswversion principal.platform_version srcswversion 的值
狀態碼 network.http.response_code status_code 的值
權杖提升類型 security_result.detection_fields.value token_elevation_type 的值
transited_services security_result.detection_fields.value 從已剖析的 auth_kvdata 取得 transited_services 的值
transip principal.nat_ip 交易價值
transport principal.nat_port 運輸價值
類型 metadata.product_event_type 與子類型搭配使用,可建立 metadata.product_event_type
類型 security_result.detection_fields.value 類型的值
UUID metadata.product_log_id UUID 值
vd principal.administrative_domain vd 的值
virtual_account security_result.detection_fields.value 從已剖析的 logon_information_kvdata 取得 virtual_account 的值
工作站名稱 principal.hostname、principal.asset.hostname 如果沒有其他主體 ID,則為 workstation_name 的值
metadata.event_type metadata.event_type 衍生。如果 principal_present 和 target_present 皆為 true,則對應至「NETWORK_CONNECTION」。如果 user_present 為 true,則對應至「USER_RESOURCE_ACCESS」。如果 principal_present 為 true,則對應至「STATUS_UPDATE」。否則,請對應至「GENERIC_EVENT」。
metadata.log_type metadata.log_type 硬式編碼為「CYBERX」
metadata.product_name metadata.product_name 硬式編碼為「CYBERX」
metadata.vendor_name metadata.vendor_name 硬式編碼為「CYBERX」
metadata.event_timestamp metadata.event_timestamp 從頂層時間戳記欄位複製,或從 eventtime 或日期和時間欄位衍生。

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