收集 Trellix Email Security (舊稱 FireEye eMPS) 記錄

剖析器版本:16.0

支援的服務:

本文說明如何使用 Bindplane,將 Trellix Email Security (舊稱 FireEye eMPS) 記錄檔擷取至 Google Security Operations。

Trellix Email Security 是一種電子郵件安全防護裝置,可即時分析電子郵件內容和附件,保護機構免受進階電子郵件威脅 (包括魚叉式網路釣魚、惡意軟體和目標性攻擊) 侵害。

事前準備

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

  • Google SecOps 執行個體
  • Windows Server 2016 以上版本,或搭載 systemd 的 Linux 主機
  • Bindplane 代理程式與 FireEye eMPS 設備之間的網路連線
  • 如果透過 Proxy 執行,請確保防火牆通訊埠已根據 Bindplane 代理程式需求開啟
  • FireEye eMPS 裝置 CLI 的特殊權限存取權 (管理員或操作員角色)
  • 具備 syslog 通知功能的 FireEye eMPS 裝置

取得 Bindplane 代理程式的 Google SecOps 憑證

如要向 Google SecOps 驗證 Bindplane 代理程式,請選擇下列其中一種方法:

  • 新部署作業:使用 Chronicle API (選項 1)。
  • 舊版部署作業:在 2027 年 7 月 20 日停用 Ingestion API 前,請繼續使用擷取驗證檔案 (選項 2)。
  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 & Admin」(IAM 與管理) >「Settings」(設定),然後複製「Project number」(專案編號)。設定匯出工具時會用到。

方法 2:下載擷取驗證檔案 (舊版)

  1. 登入 Google SecOps 控制台。
  2. 依序前往「SIEM Settings」 > 「Collection Agents」。
  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
    
  3. 等待安裝完成。

  4. 執行下列指令,確認安裝成功:

    sc query observiq-otel-collector
    

服務應顯示為「RUNNING」。

Linux 安裝

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

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

  4. 執行下列指令,確認安裝成功:

    sudo systemctl status observiq-otel-collector
    

服務應顯示為「active (running)」。

其他安裝資源

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

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

找出設定檔

  • Linux: /opt/observiq-otel-collector/config.yaml
  • Windows: C:\Program Files\observIQ OpenTelemetry Collector\config.yaml

編輯設定檔

  • 將 config.yaml 的全部內容替換為下列設定:

    receivers:
      udplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/fireeye_emps:
        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
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: FIREEYE_EMPS
        raw_log_field: body
        ingestion_labels:
          env: production
    
    service:
      pipelines:
        logs/fireeye_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/fireeye_emps
    

設定參數

替換下列預留位置:

  • 接收器設定:

    • 接收器已設定為在通訊埠 514 接收 UDP 系統記錄。
    • 如要在 Linux 上使用非特殊權限通訊埠,請將 514 變更為 1514 以上。
    • 如要使用 TCP 而非 UDP,請將 udplog 替換為 tcplog。
  • Exporter 設定:

    • creds_file_path:服務帳戶 JSON 金鑰檔案的完整路徑 (選項 1)。
    • YOUR_CUSTOMER_ID:替換成實際的客戶 ID。
    • location:將 <LOCATION> 替換為 Google SecOps 執行個體的區域 (例如 us、europe 或 asia-southeast1)。匯出工具會以這個值做為 chronicle.googleapis.com 的前置字元。如需完整清單,請參閱「區域性端點」。
    • project:依序前往「IAM 與管理」>「設定」,然後將 <PROJECT_NUMBER> 替換為專案編號。
    • endpoint:請將此值設為 chronicle.googleapis.com。
    • log_type:必須是 FIREEYE_EMPS。
    • ingestion_labels:YAML 格式的選用標籤。

舊版 Ingestion API 匯出工具

  • 如果您使用方式 2 的擷取驗證檔案,請將 exporters 區塊替換成下列內容。將 creds_file_path 設為擷取驗證檔案的路徑,如果您的執行個體位於美國境外,請將 malachiteingestion-pa.googleapis.com 替換為區域端點 (例如 europe-malachiteingestion-pa.googleapis.com)。

    exporters:
      chronicle/fireeye_emps:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: FIREEYE_EMPS
        raw_log_field: body
        ingestion_labels:
          env: production
    

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

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

  1. 執行下列指令:

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

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

    sudo journalctl -u observiq-otel-collector -f
    

