收集 Skyhigh Security 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何使用 Bindplane 将 Skyhigh Security(以前称为 McAfee Skyhigh CASB)日志注入到 Google Security Operations 中。解析器会将 SYSLOG + KV 格式的日志转换为统一数据模型 (UDM)。它首先将日志消息规范化为键值对,然后将提取的字段映射到 event.idm.read_only_udm
对象中的相应 UDM 属性,并根据特定字段的存在情况和值对事件类型进行分类。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- Windows 2016 或更高版本,或者具有
systemd
的 Linux 主机 - 如果在代理后运行,防火墙端口处于开放状态
- 已安装并配置 Skyhigh Cloud Connector
- 对 Skyhigh Security Cloud Connector 的特权访问权限
获取 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
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 log_type: 'MCAFEE_SKYHIGH_CASB' raw_log_field: body ingestion_labels: 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
下载 Logging 客户端的前提条件
请确保您已备好以下详细信息:
- 使用情况分析用户权限:您的账号必须具有“使用情况分析用户”角色。
- 客户 ID:请按照以下步骤在 Skyhigh CASB 中查找您的客户 ID:
- 登录 Skyhigh CASB。
- 依次前往设置> 基础架构 > 客户端代理管理。
- 依次点击全局配置 > 租户身份验证。
- 在全局设置下,找到显示的客户 ID。
- 电子邮件地址和密码:您的(或专用服务账号)登录凭据(如果您使用 SAML 登录,但未提交密码,则无法安装日志记录客户端)。
下载并安装 Skyhigh Logging Client
- 将日志记录客户端下载到专用实例。
- 安装 Logging 客户端(如果需要,请解压缩下载的 EXE 文件)。
- 安装完成后,打开日志记录客户端。
- 在配置页面上,提供以下配置详细信息:
- 客户 ID:输入您在上一步中获得的 Skyhigh CASB 客户 ID。
- 服务:如果您使用的是 Skyhigh SSE,请选择 SSE;如果您将此产品与 Trellix ePO 搭配使用,请选择 WGCS。
- 区域:根据数据存储位置选择区域或国家/地区代码:
- 欧盟 - 欧盟
- IN - 印度
- SG - 新加坡
- UE - 阿拉伯联合酋长国
- 英国 - 英国
- 美国
- 名称:输入用户名,通常是用于登录 Secure Web Gateway 或专用实例的电子邮件地址。
- 密码:输入您用于登录 Secure Web Gateway 的密码。如果您使用 SAML 登录,则无法使用 Logging Client。
- API 版本:输入
version 13
。 - 日志类型:您可以下载不同类型的日志,包括包含源自 Web、远程浏览器隔离 (RBI)、专用访问和 Cloud 防火墙的数据的日志。
- 选择以 Syslog 格式发送,然后提供以下配置详细信息:
- Syslog-Client Host:输入 Bindplane 代理的 IP 地址。
- Syslog 客户端端口:输入 Bindplane 代理端口号。
- 传输:根据 Bindplane 代理配置,选择 UDP 或 TCP。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
EventReceivedTime | metadata.event_timestamp | 从 yyyy-MM-dd HH:mm:ss 格式转换为时间戳 |
FileSize | target.file.size | 直接映射,转换为无符号整数 |
主机名 | principal.hostname | 直接映射 |
MessageSourceAddress | principal.ip | 直接映射,如果存在多个实例,则合并 |
严重程度 | additional.fields.value.string_value(键:严重程度) | 直接映射 |
SeverityValue | additional.fields.value.string_value(键:SEVERITY_VALUE) | 直接映射 |
SourceModuleName | additional.fields.value.string_value(键:SOURCE_MODULE_NAME) | 直接映射 |
SourceModuleType | principal.resource.resource_subtype | 直接映射 |
SyslogFacility | security_result.about.resource.attribute.labels.value(键:SYSLOG_FACILITY) | 直接映射 |
SyslogFacilityValue | security_result.about.resource.attribute.labels.value(键:SYSLOG_FACILITY_VALUE) | 直接映射 |
SyslogSeverity | security_result.about.resource.attribute.labels.value(键:SYSLOG_SEVERITY) | 直接映射 |
SyslogSeverityValue | security_result.about.resource.attribute.labels.value(键:SYSLOG_SEVERITY_VALUE) | 直接映射 |
activityName | metadata.product_event_type | 直接映射,已移除方括号 |
actorId | principal.user.userid | 直接映射,如果是电子邮件地址,还会添加到 email_addresses |
actorIdType | principal.user.attribute.roles.name | 直接映射 |
collaborationSharedLink | security_result.about.resource.attribute.labels.value(键:COLLABORATION_SHARED_LINK) | 直接映射 |
contentItemId | target.file.full_path(如果 contentItemType 为 FILE) | 直接映射,移除了引号 |
contentItemId | target.url(如果 contentItemType 为 SAAS_RESOURCE) | 直接映射,移除了引号 |
contentItemHierarchy | additional.fields.value.string_value(键:CONTENT_ITEM_HIERARCHY) | 直接映射,移除了引号 |
contentItemName | target.resource.name | 直接映射,移除了引号 |
contentItemType | additional.fields.value.string_value(键:CONTENT_ITEM_TYPE) | 直接映射 |
incidentGroup | security_result.detection_fields.value(键:INCIDENT_GROUP) | 直接映射 |
incidentId | metadata.product_log_id | 直接映射 |
incidentRiskScore | security_result.detection_fields.value(键:INCIDENT_RISK_SCORE) | 直接映射 |
incidentRiskSeverityId | 与 riskSeverity 结合使用,以确定 security_result.severity | |
informationAccountId | target.resource.product_object_id | 直接映射 |
informationAnomalyCategory | security_result.category_details | 直接映射,移除了引号 |
informationAnomalyCause | security_result.detection_fields.value(键:INFO_ANOMALY_CAUSE) | 直接映射,移除了引号 |
informationCategory | security_result.category_details | 直接映射 |
informationConfigType | additional.fields.value.string_value(键:INFORMATION_CONFIG_TYPE) | 直接映射,移除了引号 |
informationContentItemParent | target.resource.parent | 直接映射,移除了引号 |
informationEventId | additional.fields.value.string_value(键:INFORMATION_EVENT_ID) | 直接映射 |
informationExternalCollaboratorsCount | additional.fields.value.string_value(键:INFORMATION_COLLAB_COUNT) | 直接映射 |
informationFileTypes | additional.fields.value.list_value.values.string_value(键:FILE_TYPE) | 从类似 JSON 的字符串中提取,并移除了方括号和英文引号 |
informationLastExecutedResponseLabel | additional.fields.value.string_value(键:INFORMATION_LAST_RESPONSE) | 直接映射 |
informationScanName | metadata.description | 直接映射,移除了引号 |
informationScanRunDate | 未映射到 UDM | |
informationSource | additional.fields.value.string_value(键:INFORMATION_SOURCE) | 直接映射 |
informationUniqueMatchCount | additional.fields.value.string_value(键:INFORMATION_UNQ_MATCH_COUNT) | 直接映射 |
informationUserAttributesSAMAccountName | principal.user.user_display_name | 直接映射,已移除方括号 |
instanceId | principal.resource.product_object_id | 直接映射 |
instanceName | principal.resource.name | 直接映射,移除了引号 |
policyId | security_result.rule_id | 直接映射 |
policyName | security_result.summary | 直接映射,移除了引号 |
回答 | 用于确定 security_result.action(ALLOW 或 BLOCK) | |
riskSeverity | 与 incidentRiskSeverityId 结合使用,以确定 security_result.severity(转换为大写) | |
serviceNames | target.application | 直接映射,已移除方括号、引号和多余的空格 |
sourceIps | principal.ip | 从类 JSON 字符串中提取,如果存在多个实例,则合并 |
状态 | additional.fields.value.string_value(键:STATUS) | 直接映射 |
threatCategory | security_result.threat_name | 直接映射,移除了引号 |
totalMatchCount | security_result.detection_fields.value(键:TOTAL_MATCH_COUNT) | 直接映射 |
不适用 | metadata.vendor_name | MCAFEE - 静态价值 |
不适用 | metadata.product_name | MCAFEE_SKYHIGH_CASB - 静态价值 |
不适用 | metadata.log_type | MCAFEE_SKYHIGH_CASB - 静态价值 |
不适用 | principal.resource.type | VIRTUAL_MACHINE - 如果存在 instanceName 或 instanceId,则进行设置 |
不适用 | metadata.event_type | 根据一组条件确定: - 如果存在 actorId、contentItemId 或 contentItemName,则为 USER_RESOURCE_UPDATE_CONTENT - 如果存在 actorId 和目标,则为 USER_UNCATEGORIZED - 如果存在主机名或 MessageSourceAddress,则为 STATUS_UPDATE - 否则为 GENERIC_EVENT |
不适用 | security_result.severity | 根据 riskSeverity 和 incidentRiskSeverityId 的组合确定: - 如果 riskSeverity 为 LOW ,且 incidentRiskSeverityId 为 0 ,则为 - 如果 riskSeverity 为 MEDIUM ,且 incidentRiskSeverityId 为 1 ,则为 - 如果 riskSeverity 为 HIGH ,且 incidentRiskSeverityId 为 2 ,则为 - 如果 riskSeverity 为 INFO ,且 incidentRiskSeverityId 为 3 ,则为 - 如果 riskSeverity 为 INFORMATIONAL ,且 incidentRiskSeverityId 为 ,则为 - 如果 riskSeverity 为 3 ,且 incidentRiskSeverityId 为 INFO ,则为 - 如果 riskSeverity 为 ,且 incidentRiskSeverityId 为 INFORMATIONAL ,则为 - 如果 riskSeverity 为 2 ,且 incidentRiskSeverityId 为 HIGH ,则为 - 如果 riskSeverity 为 1 ,且 incidentRiskSeverityId 为 MEDIUM ,则为 - 如果 riskSeverity 为 0 ,且 incidentRiskSeverityId 为 LOW ,则为 - 如果 riskSeverity 为 INFO ,且 incidentRiskSeverityId 为 INFO ,则为 - 如果 riskSeverity 为 3 ,且 incidentRiskSeverityId 为 3 ,则为 - 如果 riskSeverity 为 ,且 incidentRiskSeverityId 为 ,则为 - 如果 riskSeverity 为 2 ,且 incidentRiskSeverityId 为 2 , |
不适用 | security_result.action | 根据响应的值确定: - 如果响应包含 allow (不区分大小写),则为 ALLOW - 如果响应包含 Violation (不区分大小写),则为 BLOCK |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。