收集 Dope Security SWG 日志
本文档介绍了如何使用 Amazon S3 将 Dope Security SWG 日志注入到 Google Security Operations。
Dope Security dope.swg 是一款基于端点的安全 Web 网关,可提供实时 Web 过滤、恶意软件防护和云应用控制功能。每个 dope.endpoint 每 15 分钟向 dope.cloud 发送一次 Web 事务日志,这些日志随后会自动以压缩的 GZIP JSONL 格式导出到您的 AWS S3 存储桶,以实现 SIEM 集成。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 Dope Security dope.console 的特权访问权限
- 对 AWS (S3、IAM) 的特权访问权限
- 您的 Dope Security 租户必须与您的 S3 存储桶位于同一 AWS 区域(在设置 > SIEM 页面中验证区域)
配置 Dope Security SIEM 集成
如需配置 Dope Security SIEM 集成,请执行以下操作:
- 登录 dope.console,网址为 https://console.dope.security
- 依次前往设置 > SIEM > SIEM 集成设置。
- 在 SIEM 类型列表中,选择 AWS S3。
记下页面右侧显示的 AWS 区域(例如 US-EAST-2)。
请勿关闭此页面,因为您在设置 AWS S3 后会返回此页面完成配置。
为 Google SecOps 配置 AWS S3 存储桶和 IAM
- 创建 Amazon S3 存储桶。如需了解详情,请参阅创建存储桶。
- 创建存储桶时,请确保区域与 Dope Security SIEM 集成页面中显示的区域一致(例如 US East (Ohio) us-east-2)。
保存存储桶名称以供日后参考(例如
chronicle-dope-swg-logs)。创建用户。如需了解详情,请参阅创建 IAM 用户。
选择您创建的用户。
选择安全凭据标签页。
在访问密钥部分中,点击创建访问密钥。
选择第三方服务作为使用情形。
点击下一步。
可选:添加说明标记。
点击创建访问密钥。
点击下载 .csv 文件以保存访问密钥和密钥,供日后参考。
点击完成。
选择权限标签页。
在权限政策部分中,点击添加权限。
选择添加权限。
选择直接附加政策。
搜索 AmazonS3FullAccess 政策。
选择相应政策。
点击下一步。
点击添加权限。
配置 Dope Security Amazon S3 连接
- 返回 dope.console 中的设置 > SIEM > SIEM 集成设置页面。
- 在 S3 存储桶名称字段中,输入您的 S3 存储桶的名称(例如
chronicle-dope-swg-logs)。 - 在右侧窗格中,您会看到一个预先生成的 JSON 政策,位于存储分区政策部分。
- 点击政策 JSON 旁边的复制,将其复制到剪贴板。
- 在新浏览器标签页中,前往 AWS S3 控制台。
- 选择您的 S3 存储桶(例如
chronicle-dope-swg-logs)。 - 前往权限标签页。
- 向下滚动到存储分区政策部分。
- 点击修改。
- 将从 dope.console 复制的政策 JSON 粘贴到政策文本区域中。
- 点击保存更改。
- 返回到 dope.console 浏览器标签页。
- 点击“SIEM 集成设置”页面底部的同步。
- 等待同步完成。
- 验证 S3 存储分区名称字段旁边是否显示一个绿色对勾标记。
验证页面右上角是否显示上次同步时间戳。
在 Google SecOps 中配置 Feed 以注入 Dope Security SWG 日志
- 依次前往 SIEM 设置> Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 为Feed 名称输入一个唯一名称(例如
Dope Security SWG Logs)。 - 选择 Amazon S3 V2 作为来源类型。
- 选择 DOPE_SWG 作为日志类型。
- 点击下一步,然后点击提交。
为以下字段指定值:
- S3 URI:
s3://chronicle-dope-swg-logs/(替换为您的存储桶名称) - 来源删除选项:根据您的偏好选择删除选项
- 文件存在时间上限:包含在过去指定天数内修改的文件(默认值为 180 天)
- 访问密钥 ID:有权访问 S3 存储桶的用户访问密钥(来自 AWS 配置的第 12 步)
- Secret Access Key:具有 S3 存储桶访问权限的用户密钥(来自 AWS 配置的第 12 步)
- 资产命名空间:资产命名空间
- 注入标签:要应用于此 Feed 中事件的标签
- S3 URI:
点击下一步,然后点击提交。
日志数据格式参考
Dope Security 会以 JSONL(JSON 行)格式导出日志,并采用 GZIP 压缩。每个日志条目都包含以下关键字段:
| 字段 | 说明 |
|---|---|
| 时间戳 | Web 交易的请求时间(采用 ISO 8601 时间戳格式) |
| 时长 | 连接时长(以毫秒为单位) |
| 匹配的目标网址 | 与兴奋剂类别匹配的网域 |
| 目标 IP | 所请求网址的目标 IP 地址 |
| 租户 ID | 客户的 dope.cloud 唯一租户 ID |
| 代理 ID | dope.endpoint 的唯一代理 ID |
| User | 登录到 dope.endpoint 的用户 |
| OIDC 用户 | 经过身份验证的用户的电子邮件地址(当 OIDC 身份验证已启用时) |
| 类别 | 所请求网址的匹配兴奋剂类别编号 (0-88) |
| Verdict | 政策判定:允许 (0)、禁止 (1)、警告 (2) 或绕过 (3) |
| 已发送的数据 | 连接中发送的数据量(以字节为单位) |
| 收到的数据 | 连接中接收的数据量(以字节为单位) |
| 政策类型 | 应用的政策类型:Web、云应用控制 (CAC)、自定义类别、绕过或恶意软件 |
| 屏蔽详细信息 | 对于屏蔽判决:违禁内容类别、自定义类别、云应用或恶意软件类型 |
| 文件名 | 任何已下载文件的名称 |
| 文件哈希值 | 已下载文件的文件哈希值 |
| 流程名称 | 发出网址请求的进程的名称 |
| 网址 | 完整请求网址 |
| 政策名称 | 所应用政策的名称 |
| 协议 | 所用协议(例如 HTTP/2、HTTP/1.1) |
| 主机名 | 设备主机名 |
| HTTP 请求方法 | HTTP 请求方法(例如 GET、POST、PUT) |
| 进程调用树 | 通过包含命令实参的进程派生操作建立的父子关系 |
如需查看完整的类别和判定对应关系,请参阅 Dope Security 类别和判定对应关系文档。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| policy.categories、request.processTree | additional.fields | 以 JSON 格式合并为列表(来自 policy.categories 和 request.processTree) |
| 时间戳 | metadata.event_timestamp | 在 JSON 和 CSV 中均解析为 ISO8601 时间戳 |
| metadata.event_type | 如果 JSON 中包含 has_principal、has_target、has_http,则设置为 NETWORK_HTTP;否则,如果包含 has_principal 和 has_target,则设置为 NETWORK_CONNECTION;否则,如果包含 has_user,则设置为 USER_UNCATEGORIZED;否则,如果包含 has_principal,则设置为 STATUS_UPDATE;否则,设置为 GENERIC_EVENT;在 CSV 中设置为 NETWORK_HTTP | |
| schemaVersion | metadata.product_version | 直接从 JSON 中的 schemaVersion 复制的值 |
| request.httpVersion | network.http.user_agent | 直接从 JSON 中的 request.httpVersion 复制的值 |
| bandwidth.dataReceivedInBytes, bytes_received | network.received_bytes | 如果 bandwidth.dataReceivedInBytes(在 JSON 中)或 bytes_received(在 CSV 中)不为空且不为 0,则从带宽转换为 uinteger |
| bandwidth.dataSentInBytes, bytes_sent | network.sent_bytes | 如果 bandwidth.dataSentInBytes(在 JSON 中)或 bytes_sent(在 CSV 中)不为空且不为 0,则从带宽转换为 uinteger |
| request.duration | network.session_duration.seconds | 从 JSON 中的 request.duration 转换为整数 |
| endpoint.agentID、endpoint_id | principal.asset.asset_id | 以“DS”为前缀:来自 JSON 中的 endpoint.agentID 或 CSV 中的 endpoint_id |
| endpoint.tenantID | principal.asset.attribute.cloud.project.id | 直接从 JSON 中的 endpoint.tenantID 复制的值 |
| endpoint.deviceName | principal.asset.hostname | 直接从 JSON 中的 endpoint.deviceName 复制的值 |
| endpoint.deviceName、endpoint_hostname | principal.hostname | JSON 中的 endpoint.deviceName 或 CSV 中的 endpoint_hostname 的值 |
| request.processName | principal.process.command_line | 直接从 JSON 中的 request.processName 复制的值 |
| process_name | principal.process.file.names | 直接从 CSV 中的 process_name 复制的值 |
| sso_user、user | principal.user.account_type | 如果 sso_user 不为空,则设置为 DOMAIN_ACCOUNT_TYPE;否则,在 CSV 中设置为 LOCAL_ACCOUNT_TYPE |
| endpoint.oidcUser | principal.user.email_addresses | 如果 endpoint.oidcUser 与 JSON 中的电子邮件正则表达式匹配,则合并 |
| endpoint.oidcUser | principal.user.user_display_name | 如果 endpoint.oidcUser 与 JSON 中的电子邮件正则表达式不匹配,则直接复制值 |
| endpoint.user、sso_user、user | principal.user.userid | JSON 中 endpoint.user 的值;如果非空,则为 sso_user,否则为 CSV 中的 user |
| security_result | security_result | 从 JSON 中的 security_result 合并 |
| policy.verdict、verdict | security_result.action | 如果 JSON 中的 policy.verdict 或 CSV 中的 verdict 为 1,则设置为 BLOCK;如果为 0,则设置为 ALLOW;如果为 2,则设置为 CHALLENGE |
| categories | security_result.action_details | 直接从 CSV 中的类别复制的值 |
| policy.policyName | security_result.rule_name | 直接从 JSON 中的 policy.policyName 复制的值 |
| policy.policyType | security_result.rule_type | 直接从 JSON 中的 policy.policyType 复制的值 |
| file_name | target.file.names | 直接从 CSV 中的 file_name 复制的值 |
| file_hash | target.file.sha256 | 直接从 CSV 中的 file_hash 复制的值 |
| destination.matchedDestination, domain | target.hostname | 如果 JSON 中没有 IP,则为 destination.matchedDestination 中的值;如果 CSV 中有网域,则为网域中的值 |
| destination.matchedDestination、destination.destinationIP、ip | target.ip | 如果 JSON 中有 IP,则为 destination.matchedDestination 或 destination.destinationIP 中的值;如果 CSV 中有 IP,则为 ip 中的值 |
| destination.url, url | target.url | JSON 中 destination.url 的值;CSV 中 url 的值 |
| metadata.product_name | 在 JSON 中设置为“DOPE_SWG”;在 CSV 中设置为“SWG” | |
| metadata.vendor_name | 在 JSON 中设置为“DOPE_SWG”;在 CSV 中设置为“Dope Security” |
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。