收集 Skyhigh Security 日志

支持的语言:

本文档介绍了如何使用 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 注入身份验证文件

  1. 登录 Google SecOps 控制台。
  2. 依次前往 SIEM 设置 > 收集代理
  3. 下载注入身份验证文件。将该文件安全地保存在将要安装 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
    

Linux 安装

  1. 打开具有 root 或 sudo 权限的终端。
  2. 运行以下命令:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

其他安装资源

如需了解其他安装选项,请参阅安装指南

配置 Bindplane 代理以注入 Syslog 并将其发送到 Google SecOps

  1. 访问配置文件:
    • 找到 config.yaml 文件。通常,它位于 Linux 上的 /etc/bindplane-agent/ 目录中或 Windows 上的安装目录中。
    • 使用文本编辑器(例如 nanovi 或记事本)打开该文件。
  2. 按如下方式修改 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 代理以应用更改

  1. 如需在 Linux 中重启 Bindplane 代理,请运行以下命令:

    sudo systemctl restart bindplane-agent
    
  2. 如需在 Windows 中重启 Bindplane 代理,您可以使用服务控制台,也可以输入以下命令:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

下载 Logging 客户端的前提条件

请确保您已备好以下详细信息:

  1. 使用情况分析用户权限:您的账号必须具有“使用情况分析用户”角色。
  2. 客户 ID:请按照以下步骤在 Skyhigh CASB 中查找您的客户 ID
    • 登录 Skyhigh CASB
    • 依次前往设置> 基础架构 > 客户端代理管理
    • 依次点击全局配置 > 租户身份验证
    • 全局设置下,找到显示的客户 ID
  3. 电子邮件地址和密码:您的(或专用服务账号)登录凭据(如果您使用 SAML 登录,但未提交密码,则无法安装日志记录客户端)。

下载并安装 Skyhigh Logging Client

  1. 日志记录客户端下载到专用实例。
  2. 安装 Logging 客户端(如果需要,请解压缩下载的 EXE 文件)。
  3. 安装完成后,打开日志记录客户端
  4. 配置页面上,提供以下配置详细信息:
    1. 客户 ID:输入您在上一步中获得的 Skyhigh CASB 客户 ID。
    2. 服务:如果您使用的是 Skyhigh SSE,请选择 SSE;如果您将此产品与 Trellix ePO 搭配使用,请选择 WGCS
    3. 区域:根据数据存储位置选择区域或国家/地区代码:
      • 欧盟 - 欧盟
      • IN - 印度
      • SG - 新加坡
      • UE - 阿拉伯联合酋长国
      • 英国 - 英国
      • 美国
    4. 名称:输入用户名,通常是用于登录 Secure Web Gateway 或专用实例的电子邮件地址。
    5. 密码:输入您用于登录 Secure Web Gateway 的密码。如果您使用 SAML 登录,则无法使用 Logging Client。
    6. API 版本:输入 version 13
    7. 日志类型:您可以下载不同类型的日志,包括包含源自 Web、远程浏览器隔离 (RBI)、专用访问和 Cloud 防火墙的数据的日志。
    8. 选择以 Syslog 格式发送,然后提供以下配置详细信息:
      • Syslog-Client Host:输入 Bindplane 代理的 IP 地址。
      • Syslog 客户端端口:输入 Bindplane 代理端口号。
      • 传输:根据 Bindplane 代理配置,选择 UDPTCP

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 专业人士那里获得解答。