如要在 Windows 中重新啟動 Bindplane 代理程式,請按照下列步驟操作:

  1. 您可以選擇下列其中一個選項:

    • 以管理員身分開啟命令提示字元或 PowerShell:
    net stop observiq-otel-collector && net start observiq-otel-collector
    
    • 服務控制台:
      1. 按下 Win+R 鍵,輸入 services.msc,然後按下 Enter 鍵。
      2. 找出「observIQ OpenTelemetry Collector」。
      3. 按一下滑鼠右鍵,然後選取「重新啟動」。
  2. 確認服務正在執行:

    sc query observiq-otel-collector
    
  3. 查看記錄檔是否有錯誤:

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

設定 FireEye eMPS syslog 轉送

存取 FireEye eMPS CLI

  1. 透過 SSH 或控制台連線至 FireEye eMPS 設備。
  2. 登入並進入啟用模式:hostname> enable
  3. 進入設定模式:hostname# configure terminal

設定 Syslog 伺服器

  1. 將 Bindplane 代理程式新增為 syslog 陷阱接收器: hostname(config)# fenotify rsyslog trap-sink chronicle address <BINDPLANE_IP_ADDRESS>
  2. 將系統記錄格式設為 CEF: hostname(config)# fenotify rsyslog trap-sink chronicle prefer message format cef
  3. 將系統記錄功能設為 local4 (建議): hostname(config)# fenotify rsyslog default facility local4
  4. 設定傳送模式: hostname(config)# fenotify rsyslog trap-sink chronicle message delivery per-event
  5. 設定警告嚴重性: hostname(config)# fenotify rsyslog trap-sink chronicle prefer message send-as alert
  6. 設定通訊協定: hostname(config)# fenotify rsyslog trap-sink chronicle protocol udp
  7. 設定通訊埠: hostname(config)# fenotify rsyslog trap-sink chronicle port 514

啟用系統記錄通知

  1. 全域啟用 rsyslog 通知:hostname(config)# fenotify rsyslog enable
  2. 啟用全域通知:hostname(config)# fenotify enable
  3. 啟用特定警報類型:

    hostname(config)# fenotify rsyslog alert malware-object enable
    hostname(config)# fenotify rsyslog alert malware-callback enable
    hostname(config)# fenotify rsyslog alert infection-match enable
    hostname(config)# fenotify rsyslog alert domain-match enable
    
  4. 驗證設定:hostname(config)# show fenotify alerts

  5. 儲存並結束:

    hostname(config)# write memory
    hostname(config)# exit
    hostname# exit
    

UDM 對應表

