收集 Lookout Mobile Endpoint Security 日志
本文档介绍了如何使用 Bindplane 代理将 Lookout Mobile Endpoint Security 日志注入到 Google Security Operations。
Lookout Mobile Endpoint Security (MES) 是一款全面的移动安全解决方案,可保护 iOS、Android 和 ChromeOS 设备免遭钓鱼式攻击、恶意软件、网络攻击和设备漏洞的侵害。它利用 AI 驱动的威胁情报来检测和防范移动威胁,同时保护用户隐私。Lookout MES 支持通过 syslog 以 CEF(通用事件格式)将安全事件转发到外部 SIEM 系统。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机 - Bindplane 代理与 Lookout MES SIEM 连接器主机之间的网络连接
- 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开
- 对 Lookout MES 控制台的管理员访问权限
- 在 Lookout MES 控制台中为 SIEM 连接器身份验证生成的应用密钥
获取 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)" install_unix.sh等待安装完成。
运行以下命令,验证安装是否成功:
sudo systemctl status observiq-otel-collector
该服务应显示为有效(正在运行)。
其他安装资源
如需了解其他安装选项和问题排查信息,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并将其发送到 Google SecOps
找到配置文件
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
修改配置文件
将
config.yaml的全部内容替换为以下配置:receivers: tcplog: listen_address: "0.0.0.0:6514" exporters: chronicle/lookout_mes: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: LOOKOUT_MOBILE_ENDPOINT_SECURITY raw_log_field: body ingestion_labels: log_type: LOOKOUT_MOBILE_ENDPOINT_SECURITY service: pipelines: logs/lookout_mes_to_chronicle: receivers: - tcplog exporters: - chronicle/lookout_mes
配置参数
替换以下占位符:
接收器配置:
listen_address:要监听的 IP 地址和端口:0.0.0.0监听所有接口- 建议使用端口
6514来实现支持 TLS 的 syslog;如果需要,可使用514或1514
- 建议使用
tcplog接收器,因为 Lookout SIEM 连接器支持 TCP syslog,而 TCP 可可靠地传送 CEF 事件
导出器配置:
creds_file_path:提取身份验证文件的完整路径:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id:您的 Google SecOps 客户 IDendpoint:区域端点网址:- 美国:
malachiteingestion-pa.googleapis.com - 欧洲:
europe-malachiteingestion-pa.googleapis.com - 亚洲:
asia-southeast1-malachiteingestion-pa.googleapis.com - 如需查看完整列表,请参阅区域级端点
- 美国:
保存配置文件
修改后,保存文件:
- Linux:依次按
Ctrl+O、Enter和Ctrl+X - Windows:依次点击文件 > 保存
- Linux:依次按
重启 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 收集器。
- 右键点击并选择重新启动。
验证服务是否正在运行:
```cmd sc query observiq-otel-collector ```检查日志是否存在错误:
```cmd type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log" ```
- 按
配置 Lookout Mobile Endpoint Security syslog 转发
Lookout MES 使用 SIEM 连接器应用通过 syslog 以 CEF 格式导出安全事件。SIEM 连接器会向 Lookout Mobile Risk API 进行身份验证,检索威胁事件,并以 CEF 格式的 syslog 消息将这些事件转发给您的 Bindplane 代理。
为 SIEM 连接器生成应用密钥
前往
https://app.lookout.com,登录 Lookout MES 控制台。在左侧导航栏中,依次前往系统 > 应用密钥。
点击右上角的 Generate Key(生成密钥)。
在标签字段中,输入一个描述性名称(例如
Bindplane-Chronicle-CEF)。点击下一步。
点击点击将应用密钥复制到剪贴板,复制生成的应用密钥。
重要提示:请立即复制并保存应用密钥。关闭此对话框后,您将无法再次检索此密钥。
记录系统设置中的企业 GUID。这是您的唯一 Lookout 租户标识符。
安装和配置 Lookout SIEM 连接器
- 从 Lookout 帮助门户下载 Lookout SIEM 连接器应用,或联系 Lookout Enterprise 支持团队获取最新的分发软件包。
- 在可同时访问 Lookout API 端点 (
https://api.lookout.com) 和 Bindplane 代理的主机上安装 SIEM 连接器。 - 打开 SIEM 连接器配置文件。
提供以下配置详细信息:
- 应用密钥:您从 Lookout MES 控制台生成的应用密钥
- 企业 GUID:您的 Lookout 租户标识符
- API 基本网址:
https://api.lookout.com - 输出格式:选择 CEF
- 传输协议:选择 TCP
- Syslog 服务器主机:输入 Bindplane 代理主机(例如
192.168.1.100)的 IP 地址 - Syslog 服务器端口:输入与 Bindplane 代理接收器配置相符的端口号(例如
6514)
保存配置文件。
启动 SIEM 连接器服务。
验证 syslog 传送
- 检查 SIEM 连接器日志,确认事件是否正在从 Lookout Mobile Risk API 检索并转发到 Bindplane 代理。
在 Bindplane 代理主机上,检查代理日志以确认是否正在接收 CEF 事件:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"在 Google SecOps 控制台中,验证 Lookout Mobile Endpoint Security 事件是否显示在搜索结果中。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| deviceNtDomain | about.administrative_domain | 直接复制值 |
| deviceExternalId | about.asset.asset_id | 由 device_vendor、device_product、deviceExternalId 连接而成 |
| filePath | about.file.full_path | 来自 filePath 的值,如果不是哈希,则来自 fileHash |
| fileHash | about.file.full_path | |
| fname | about.file.names | 直接复制值 |
| _hash | about.file.sha256 | 来自 _hash 或 fileHash 的值 |
| fileHash | about.file.sha256 | |
| fsize | about.file.size | 已转换为 uinteger |
| dvchost | about.hostname | 直接复制值 |
| dvc | about.ip | 从 dvc 中提取 IP,然后进行拆分和验证 |
| dvcmac | about.mac | 直接复制值 |
| deviceTranslatedAddress | about.nat_ip | 直接复制值 |
| deviceProcessName | about.process.command_line | 来自 deviceProcessName、Subject、Emne 或 Path 的值 |
| 主题 | about.process.command_line | |
| Emne | about.process.command_line | |
| 路径 | about.process.command_line | |
| dvcpid | about.process.pid | 直接复制值 |
| filePermission | about.resource.attribute.permissions | 直接复制值 |
| device_security_result | about.security_result | 直接复制值 |
| 已收到 | metadata.collected_timestamp | 根据“Received”标头解析,使用 yyyy-MM-ddTHH:mm:ss 日期格式 |
| msg | metadata.description | 直接复制值 |
| file_full_path | metadata.event_type | 如果设置了 file_full_path,则设置为 SCAN_UNCATEGORIZED;如果存在 principal_hostname、principal_ip、principal_mac,则设置为 STATUS_UPDATE;否则,设置为 GENERIC_EVENT;如果存在 has_principal_user,则设置为 USER_UNCATEGORIZED;如果存在 has_principal_host,则设置为 STATUS_UPDATE |
| principal_hostname | metadata.event_type | |
| has_principal_user | metadata.event_type | |
| principal_ip | metadata.event_type | |
| principal_mac | metadata.event_type | |
| device_event_class_id | metadata.product_event_type | 由 device_event_class_id - event_name 或 type 连接而成 |
| event_name | metadata.product_event_type | |
| 类型 | metadata.product_event_type | |
| externalId | metadata.product_log_id | 来自 externalId 或 target.id 的值 |
| target.id | metadata.product_log_id | |
| device_product | metadata.product_name | 直接复制值 |
| device_version | metadata.product_version | 直接复制值 |
| device_vendor | metadata.vendor_name | 直接复制值 |
| app_protocol_src | network.application_protocol | 根据预定义的协议规则,从 app_protocol_src 映射 |
| deviceDirection | network.direction | 如果为 0,则设置为 INBOUND;如果为 1,则设置为 OUTBOUND |
| requestMethod | network.http.method | 直接复制值 |
| requestClientApplication | network.http.user_agent | 直接复制值 |
| proto | network.ip_protocol | 使用 IANA 协议编号从 protocol_number_src 映射 |
| 英寸 | network.received_bytes | 已转换为 uinteger |
| out | network.sent_bytes | 已转换为 uinteger |
| sntdom | principal.administrative_domain | 来自 sntdom、Domain 或 Domene 的值 |
| 网域 | principal.administrative_domain | |
| Domene | principal.administrative_domain | |
| sourceServiceName | principal.application | 来自 sourceServiceName 或 details.applicationName 的值 |
| details.applicationName | principal.application | |
| 帮助 | principal.asset.asset_id | 由 metadata.vendor_name、metadata.product_name 和 AID 连接而成 |
| _hardware | principal.asset.hardware | 直接复制值 |
| principal_hostname | principal.asset.hostname | 来自 principal_hostname 的值(来自 Device_name、Enhetsnavn、shost [如果不是 IP]、entName) |
| av | principal.asset.platform_software.platform_version | 直接复制值 |
| agentZoneURI_label | principal.asset.attribute.labels | 从各种标签合并 |
| agentTimeZone_label | principal.asset.attribute.labels | |
| agentType_label | principal.asset.attribute.labels | |
| agentReceiptTime_label | principal.asset.attribute.labels | |
| token_new | principal.asset.attribute.labels | |
| details.path | principal.file.full_path | 直接复制值 |
| Group_name | principal.group.group_display_name | 来自 Group_name 或 Gruppenavn 的值 |
| Gruppenavn | principal.group.group_display_name | |
| Device_name | principal.hostname | 来自 Device_name、Enhetsnavn、shost(如果不是 IP)或 entName 的值 |
| Enhetsnavn | principal.hostname | |
| shost | principal.hostname | |
| entName | principal.hostname | |
| src | principal.ip | 如果 src 是有效的 IP,则返回 src 中的值;如果 src 是 IP,则返回 shost;否则返回 agt |
| shost | principal.ip | |
| agt | principal.ip | |
| smac | principal.mac | 直接复制值 |
| sourceTranslatedAddress | principal.nat_ip | 直接复制值 |
| sourceTranslatedPort | principal.nat_port | 转换为整数 |
| target.platform | principal.platform | 如果为 IOS,则设置为 MAC;如果为 ANDROID,则设置为 ANDROID |
| target.osVersion | principal.platform_version | 直接复制值 |
| spt | principal.port | 转换为整数 |
| sproc | principal.process.command_line | 来自 sproc 或 about.process.command_line 的值 |
| about.process.command_line | principal.process.command_line | |
| details.fileName | principal.process.file.full_path | 直接复制值 |
| spid | principal.process.pid | 直接复制值 |
| old_permissions | principal.resource.attribute.permissions | 直接复制值 |
| target.type | principal.resource.name | 直接复制值 |
| principal_role | principal.user.attribute.roles | 直接复制值 |
| suser | principal.user.user_display_name | 如果 suser 中的值不为空,则为 suser 中的值,否则为 CustomerName |
| CustomerName | principal.user.user_display_name | |
| suid | principal.user.userid | 来自 suid 或 target.emailAddress 的值 |
| target.emailAddress | principal.user.userid | |
| oldFilePath | src.file.full_path | 直接复制值 |
| oldFileSize | src.file.size | 已转换为 uinteger |
| old_permissions | src.resource.attribute.permissions | 直接复制值 |
| dntdom | target.administrative_domain | 直接复制值 |
| destinationServiceName | target.application | 直接复制值 |
| target_hostname | target.asset.hostname | 来自 target_hostname(来自 temp_dhost)的值 |
| token_new | target.asset.attribute.labels | 从 token_new 合并 |
| temp_dhost | target.hostname | 直接复制值 |
| dst_ip | target.ip | 直接复制值 |
| mac_address | target.mac | 直接复制值 |
| destination_translated_address | target.nat_ip | 直接复制值 |
| destinationTranslatedPort | target.nat_port | 转换为整数 |
| dpt | target.port | 转换为整数 |
| dproc | target.process.command_line | 直接复制值 |
| file_full_path | target.process.file.full_path | file_full_path 中的值(来自 File_name、Object、Objekt、Infected_Resource) |
| dpid | target.process.pid | 直接复制值 |
| 请求 | target.url | 来自请求或 details.url 的值 |
| details.url | target.url | |
| target_role | target.user.attribute.roles | 直接复制值 |
| temp_duser | target.user.user_display_name | 来自 temp_duser 或 CustomerName 的值 |
| CustomerName | target.user.user_display_name | |
| temp_duid | target.user.userid | 来自 temp_duid、User 或 Bruker 的值 |
| 用户 | target.user.userid | |
| Bruker | target.user.userid | |
| _action | security_result.action | 如果操作与 accept/notified/REDIRECTED_USER_MAY_PROCEED/Success 相匹配,则设置为 ALLOW;如果操作与 deny/blocked/BLOCKED/Failure/Failed 相匹配,则设置为 BLOCK;如果操作与 Failure 相匹配,则设置为 FAIL |
| act | security_result.action_details | 来自 act、details.action 或 Action_Taken 的值 |
| details.action | security_result.action_details | |
| Action_Taken | security_result.action_details | |
| 猫 | security_result.category_details | 来自 cat 或 sec_result_category_details 的值 |
| sec_result_category_details | security_result.category_details | |
| catdt_field | security_result.detection_fields | 从各种标签合并 |
| categorySignificance_label | security_result.detection_fields | |
| categoryBehavior_label | security_result.detection_fields | |
| categoryDeviceGroup_label | security_result.detection_fields | |
| categoryOutcome_label | security_result.detection_fields | |
| categoryObject_label | security_result.detection_fields | |
| operation_label | security_result.detection_fields | |
| operasjon_label | security_result.detection_fields | |
| permission_label | security_result.detection_fields | |
| tillatelse_label | security_result.detection_fields | |
| infection_channel_label | security_result.detection_fields | |
| spyware_Grayware_Type_label | security_result.detection_fields | |
| threat_probability_label | security_result.detection_fields | |
| categoryOutcome_label | security_result.outcomes | 直接复制值 |
| mwProfile | security_result.rule_name | 直接复制值 |
| 和程度上减少 | security_result.severity | 如果值为 0-3/LOW,则映射为 LOW;如果值为 4-6/MEDIUM/INFO/SUBSTANTIAL,则映射为 MEDIUM;如果值为 7-8/HIGH/SEVERE,则映射为 HIGH;如果值为 9-10/CRITICAL/VERY-HIGH,则映射为 CRITICAL |
| details.severity | security_result.severity | |
| reason | security_result.summary | 来自原因、appcategory 或结果的值 |
| appcategory | security_result.summary | |
| 结果 | security_result.summary | |
| 间谍软件 | security_result.threat_name | 间谍软件、病毒/恶意软件名称或未知威胁的值 |
| Virus_Malware_Name | security_result.threat_name | |
| Unknown_Threat | security_result.threat_name | |
actor.type |
event.idm.read_only_udm.additional.fields |
从变更日志映射 |
actor_type |
event.idm.read_only_udm.additional.fields |
从变更日志映射 |
changeType |
event.idm.read_only_udm.additional.fields |
从变更日志映射 |
id |
event.idm.read_only_udm.principal.resource.product_object_id |
从变更日志映射 |
CustomerName |
event.idm.read_only_udm.target.user.userid |
从变更日志映射 |
details.type", "details.packageSha", "details.packageName", "details.assessments", "details.activationStatus", "details.securityStatus", and "details.protectionStatus |
additional.fields |
从变更日志映射 |
target.manufacturer |
principal.asset.hardware.manufacturer |
从变更日志映射 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。