收集 Skyhigh Secure Web Gateway(本地)日志
本文档介绍了如何使用 Google Cloud Storage 将 Skyhigh Secure Web Gateway(本地)日志注入到 Google SecOps。
Skyhigh Secure Web Gateway(以前称为 McAfee Web Gateway)是一种本地 Web 安全解决方案,可提供恶意软件检测、网址过滤、应用控制、数据泄露防护和 HTTPS 检查,以保护组织免受基于 Web 的威胁,并强制执行合理使用政策。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例
- 对 Skyhigh Secure Web Gateway 管理控制台的特权访问权限
- 已启用 Cloud Storage API 的 GCP 项目
- 一个基于 Linux 的收集服务器,具有对 Skyhigh Secure Web Gateway 设备和 Google Cloud Storage 的出站网络访问权限
- Skyhigh Secure Web Gateway 版本 7.x 或更高版本
配置 Skyhigh Secure Web Gateway 访问日志格式
配置日志处理程序规则集,以生成 JSON 格式的访问日志条目。
- 登录 Skyhigh Secure Web Gateway 管理控制台。
- 依次前往政策 > 规则集。
- 点击左侧导航栏中的 Log Handler。
- 展开默认规则集。
- 选择嵌套的 Access Log 规则集。
- 点击添加 > 规则以创建新规则。
- 使用以下设置配置规则:
- 名称:输入
Write access log data for collection - 条件:选择始终
- 操作:选择继续
- 活动:依次点击添加 > 活动
- 名称:输入
- 在“添加活动”对话框中:
- 选择 Set User-Defined.logLine。
- 点击参数。
- 通过组合必需的属性来构建日志行值。使用 User-Defined.logLine 属性将各个字段连接成所需的格式。
- 点击确定。
- 添加第二个事件,用于将日志行写入访问日志文件:
- 依次点击添加 > 事件。
- 选择文件系统日志记录。
- 点击参数。
- 对于消息参数,请选择 User-Defined.logLine。
- 点击确定。
- 点击完成以保存此规则。
点击页面顶部的保存更改。
配置文件系统日志记录自动推送
配置 Skyhigh Secure Web Gateway 以自动将访问日志文件推送到收集服务器。
- 在 Skyhigh Secure Web Gateway 控制台中,依次前往政策 > 设置 > 引擎 > 文件系统日志记录。
- 选择访问日志配置设置。
- 展开轮换、推送和删除设置。
- 在自动推送部分中:
- 选中启用自动推送复选框。
- 在目的地字段中,输入收集服务器的 FTP 或 HTTP 网址:
- FTP 示例:
ftp://COLLECTION_SERVER_IP:21/swg-logs/ - HTTP 示例:
http://COLLECTION_SERVER_IP:9111/logloader/
- FTP 示例:
- 在用户名字段中,输入收集服务器的用户名。
- 在密码字段中,输入收集服务器的密码。
- 在轮换部分,根据日志量配置轮换间隔:
- 对于高流量环境,请将轮播频率设置为每 5-15 分钟一次
- 对于标准环境,请将轮换频率设置为每 30-60 分钟一次
点击保存更改。
验证日志前缀
- 在 Skyhigh Secure Web Gateway 控制台中,依次前往配置 > 设备 > Syslog > 日志前缀。
- 验证前缀是否已设置为 mwg。
如果前缀不同,请将其更改为 mwg,然后点击保存更改。
创建 Google Cloud Storage 存储桶
- 前往 Google Cloud 控制台。
- 选择您的项目或创建新项目。
- 在导航菜单中,依次前往 Cloud Storage > 存储分区。
- 点击创建存储分区。
提供以下配置详细信息:
设置 值 为存储桶命名 输入一个全局唯一的名称(例如 skyhigh-swg-logs)位置类型 根据您的需求进行选择(区域级、双区域、多区域) 位置 选择营业地点(例如 us-central1)存储类别 标准(建议用于经常访问的日志) 访问权限控制 均匀(推荐) 保护工具 可选:启用对象版本控制或保留政策 点击创建。
配置收集服务器以将日志上传到 GCS
设置收集服务器以接收 Skyhigh Secure Web Gateway 推送的日志文件,并将这些文件上传到 GCS 存储桶。
安装 gcloud CLI
在收集服务器上,安装 gcloud CLI:
curl https://sdk.cloud.google.com | bash exec -l $SHELL初始化 gcloud CLI:
gcloud init使用服务账号或用户账号进行身份验证:
gcloud auth login设置默认项目:
gcloud config set project PROJECT_ID
配置 FTP 服务器以接收推送的日志
在收集服务器上安装 FTP 服务器(例如 vsftpd):
sudo apt-get install vsftpd -y为推送的日志文件创建一个专用目录:
sudo mkdir -p /var/log/swg-logs sudo chown ftp:ftp /var/log/swg-logs配置 FTP 服务器,以允许对日志目录的写入访问权限。
启动 FTP 服务:
sudo systemctl enable vsftpd sudo systemctl start vsftpd
创建 GCS 上传脚本
创建上传脚本:
sudo mkdir -p /opt/swg-gcs-uploader创建包含以下内容的文件
/opt/swg-gcs-uploader/upload_to_gcs.sh:#!/bin/bash LOG_DIR="/var/log/swg-logs" GCS_BUCKET="gs://skyhigh-swg-logs/swg-access-logs/" ARCHIVE_DIR="/var/log/swg-logs/archived" mkdir -p "$ARCHIVE_DIR" # Upload new log files to GCS for log_file in "$LOG_DIR"/*.log; do if [ -f "$log_file" ]; then gsutil cp "$log_file" "$GCS_BUCKET" if [ $? -eq 0 ]; then mv "$log_file" "$ARCHIVE_DIR/" echo "$(date): Uploaded and archived $(basename "$log_file")" else echo "$(date): Failed to upload $(basename "$log_file")" fi fi done # Clean up archived files older than 7 days find "$ARCHIVE_DIR" -type f -mtime +7 -delete让该脚本可执行:
sudo chmod +x /opt/swg-gcs-uploader/upload_to_gcs.sh将
skyhigh-swg-logs替换为 GCS 存储桶的实际名称。
安排上传脚本
打开 crontab 编辑器:
sudo crontab -e添加以下条目,以便每 10 分钟运行一次上传:
*/10 * * * * /opt/swg-gcs-uploader/upload_to_gcs.sh >> /var/log/swg-gcs-uploader.log 2>&1保存并退出。
验证上传
- 等待 Skyhigh Secure Web Gateway 将日志文件推送到收集服务器。
验证日志文件是否位于日志目录中:
ls -la /var/log/swg-logs/手动运行上传脚本以进行测试:
sudo /opt/swg-gcs-uploader/upload_to_gcs.sh验证文件是否已上传到 GCS:
gsutil ls gs://skyhigh-swg-logs/swg-access-logs/
将配置应用于中央管理集群
如果您在中央管理集群中运行多个 Skyhigh Secure Web Gateway 设备,请执行以下操作:
- 在集群中的每个设备上重复执行文件系统日志记录自动推送配置。
日志处理程序规则集配置会在整个集群中自动同步。
检索 Google SecOps 服务账号
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称(例如
Skyhigh SWG Logs)。 - 选择 Google Cloud Storage V2 作为来源类型。
- 选择 McAfee Web Protection 作为日志类型。
点击获取服务账号。系统会显示一个唯一的服务账号电子邮件地址,例如:
chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com复制此电子邮件地址,以便在下一步中使用。
点击下一步。
为以下输入参数指定值:
存储桶网址:输入带有前缀路径的 GCS 存储桶 URI:
gs://skyhigh-swg-logs/swg-access-logs/来源删除选项:根据您的偏好选择删除选项:
- 永不:转移后永不删除任何文件(建议用于测试)。
- 删除已转移的文件:在成功转移后删除文件。
删除已转移的文件和空目录:成功转移后删除文件和空目录。
文件存在时间上限:包含在过去指定天数内修改的文件(默认值为 180 天)
资产命名空间:资产命名空间
注入标签:要应用于此 Feed 中事件的标签
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
向 Google SecOps 服务账号授予 IAM 权限
- 前往 Cloud Storage > 存储分区。
- 点击
skyhigh-swg-logs。 - 前往权限标签页。
- 点击授予访问权限。
- 提供以下配置详细信息:
- 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址
- 分配角色:选择 Storage Object Viewer
- 点击保存。
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
| mediaType | additional.fields | 与来自 mediaType、reputation、Ssl_scanned、av_scanned_up、av_scanned_down、rbi、dlp 的标签合并 |
| 声誉 | additional.fields | |
| Ssl_scanned | additional.fields | |
| av_scanned_up | additional.fields | |
| av_scanned_down | additional.fields | |
| rbi | additional.fields | |
| dlp | additional.fields | |
| intermediary_ip1 | intermediary.ip | 从 intermediary_ip1、intermediary_ip2、client_ip 合并 |
| intermediary_ip2 | intermediary.ip | |
| client_ip | intermediary.ip | |
| intermediary_port | intermediary.port | 转换为整数 |
| uriScheme | metadata.event_type | 设置为“GENERIC_EVENT”,如果 uriScheme 在 [“http”“https”] 中,则覆盖为“NETWORK_HTTP” |
| uriScheme | network.application_protocol | 如果 uriScheme 匹配“https”,则设置为“HTTPS”;如果匹配“http”,则设置为“HTTP” |
| http_action | network.http.method | 直接复制值 |
| user_agent_comment | network.http.parsed_user_agent | 已转换为已解析的用户代理 |
| httpStatusCode | network.http.response_code | 转换为整数 |
| user_agent_comment | network.http.user_agent | 直接复制值 |
| serverToClientBytes | network.received_bytes | 已转换为 uinteger |
| clientToServerBytes | network.sent_bytes | 已转换为 uinteger |
| 文件名 | principal.file.full_path | 直接复制值 |
| source_ip | principal.ip | 直接复制值 |
| 国家/地区 | principal.location.country_or_region | 直接复制值 |
| process_name | principal.process.command_line | 直接复制值 |
| Ssl_client_prot | principal.resource.attribute.labels | 与 Ssl_client_prot、Ssl_server_prot 中的标签合并 |
| Ssl_server_prot | principal.resource.attribute.labels | |
| 网址 | principal.url | 直接复制值 |
| 用户名 | principal.user.userid | 直接复制值 |
| blockReason | security_result.action | 设置为“ALLOW”,如果 blockReason 不为空,则覆盖为“BLOCK” |
| 结果 | security_result.action_details | 直接复制值 |
| 类别 | security_result.category_details | 直接复制值 |
| 病毒 | security_result.detection_fields | 与来自病毒、位置、lastRule、applicationType、Mw_probablility、Discarded_host、domain_fronting_url 的标签合并 |
| 位置 | security_result.detection_fields | |
| lastRule | security_result.detection_fields | |
| applicationType | security_result.detection_fields | |
| Mw_probablility | security_result.detection_fields | |
| Discarded_host | security_result.detection_fields | |
| domain_fronting_url | security_result.detection_fields | |
| blockReason | security_result.summary | 直接复制值 |
| requested_path | target.file.full_path | 直接复制值 |
| requested_host | target.hostname | 直接复制值 |
| destination_ip | target.ip | 直接复制值 |
| userID | target.user.userid | 直接复制值 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。