收集 Aqua Security 日志
支持的平台:
Google SecOps
SIEM
概览
此解析器会从 Aqua Security 日志中提取字段,并将其转换为统一数据模型 (UDM)。该模块会将 message
字段解析为 JSON,提取用户、来源 IP 和其他相关字段,将其映射到 UDM 字段,并根据 action
字段对事件进行分类,还会使用规则名称、说明和 CVE 详细信息等安全情境来丰富数据。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您拥有对 Aqua Security 管理控制台的特权访问权限。
在 Google SecOps 中配置 Feed 以提取 Aqua Security 日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在Feed 名称字段中,输入 Feed 的名称(例如 Aqua 安全日志)。
- 选择 Webhook 作为来源类型。
- 选择 Aqua Security 作为日志类型。
- 点击下一步。
- 可选:为以下输入参数指定值:
- 分隔符:用于分隔日志行(例如
\n
)的分隔符。 - 资源命名空间:资源命名空间。
- 提取标签:应用于此 Feed 中的事件的标签。
- 分隔符:用于分隔日志行(例如
- 点击下一步。
- 在最终确定界面中查看 Feed 配置,然后点击提交。
- 点击生成 Secret 密钥,生成用于对此 Feed 进行身份验证的 Secret 密钥。
- 复制并存储密钥。您将无法再查看此密钥。如有必要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥过时。
- 在详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。
- 点击完成。
为该 Webhook Feed 创建 API 密钥
依次前往 Google Cloud 控制台 > 凭据。
点击创建凭据,然后选择 API 密钥。
限制 API 密钥对 Chronicle API 的访问权限。
指定端点网址
- 在客户端应用中,指定 webhook Feed 中提供的 HTTPS 端点网址。
通过在自定义标头中指定 API 密钥和密钥(格式如下)来启用身份验证:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
建议:将 API 密钥作为标头指定,而不是在网址中指定。
如果您的 webhook 客户端不支持自定义标头,您可以使用以下格式的查询参数指定 API 密钥和密钥:
ENDPOINT_URL?key=API_KEY&secret=SECRET
替换以下内容:
ENDPOINT_URL
:Feed 端点网址。API_KEY
:用于对 Google SecOps 进行身份验证的 API 密钥。SECRET
:您为对 Feed 进行身份验证而生成的密钥。
在 Aqua Security 中为 Google SecOps 创建 Webhook
- 登录 Aqua Security 控制台。
- 依次前往设置 > 图片扫描结果网络钩子。
- 勾选启用发送图片扫描结果复选框。
- 依次输入
<ENDPOINT_URL>
、<API_KEY>
和<SECRET>
。 - 点击保存。
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"。