收集 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 格式的访问日志条目。

  1. 登录 Skyhigh Secure Web Gateway 管理控制台。
  2. 依次前往政策 > 规则集
  3. 点击左侧导航栏中的 Log Handler
  4. 展开默认规则集。
  5. 选择嵌套的 Access Log 规则集。
  6. 点击添加 > 规则以创建新规则。
  7. 使用以下设置配置规则:
    • 名称:输入 Write access log data for collection
    • 条件:选择始终
    • 操作:选择继续
    • 活动:依次点击添加 > 活动
  8. 在“添加活动”对话框中:
    1. 选择 Set User-Defined.logLine
    2. 点击参数
    3. 通过组合必需的属性来构建日志行值。使用 User-Defined.logLine 属性将各个字段连接成所需的格式。
    4. 点击确定
  9. 添加第二个事件,用于将日志行写入访问日志文件:
    1. 依次点击添加 > 事件
    2. 选择文件系统日志记录
    3. 点击参数
    4. 对于消息参数,请选择 User-Defined.logLine
    5. 点击确定
  10. 点击完成以保存此规则。
  11. 点击页面顶部的保存更改

配置文件系统日志记录自动推送

配置 Skyhigh Secure Web Gateway 以自动将访问日志文件推送到收集服务器。

  1. 在 Skyhigh Secure Web Gateway 控制台中,依次前往政策 > 设置 > 引擎 > 文件系统日志记录
  2. 选择访问日志配置设置。
  3. 展开轮换、推送和删除设置
  4. 自动推送部分中:
    1. 选中启用自动推送复选框。
    2. 目的地字段中,输入收集服务器的 FTP 或 HTTP 网址:
      • FTP 示例:ftp://COLLECTION_SERVER_IP:21/swg-logs/
      • HTTP 示例:http://COLLECTION_SERVER_IP:9111/logloader/
    3. 用户名字段中,输入收集服务器的用户名。
    4. 密码字段中,输入收集服务器的密码。
  5. 轮换部分,根据日志量配置轮换间隔:
    • 对于高流量环境,请将轮播频率设置为每 5-15 分钟一次
    • 对于标准环境,请将轮换频率设置为每 30-60 分钟一次
  6. 点击保存更改

验证日志前缀

  1. 在 Skyhigh Secure Web Gateway 控制台中,依次前往配置 > 设备 > Syslog > 日志前缀
  2. 验证前缀是否已设置为 mwg
  3. 如果前缀不同,请将其更改为 mwg,然后点击保存更改

创建 Google Cloud Storage 存储桶

  1. 前往 Google Cloud 控制台
  2. 选择您的项目或创建新项目。
  3. 在导航菜单中,依次前往 Cloud Storage > 存储分区
  4. 点击创建存储分区
  5. 提供以下配置详细信息:

    设置
    为存储桶命名 输入一个全局唯一的名称(例如 skyhigh-swg-logs
    位置类型 根据您的需求进行选择(区域级、双区域、多区域)
    位置 选择营业地点(例如 us-central1
    存储类别 标准(建议用于经常访问的日志)
    访问权限控制 均匀(推荐)
    保护工具 可选:启用对象版本控制或保留政策
  6. 点击创建

配置收集服务器以将日志上传到 GCS

设置收集服务器以接收 Skyhigh Secure Web Gateway 推送的日志文件,并将这些文件上传到 GCS 存储桶。

安装 gcloud CLI

  1. 在收集服务器上,安装 gcloud CLI:

    curl https://sdk.cloud.google.com | bash
    exec -l $SHELL
    
  2. 初始化 gcloud CLI:

    gcloud init
    
  3. 使用服务账号或用户账号进行身份验证:

    gcloud auth login
    
  4. 设置默认项目:

    gcloud config set project PROJECT_ID
    

配置 FTP 服务器以接收推送的日志

  1. 在收集服务器上安装 FTP 服务器(例如 vsftpd):

    sudo apt-get install vsftpd -y
    
  2. 为推送的日志文件创建一个专用目录:

    sudo mkdir -p /var/log/swg-logs
    sudo chown ftp:ftp /var/log/swg-logs
    
  3. 配置 FTP 服务器,以允许对日志目录的写入访问权限。

  4. 启动 FTP 服务:

    sudo systemctl enable vsftpd
    sudo systemctl start vsftpd
    

创建 GCS 上传脚本

  1. 创建上传脚本:

    sudo mkdir -p /opt/swg-gcs-uploader
    
  2. 创建包含以下内容的文件 /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
    
  3. 让该脚本可执行:

    sudo chmod +x /opt/swg-gcs-uploader/upload_to_gcs.sh
    
  4. skyhigh-swg-logs 替换为 GCS 存储桶的实际名称。

安排上传脚本

  1. 打开 crontab 编辑器:

    sudo crontab -e
    
  2. 添加以下条目,以便每 10 分钟运行一次上传:

    */10 * * * * /opt/swg-gcs-uploader/upload_to_gcs.sh >> /var/log/swg-gcs-uploader.log 2>&1
    
  3. 保存并退出。

验证上传

  1. 等待 Skyhigh Secure Web Gateway 将日志文件推送到收集服务器。
  2. 验证日志文件是否位于日志目录中:

    ls -la /var/log/swg-logs/
    
  3. 手动运行上传脚本以进行测试:

    sudo /opt/swg-gcs-uploader/upload_to_gcs.sh
    
  4. 验证文件是否已上传到 GCS:

    gsutil ls gs://skyhigh-swg-logs/swg-access-logs/
    

将配置应用于中央管理集群

如果您在中央管理集群中运行多个 Skyhigh Secure Web Gateway 设备,请执行以下操作:

  1. 在集群中的每个设备上重复执行文件系统日志记录自动推送配置。
  2. 日志处理程序规则集配置会在整个集群中自动同步。

检索 Google SecOps 服务账号

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Skyhigh SWG Logs)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 McAfee Web Protection 作为日志类型
  7. 点击获取服务账号。系统会显示一个唯一的服务账号电子邮件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 复制此电子邮件地址,以便在下一步中使用。

  9. 点击下一步

  10. 为以下输入参数指定值:

    • 存储桶网址:输入带有前缀路径的 GCS 存储桶 URI:

      gs://skyhigh-swg-logs/swg-access-logs/
      
    • 来源删除选项:根据您的偏好选择删除选项:

      • 永不:转移后永不删除任何文件(建议用于测试)。
      • 删除已转移的文件:在成功转移后删除文件。
      • 删除已转移的文件和空目录:成功转移后删除文件和空目录。

      • 文件存在时间上限:包含在过去指定天数内修改的文件(默认值为 180 天)

      • 资产命名空间资产命名空间

      • 注入标签:要应用于此 Feed 中事件的标签

  11. 点击下一步

  12. 最终确定界面中查看新的 Feed 配置,然后点击提交

向 Google SecOps 服务账号授予 IAM 权限

  1. 前往 Cloud Storage > 存储分区
  2. 点击 skyhigh-swg-logs
  3. 前往权限标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址
    • 分配角色:选择 Storage Object Viewer
  6. 点击保存

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 专业人士的解答。