記錄欄位 UDM 對應 邏輯
about.asset.asset_id 串連自 device_vendor、device_product 和 deviceExternalId
關於 關於 從 about_token 合併
about.file.full_path about.file.full_path 直接複製值
about.file.sha256 about.file.sha256 直接複製值
about.file.size about.file.size 直接複製值
about.hostname about.hostname 直接複製值
about.ip about.ip 從 ips 陣列合併
about.mac about.mac 如果 MAC 有效,則為 dvcmac 的值,否則為 mac_address 的值
about.nat_ip about.nat_ip 直接從裝置 TranslatedAddress 複製的值
about.process.command_line about.process.command_line 如果主旨不為空白,則取自主旨,否則取自 Emne,否則取自路徑
about.process.file.full_path about.process.file.full_path 直接複製值
about.process.pid about.process.pid 直接複製值
about.resource.attribute.permissions about.resource.attribute.permissions 直接從權限複製的值
其他 其他 直接重新命名
additional_cfp1 additional.fields 合併至其他欄位
additional_cfp2 additional.fields 併入其他欄位
additional_cfp3 additional.fields 合併至其他欄位
additional_cfp4 additional.fields 合併至其他欄位
additional_cn1 additional.fields 併入其他欄位
additional_cn2 additional.fields 合併至其他欄位
additional_cn3 additional.fields 合併至其他欄位
additional_cs1 additional.fields 合併至其他欄位
additional_cs2 additional.fields 併入其他欄位
additional_cs3 additional.fields 合併至其他欄位
additional_cs4 additional.fields 合併至其他欄位
additional_cs5 additional.fields 合併至其他欄位
additional_cs6 additional.fields 併入其他欄位
additional_cs7 additional.fields 合併至其他欄位
additional_devicePayloadId additional.fields 合併至其他欄位
additional_eventId additional.fields 合併至其他欄位
additional_fname additional.fields 合併至其他欄位
additional_flexString1 additional.fields 併入其他欄位
additional_flexString2 additional.fields 合併至其他欄位
app_protocol_output network.application_protocol 直接複製值
cs1Label、cs1 additional.fields cs1Label 中的鍵,cs1 中的值
cs2Label、cs2 additional.fields 鍵來自 cs2Label,值來自 cs2
cs3Label, cs3 additional.fields 鍵來自 cs3Label,值來自 cs3
cs4Label, cs4 additional.fields cs4Label 中的鍵,cs4 中的值
cs5Label、cs5 additional.fields cs5Label 中的鍵,cs5 中的值
cs6Label, cs6 additional.fields 鍵來自 cs6Label,值來自 cs6
cs7Label、cs7 additional.fields 鍵來自 cs7Label,值來自 cs7
cfp1Label, cfp1 additional.fields cfp1Label 的鍵,cfp1 的值
cfp2Label, cfp2 additional.fields cfp2Label 中的鍵,cfp2 中的值
cfp3Label, cfp3 additional.fields 鍵來自 cfp3Label,值來自 cfp3
cfp4Label, cfp4 additional.fields cfp4Label 中的鍵,cfp4 中的值
cn1Label、cn1 additional.fields 鍵來自 cn1Label,值來自 cn1
cn2Label, cn2 additional.fields 鍵來自 cn2Label,值來自 cn2
cn3Label, cn3 additional.fields cn3Label 中的鍵,cn3 中的值
customer_label security_result.detection_fields 合併至偵測欄位
destination_translated_address target.nat_ip 直接複製值
device_name_not_present, Enhetsnavn principal.hostname 如果 Device_name 不為空白,則為該值,否則為 Enhetsnavn
deviceExternalId about.asset.asset_id 串連的一部分
devicePayloadId additional.fields 以 devicePayloadId 做為鍵,並複製值
deviceTranslatedAddress about.nat_ip 直接複製值
device_vendor about.asset.asset_id 串連的一部分
device_product about.asset.asset_id 串連的一部分
device_version metadata.product_version 直接複製值
device_event_class_id、event_name metadata.product_event_type 如果兩者都存在,則串連為 [%{device_event_class_id}] - %{event_name},否則為 device_event_class_id 或 event_name
device_process_name about.process.command_line 直接複製值
device_vendor metadata.vendor_name 直接複製值
device_product metadata.product_name 直接複製值
dhost target.hostname 直接複製值
dmac target.mac 直接複製值
dntdom target.administrative_domain 直接複製值
dpid target.process.pid 直接複製值
dproc target.process.command_line 直接複製值
dst target.asset.ip 直接複製值
dst_ip target.ip 直接複製值
duid target.user.userid grok 擷取後 temp_duid 的值
duser target.user.user_display_name 直接複製值
dvchost about.hostname 直接複製值
deviceNtDomain about.administrative_domain 直接複製值
dvcmac about.mac 如果 MAC 有效,則為 dvcmac 的值
dvc_mac about.mac 如果 MAC 有效,則為 dvc_mac 的值
eventId additional.fields 索引鍵為 eventId,已複製值
eventid additional.fields 鍵為 eventId,值來自 eventid
externalId metadata.product_log_id 直接複製值
externalID_value metadata.product_log_id 直接複製值
file_full_path metadata.event_type 如果 file_full_path 不為空白,則設為 PROCESS_UNCATEGORIZED
fileHash about.file.sha256 如果不是雜湊,則直接複製值;否則為 about.file.full_path
filePath about.file.full_path 直接複製值
fileType about.file.mime_type 直接複製值
flexString1Label、flexString1 additional.fields 鍵來自 flexString1Label,值來自 flexString1
flexString2Label, flexString2 additional.fields 鍵來自 flexString2Label,值來自 flexString2
fname additional.fields 鍵為 fname,已複製值
已產生 metadata.event_timestamp 已使用日期比對 yyyy-MM-ddTHH:mm:ss 轉換
Generert metadata.event_timestamp 已使用日期比對 yyyy-MM-ddTHH:mm:ss 轉換
Group_name principal.group.group_display_name 直接複製值
Gruppenavn principal.group.group_display_name 如果 Group_name 為空白,則使用 Gruppenavn 的值
infection_channel_label security_result.detection_fields 合併至偵測欄位
在 network.received_bytes 如果不是 0,則轉換為 uinteger
IPv6_Address target.ip 如果不是「-」,則合併
ipv6 target.ip 如果不是「-」,則會合併
mac principal.mac 直接複製值
mac_address target.mac 直接複製值
mac_address about.mac mac_address 的值
中繼資料 中繼資料 直接重新命名
msg metadata.description 直接複製值
msg_data_2 security_result.description 直接複製值
mottatt_not_present、Mottatt metadata.collected_timestamp 已使用日期比對 yyyy-MM-ddTHH:mm:ss 轉換
網路 網路 直接重新命名
oldFilePath src.file.full_path 直接複製值
oldFileSize src.file.size 已轉換為 uinteger
old_permissions src.resource.attribute.permissions 直接複製值
operasjon_label security_result.detection_fields 已併入偵測欄位
operation_label security_result.detection_fields 已併入偵測欄位
out network.sent_bytes 如果不是 0,則轉換為 uinteger
permission_label security_result.detection_fields 已併入偵測欄位
權限 about.resource.attribute.permissions 直接複製值
主體 主體 直接重新命名
principal_ip principal.ip 直接複製值
principal_role principal.user.attribute.roles 已併入角色
protocol_number_src network.ip_protocol 直接複製值
已接收 metadata.collected_timestamp 使用日期比對 yyyy-MM-ddTHH:mm:ss 轉換
原因 security_result.summary 直接複製值
要求 target.url 直接複製值
requestClientApplication network.http.user_agent 直接複製值
requestMethod network.http.method 直接複製值
resource_Type_label target.resource.attribute.labels 已併入標籤
rt @timestamp 使用各種日期格式和時區調整項轉換
security_result security_result 直接合併
security_result_token security_result 直接合併
嚴重性 security_result.severity 如果值為 [0,1,2,3,LOW],請設為 LOW;如果值為 [4,5,6,MEDIUM,SUBSTANTIAL,INFO],請設為 MEDIUM;如果值為 [7,8,HIGH,SEVERE],請設為 HIGH;如果值為 [9,10,VERY-HIGH,CRITICAL],請設為 CRITICAL
shost principal.hostname 如果不是 IP,則直接複製值;否則為 principal.ip
shost principal.ip 如果 IP
shost_present principal.machine_id_present 設為 true
smac principal.mac 格式化後直接複製的值
sntdom principal.administrative_domain 直接複製值
sourceDnsDomain target.asset.hostname、target.hostname 透過 grok 從 sourceDnsDomain 取得的值,並傳送至 tar_host
sourceServiceName principal.application 直接複製值
sourceTranslatedAddress principal.nat_ip 直接複製值
sourceTranslatedPort principal.nat_port 已轉換為整數
spid principal.process.pid 直接複製值
sproc principal.process.command_line 直接複製值
spt principal.port 如果不是 0 或 {srcPort},則會轉換為整數
src principal.asset.ip 直接複製值
src_ip principal.ip 直接複製值
srcaddr principal.ip 直接複製值
spyware_Grayware_Type_label security_result.detection_fields 合併至偵測欄位
suser principal.user.user_display_name 如果開頭不是 {,則直接複製值
suid principal.user.userid 直接複製值
目標 目標 直接重新命名
target_ip target.ip 直接複製值
target_role target.user.attribute.roles 已合併至角色
temp_data 用於 grok 模式
temp_dhost target.hostname 直接複製值
temp_duser target.user.user_display_name 直接複製值
temp_duid target.user.userid grok 之後 temp_duid 的值
threat_probability_label security_result.detection_fields 已併入偵測欄位
tillatelse_label security_result.detection_fields 合併至偵測欄位
type_label security_result.detection_fields 合併至偵測欄位
使用者 target.user.userid 直接複製值
Bruker target.user.userid 如果使用者空白,則使用 Bruker 的值
使用者名稱 principal.user.userid 直接複製值
Virus_Malware_Name security_result.threat_name 如果 Spyware 為空,則取自 Virus_Malware_Name
間諜軟體 security_result.threat_name 直接複製值
Unknown_Threat security_result.threat_name 如果 Virus_Malware_Name 為空白,則為 Unknown_Threat 的值
_hash about.file.sha256 直接複製值
_message security_result.description 如果值有效,則直接複製
_metadata.customer security_result.detection_fields Key as Customer, value copied
_metadata.proxy.address principal.hostname、principal.asset.hostname 直接複製值
_metadata.source.address principal.hostname、principal.asset.hostname 直接複製值
_metadata.source.port principal.port 已轉換為整數
_metadata.source.type security_result.detection_fields 鍵為「Type」,值已複製
_metadata.timestamp.producer_process metadata.event_timestamp 使用日期比對 yyyy-MM-ddTHH:mm:ss.SSSZ 轉換
act security_result.action_details 直接複製值
act security_result.action 如果 act 為 [accept, notified]、outcome 為 REDIRECTED_USER_MAY_PROCEED、categoryOutcome 為 Success 或 cs2 為 Allow,則設為 ALLOW;如果 act 為 deny/blocked、outcome 為 BLOCKED、categoryOutcome 為 Failure 或 cs2 為 Denied,則設為 BLOCK;如果 outcome 為 Failure,則設為 FAIL
動作 security_result.action 直接複製值
應用程式 app_protocol_src 直接複製值
app_protocol_src network.application_protocol app_protocol_src 經大寫和對應後的值
categoryOutcome security_result.action 動作條件的一部分
cs2 security_result.action 動作條件的一部分
cs5 additional.fields 鍵來自 cs5Label,值來自 cs5
cs7 additional.fields 鍵來自 cs7Label,值來自 cs7
destinationTranslatedAddress target.nat_ip 直接複製值
destinationTranslatedPort target.nat_port 已轉換為整數
deviceDirection network.direction 設為 0 代表「INBOUND」,設為 1 代表「OUTBOUND」
device_event_class_id metadata.product_event_type 串連的一部分
duid target.user.userid grok 之後 temp_duid 的值
dvcmac about.mac dvcmac 格式化後的值
event_name metadata.product_event_type 串連的一部分
event_name metadata.event_type 如果位於 [LogSpyware, LogPredictiveMachineLearning],則設為 SCAN_UNCATEGORIZED
fileHash about.file.sha256 如果是雜湊,則直接複製值,否則為 about.file.full_path
Mottatt metadata.collected_timestamp 已使用日期比對 yyyy-MM-ddTHH:mm:ss 轉換
outcome security_result.action 動作的條件式部分
通訊埠 principal.port 已轉換為整數
protocol_number_src network.ip_protocol 對應後 protocol_number_src 的值
proto protocol_number_src 直接複製值
嚴重性 security_result.severity 根據值範圍對應
shost principal.hostname 如果不是 IP,則直接複製值
act security_result.action 根據條件式邏輯設定
app_protocol_src network.application_protocol 從 app_protocol_src 對應
protocol_number_src network.ip_protocol 對應自 protocol_number_src
Virus_Malware_Name security_result.threat_name Virus_Malware_Name 的值 (如果
flexString2 event.idm.read_only_udm.network.email.subject 從變更記錄對應
version event.idm.read_only_udm.additional.fields 從變更記錄對應
device_product event.idm.read_only_udm.additional.fields 從變更記錄對應
cs1 event.idm.read_only_udm.security_result.rule_name 從變更記錄對應
cs4 event.idm.read_only_udm.metadata.url_back_to_product 從變更記錄對應
suser event.idm.read_only_udm.network.email.from 從變更記錄對應
duser event.idm.read_only_udm.network.email.to 從變更記錄對應
fname event.idm.read_only_udm.target.file.names 從變更記錄對應
fileHash event.idm.read_only_udm.target.file.md5 從變更記錄對應
flexString1 event.idm.read_only_udm.about.file.sha256 從變更記錄對應
observer_application event.idm.read_only_udm.observer.application 從變更記錄對應
syslog_severity_label event.idm.read_only_udm.additional.fields 從變更記錄對應
start event.idm.read_only_udm.security_result.first_discovered_time 從變更記錄對應

變更記錄

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

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