收集 Cylance PROTECT 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 将 Cylance PROTECT 日志注入到 Google Security Operations。Logstash 解析器代码会将 Cylance PROTECT syslog 消息转换为统一数据模型 (UDM)。它从 syslog 消息中提取字段,对其进行标准化处理,将其映射到 UDM 字段,并使用威胁严重程度和类别信息来丰富数据。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows 2016 或更高版本,或者具有
systemd
的 Linux 主机 - 如果在代理后运行,防火墙端口处于开放状态
- 对 Cylance PROTECT 的特权访问权限
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载注入身份验证文件。将该文件安全地保存在将要安装 Bindplane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
其他安装资源
如需了解其他安装选项,请参阅安装指南。
配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps
- 访问配置文件:
- 找到
config.yaml
文件。通常,它位于 Linux 上的/etc/bindplane-agent/
目录中或 Windows 上的安装目录中。 - 使用文本编辑器(例如
nano
、vi
或记事本)打开该文件。
- 找到
按如下方式修改
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: 'CYLANCE_PROTECT' raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
根据基础架构的需要替换端口和 IP 地址。
将
<customer_id>
替换为实际的客户 ID。将
/path/to/ingestion-authentication-file.json
更新为获取 Google SecOps 提取身份验证文件部分中保存身份验证文件的路径。
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请运行以下命令:
sudo systemctl restart bindplane-agent
如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:
net stop BindPlaneAgent && net start BindPlaneAgent
在 Cylance Protect 中配置 Syslog
- 登录 Cylance 管理控制台。
- 依次前往设置 > 应用。
- 选中 Syslog/SIEM 复选框。
- 选择所有活动。
- 提供以下配置详细信息:
- SIEM:选择 Syslog。
- 协议:选择 UDP。
- 选中允许发送超过 2KB 的消息复选框。
- IP/网域:输入 Bindplane 代理 IP 地址。
- 端口:输入 Bindplane 代理端口号(例如,对于 UDP,输入
514
)。 - 设备:选择应用日志记录的类型。
- 点击测试连接。
- 点击保存。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
代理版本 | metadata.product_version | 从 Agent Version: <value> 中提取的值 |
Cylance 得分 | security_result.severity_details | 从 Cylance Score: <value> 中提取的值 |
security_result.severity | 根据以下逻辑进行映射: - 高:如果 Cylance 得分 > 67 - 中:如果 Cylance 得分 > 33 - 低:如果 Cylance 得分 <= 33 |
|
检测者 | security_result.detection_fields.value | 从 Detected By: <value> 中提取的值 |
设备 ID | principal.asset_id | 从 Device Id: <value> 中提取的值,并添加了 Cylance: 前缀 |
设备 ID | principal.asset_id | 从 Device Ids: <value> 中提取并以 Cylance: 为前缀的值,在不存在 Device Id 时使用 |
设备名称 | principal.hostname | 从 Device Name: <value> 中提取的值 |
设备名称 | target.hostname | 从 Device Name: <value> 中提取的值,用于特定事件类型,例如 ScriptControl |
设备名称 | principal.hostname | 从 Device Names: <value> 中提取的值,在不存在 Device Name 时使用 |
说明 | security_result.summary | 从 Description: <value> 中提取的值,用于特定事件类型,例如 OpticsCaeNetworkEvent |
目标 IP 地址 | target.ip | 从 Destination IP: <value> 中提取的值 |
目标端口 | target.port | 从 Destination Port: <value> 中提取的值 |
事件 ID | metadata.product_log_id | 从 Event Id: <value> 中提取的值 |
事件名称 | 用于确定特定事件子类型并应用相应逻辑 | |
事件类型 | metadata.product_event_type | 从 Event Type: <value> 中提取的值 |
metadata.event_type | 根据 Event Type 和 Event Name 字段进行映射,默认值为 GENERIC_EVENT |
|
文件名 | principal.process.file.full_path | 从 File Name: <value> 中提取的值与 Path: <value> 组合形成完整路径 |
文件路径 | target.file.full_path | 从 File Path: <value> 中提取的值 |
发起进程 ImageFileSha256 | principal.process.file.sha256 | 从 Instigating Process ImageFileSha256: <value> 中提取的值 |
启动进程名称 | principal.process.file.full_path | 从 Instigating Process Name: <value> 中提取的值 |
发起流程的所有者 | principal.user.userid | 从 Instigating Process Owner: <value> 中提取的值,如果存在,则在按 // 分割后提取用户名 |
发起流程的所有者 | principal.administrative_domain | 通过按 // (如果存在)拆分 Instigating Process Owner: <value> 提取的域名 |
IP 地址 | principal.ip | 从 IP Address: (<value>) 中提取的 IP 地址 |
解析器 | security_result.rule_labels.value | 从 Interpreter: <value> 中提取的值 |
口译员版本 | security_result.rule_labels.value | 从 Interpreter Version: <value> 中提取的值 |
已登录的用户 | about.user.userid | 从 Logged On Users: (<value>) 中提取的用户名 |
MAC 地址 | principal.mac | 从 MAC Address: (<value>) 中提取并使用冒号设置格式的 MAC 地址 |
MD5 | principal.process.file.md5 | 从 MD5: <value> 中提取的值 |
消息 | 用于提取特定事件类型(例如 AuditLog )的数据 |
|
操作系统 | principal.platform | 如果 OS 字段包含 Windows ,则映射到 WINDOWS |
路径 | principal.process.file.full_path | 从 Path: <value> 中提取的值与 File Name: <value> 组合形成完整路径 |
政策名称 | security_result.rule_name | 从 Policy Name: <value> 中提取的值 |
进程 ID | principal.process.pid | 从 Process ID: <value> 中提取的值 |
进程名称 | principal.process.file.full_path | 从 Process Name: <value> 中提取的值 |
已解析的地址 | network.dns.answers.name | 从 Resolved Address: <value> 中提取的值 |
SHA256 | principal.process.file.sha256 | 从 SHA256: <value> 中提取的值 |
来源 IP | principal.ip | 从 Source IP: <value> 中提取的值,用于特定事件类型 |
状态 | security_result.action | 根据值映射到特定的 UDM 操作: - Quarantined :隔离 - Cleared :允许并修改 |
目标域名 | network.dns.questions.name | 从 Target Domain Name: <value> 中提取的值 |
目标进程 ImageFileSha256 | target.process.file.sha256 | 从 Target Process ImageFileSha256: <value> 中提取的值 |
目标进程名称 | target.process.file.full_path | 从 Target Process Name: <value> 中提取的值 |
目标流程所有者 | target.user.userid | 从 Target Process Owner: <value> 中提取的值,如果存在,则在按 // 分割后提取用户名 |
目标流程所有者 | target.administrative_domain | 通过按 // (如果存在)拆分 Target Process Owner: <value> 提取的域名 |
目标注册表 KeyPath | target.registry.registry_key | 从 Target Registry KeyPath: <value> 中提取的值 |
威胁分类 | security_result.threat_name | 从 Threat Classification: <value> 中提取的值 |
用户 | principal.user.userid | 如果存在,则从 User: <value> 中提取的用户名;如果不存在,则使用此用户名User Name |
用户 | principal.user.email_addresses | 如果存在,则从 User: <value> 中提取的电子邮件地址;如果不存在 User Name ,则使用该地址 |
用户名 | principal.user.userid | 从 User Name: <value> 中提取的值 |
违规类型 | security_result.summary | 从 Violation Type: <value> 中提取的值,并添加了 ExploitAttempt: 前缀 |
违规类型 | security_result.threat_name | 从 Violation Type: <value> 中提取的值 |
地区名称 | security_result.description | 从 Zone Names: (<value>) 中提取的值,并添加了 Zone_Names: 前缀 |
metadata.vendor_name | 硬编码为 Cylance |
|
metadata.product_name | 从日志消息中提取的值,可以是 PROTECT 或 OPTICS |
|
metadata.log_type | 硬编码为 CYLANCE_PROTECT |
|
network.ip_protocol | 针对 OpticsCaeNetworkEvent 事件硬编码为 TCP |
|
network.application_protocol | 针对 OpticsCaeDnsEvent 事件硬编码为 DNS |
|
security_result.rule_labels.key | 根据可用字段设置为 Interpreter 或 Interpreter Version |
|
security_result.detection_fields.key | 硬编码为 Detected By |
|
security_result.category | 根据事件类型进行映射,可能的值包括: - SOFTWARE_SUSPICIOUS - AUTH_VIOLOATION - POLICY_VIOLATION - NETWORK_SUSPICIOUS - EXPLOIT - SOFTWARE_MALICIOUS |
|
security_result.action | 根据事件类型和特定条件进行映射,可能的值包括: - ALLOW - BLOCK - QUARANTINE - ALLOW_WITH_MODIFICATION |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。