收集 Aqua Security 日志

支持的平台:

概览

此解析器会从 Aqua Security 日志中提取字段,并将其转换为统一数据模型 (UDM)。该模块会将 message 字段解析为 JSON,提取用户、来源 IP 和其他相关字段,将其映射到 UDM 字段,并根据 action 字段对事件进行分类,还会使用规则名称、说明和 CVE 详细信息等安全情境来丰富数据。

准备工作

  • 确保您拥有 Google SecOps 实例。
  • 确保您拥有对 Aqua Security 管理控制台的特权访问权限。

在 Google SecOps 中配置 Feed 以提取 Aqua Security 日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 Aqua 安全日志)。
  4. 选择 Webhook 作为来源类型
  5. 选择 Aqua 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 密钥对 Chronicle 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 进行身份验证而生成的密钥。

在 Aqua Security 中为 Google SecOps 创建 Webhook

  1. 登录 Aqua Security 控制台。
  2. 依次前往设置 > 图片扫描结果网络钩子
  3. 勾选启用发送图片扫描结果复选框。
  4. 依次输入 <ENDPOINT_URL><API_KEY><SECRET>
  5. 点击保存

UDM 映射表

日志字段(升序) UDM 映射 逻辑
jsonPayload.action metadata.event_type 根据“jsonPayload.action”的值进行映射。如需了解具体映射,请参阅解析器代码。
jsonPayload.action security_result.summary 直接映射。
jsonPayload.adjective target.file.full_path 如果“jsonPayload.container”为空,则直接映射。
jsonPayload.category target.asset.category 直接映射。
jsonPayload.cfappname target.application 直接映射。
jsonPayload.cfspace principal.user.userid 如果“jsonPayload.user”为空,则直接映射。
jsonPayload.command principal.ip 使用 grok 模式“user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)”提取。
jsonPayload.command principal.user.userid 使用 grok 模式“user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)”提取。
jsonPayload.container target.asset.product_object_id 直接映射。
jsonPayload.data security_result.detection_fields 会解析为键值对,并映射到“security_result.detection_fields”中的各个字段。
jsonPayload.description security_result.description 如果“jsonPayload.reason”为空,则直接映射。
jsonPayload.host principal.hostname 直接映射。
jsonPayload.hostgroup target.group.group_display_name 直接映射。
jsonPayload.hostid target.asset_id 映射为“主机 ID: %{jsonPayload.hostid}”。
jsonPayload.hostip target.ip 直接映射。
jsonPayload.image target.file.full_path 直接映射。
jsonPayload.level security_result.action 如果“jsonPayload.level”为“success”,则设置为“ALLOW”。
jsonPayload.reason security_result.description 直接映射。
jsonPayload.rule security_result.rule_name 直接映射。
jsonPayload.user principal.user.userid 直接映射。
jsonPayload.vm_location target.asset.location.name 直接映射。
jsonPayload.vm_name target.resource.name 直接映射。
resource.labels.instance_id target.resource.id 直接映射。
resource.labels.project_id target.asset.attribute.cloud.project.id 直接映射。
resource.labels.zone target.asset.attribute.cloud.availability_zone 直接映射。
时间戳 metadata.event_timestamp 转换为 ISO8601 格式后直接映射。
extensions.auth.type 如果“jsonPayload.description”包含“SAML”,则设置为“SSO”;如果“jsonPayload.action”为“login”或“Login”,则设置为“AUTHTYPE_UNSPECIFIED”。
metadata.log_type 设置为“AQUA_SECURITY”。
metadata.product_name 设置为“AQUA_SECURITY”。
metadata.vendor_name 设置为“AQUA_SECURITY”。
target.asset.attribute.cloud.environment 设置为“GOOGLE_CLOUD_PLATFORM”。
target.resource.type 设置为“VIRTUAL_MACHINE”。

更改

2024-10-10

  • 增强功能:
  • Added support for the new logs"。