收集 ServiceNow Security 日志

支持的平台:

概览

此解析器会从 ServiceNow JSON 日志中提取安全事件数据,并将相关字段映射到 UDM。它会处理登录和权限更改等各种事件类型,填充主账号/目标用户信息、IP 地址以及供应商和产品详情等元数据。

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保您拥有对 ServiceNow Security 的特权访问权限。

在 Google SecOps 中配置 Feed 以提取 ServiceNow 安全日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 ServiceNow 安全日志)。
  4. 选择 Webhook 作为来源类型
  5. 选择 ServiceNow Security 作为日志类型
  6. 点击下一步
  7. 可选:为以下输入参数指定值:
    • 分隔符:用于分隔日志行(例如 \n)的分隔符。
    • 资源命名空间资源命名空间
    • 提取标签:应用于此 Feed 中的事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看 Feed 配置,然后点击提交
  10. 点击生成 Secret 密钥,生成用于对此 Feed 进行身份验证的 Secret 密钥。
  11. 复制并存储密钥。您将无法再查看此密钥。如有必要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥过时。
  12. 详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。
  13. 点击完成

为该 Webhook Feed 创建 API 密钥

  1. 依次前往 Google Cloud 控制台 > 凭据

    转到“凭据”页面

  2. 点击创建凭据,然后选择 API 密钥

  3. 限制 API 密钥对 Google Security Operations API 的访问权限。

指定端点网址

  1. 在客户端应用中,指定 webhook Feed 中提供的 HTTPS 端点网址。
  2. 通过在自定义标头中指定 API 密钥和密钥(格式如下)来启用身份验证:

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    建议:将 API 密钥作为标头指定,而不是在网址中指定。

  3. 如果您的 webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    替换以下内容:

    • ENDPOINT_URL:Feed 端点网址。
    • API_KEY:用于对 Google SecOps 进行身份验证的 API 密钥。
    • SECRET:您为对 Feed 进行身份验证而生成的密钥。

在 ServiceNow 中配置 Webhook

  1. 使用特权账号登录 ServiceNow Security。
  2. 依次前往配置 > 监控 > 连接
  3. 点击 添加
  4. 选择 Webhook
  5. 为以下参数指定值:
    • 名称:为该 webhook 提供描述性名称(例如“Google SecOps”)。
    • 网址:输入 Google SecOps ENDPOINT_网址,并附上 API_KEYSECRET
  6. 点击保存,完成网络钩子配置。

UDM 映射

日志字段 UDM 映射 逻辑
created_by target.user.userid 如果 snc_user 为空,则映射到 target.user.userid
事件 metadata.product_event_type 直接从原始日志字段“event”映射而来。
event_created metadata.event_timestamp.seconds 使用 date 过滤器将原始日志字段“event_created”转换为秒数。
ip_address principal.ip 直接从原始日志字段“ip_address”(如果不为空)映射而来。
snc_user target.user.userid 直接从原始日志字段“snc_user”(如果不为空)映射而来。
用户 principal.user.userid 直接从原始日志字段“user”(如果不为空或“null”)映射而来。
extensions.auth.type 如果 event 字段为“登录失败”“SNC 登录”“管理员登录”或“冒充”,请将其设置为“MACHINE”。
metadata.event_type 如果 event 字段为“登录失败”“SNC 登录”“管理员登录”或“冒充”,则设置为“USER_LOGIN”。如果 event 字段为“安全提升”,则设置为“USER_CHANGE_PERMISSIONS”。
metadata.log_type 已硬编码为“SERVICENOW_SECURITY”。
metadata.product_name 已硬编码为“SERVICENOW_SECURITY”。
metadata.vendor_name 已硬编码为“SERVICENOW”。
principal.user.userid 如果 user 字段为空或为“null”,则设置为“UNKNOWN”。