收集 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 设备之间的网络连接
- 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开
- 对 FireEye eMPS 设备 CLI 的特权访问权限(管理员或操作员角色)
- 具有 syslog 通知功能的 FireEye eMPS 设备
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 点击下载以下载数据注入身份验证文件。
- 将文件安全地保存在将要安装 Bindplane 代理的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet等待安装完成。
运行以下命令,验证安装是否成功:
sc query observiq-otel-collector
该服务应显示为 正在运行。
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
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等待安装完成。
运行以下命令,验证安装是否成功:
sudo systemctl status observiq-otel-collector
该服务应显示为有效(正在运行)。
其他安装资源
如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并将其发送到 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: compression: gzip creds_file_path: '/etc/bindplane-agent/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 service: pipelines: logs/fireeye_to_chronicle: receivers: - udplog exporters: - chronicle/fireeye_emps
配置参数
替换以下占位符:
接收器配置:
- 接收器配置为在端口 514 上使用 UDP Syslog。
- 如需在 Linux 上使用非特权端口,请将
514更改为1514或更高值。 - 如需使用 TCP 而非 UDP,请将
udplog替换为tcplog。
导出器配置:
creds_file_path:提取身份验证文件的完整路径。YOUR_CUSTOMER_ID:替换为您的实际客户 ID。endpoint:区域端点网址(例如malachiteingestion-pa.googleapis.com)。log_type:必须正好为FIREEYE_EMPS。ingestion_labels:YAML 格式的可选标签。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请执行以下操作:
运行以下命令:
sudo systemctl restart observiq-otel-collector验证服务是否正在运行:
sudo systemctl status observiq-otel-collector检查日志是否存在错误:
sudo journalctl -u observiq-otel-collector -f
如需在 Windows 中重启 Bindplane 代理,请执行以下操作:
请从下列选项中选择一项:
- 以管理员身份运行命令提示符或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector- 服务控制台:
- 按
Win+R,输入services.msc,然后按 Enter 键。 - 找到 observIQ OpenTelemetry 收集器。
- 右键点击并选择重新启动。
- 按
验证服务是否正在运行:
sc query observiq-otel-collector检查日志是否存在错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
配置 FireEye eMPS syslog 转发
访问 FireEye eMPS CLI
- 通过 SSH 或控制台连接到 FireEye eMPS 设备。
- 登录并进入启用模式:
hostname> enable - 进入配置模式:
hostname# configure terminal
配置 syslog 服务器
- 将 Bindplane 代理添加为 syslog 陷阱接收器:
hostname(config)# fenotify rsyslog trap-sink chronicle address <BINDPLANE_IP_ADDRESS> - 将 syslog 格式设置为 CEF:
hostname(config)# fenotify rsyslog trap-sink chronicle prefer message format cef - 将 syslog facility 设置为 local4(推荐):
hostname(config)# fenotify rsyslog default facility local4 - 设置传送模式:
hostname(config)# fenotify rsyslog trap-sink chronicle message delivery per-event - 设置提醒的严重程度:
hostname(config)# fenotify rsyslog trap-sink chronicle prefer message send-as alert - 设置协议:
hostname(config)# fenotify rsyslog trap-sink chronicle protocol udp - 设置端口:
hostname(config)# fenotify rsyslog trap-sink chronicle port 514
启用 syslog 通知
- 全局启用 rsyslog 通知:
hostname(config)# fenotify rsyslog enable - 启用全局通知:
hostname(config)# fenotify enable 启用特定类型的提醒:
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验证配置:
hostname(config)# show fenotify alerts保存并退出:
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 | 如果 dvcmac 是有效的 MAC,则为 dvcmac 中的值,否则为 mac_address 中的值 |
| about.nat_ip | about.nat_ip | 直接从 deviceTranslatedAddress 复制的值 |
| 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 不为空,则为 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,则转换为无符号整数 |
| 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,则转换为无符号整数 |
| 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 进行转换 |
| reason | 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 | 从临时 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 | 以客户身份登录,复制值 |
| _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 | 以类型为键,值已复制 |
| _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 | 从临时 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 |
从变更日志映射 |