收集 Onfido 日志
此解析器可从 Onfido SYSLOG 和 JSON 格式的日志中提取字段,并将这些字段映射到 UDM。它使用 grok 解析消息字段,处理 JSON 载荷(如果存在),并将特定产品事件类型映射到 UDM 事件类型。这包括将成功登录的事件类型设置为 USER_LOGIN
,并将其他事件的事件类型设置为 USER_UNCATEGORIZED
。它还会填充用户信息、来源 IP 和安全结果详细信息的 UDM 字段。
准备工作
确保您满足以下前提条件:
- Google SecOps 实例。
- 对 Onfido 信息中心的特权访问权限。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed
- 内容中心 > 内容包
通过“SIEM 设置”>“Feed”设置 Feed
如需配置 Feed,请按以下步骤操作:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed name(Feed 名称)字段中,输入 Feed 的名称,例如 Onfido Logs。
- 选择 Webhook 作为来源类型。
- 选择 Onfido 作为日志类型。
- 点击下一步。
- 可选:为以下输入参数指定值:
- 拆分分隔符:用于分隔日志行的分隔符,例如
\n
。
- 拆分分隔符:用于分隔日志行的分隔符,例如
- 点击下一步。
- 在最终确定界面中检查 Feed 配置,然后点击提交。
- 点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
- 复制并存储密钥。您将无法再次查看此密钥。如有需要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥失效。
- 在详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。
- 点击完成。
设置来自内容中心的 Feed
为以下字段指定值:
- 拆分分隔符:用于分隔日志行的分隔符,例如
\n
。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 来源类型:用于将日志收集到 Google SecOps 中的方法。
- 资源命名空间:与 Feed 关联的命名空间。
提取标签:应用于相应 Feed 中所有事件的标签。
点击生成密钥,生成用于对此 Feed 进行身份验证的密钥。
复制并存储密钥。您将无法再次查看此密钥。如有需要,您可以重新生成新的 Secret 密钥,但此操作会使之前的 Secret 密钥失效。
在详情标签页中,从端点信息字段复制 Feed 端点网址。您需要在客户端应用中指定此端点网址。
为 Webhook Feed 创建 API 密钥
前往 Google Cloud 控制台 > 凭据。
点击创建凭据,然后选择 API 密钥。
将 API 密钥访问权限限制为 Google Security Operations 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 的密钥。
配置 Onfido 网络钩子
- 登录 Onfido 信息中心。
- 依次前往设置 > Webhook。
- 点击添加 Webhook。
为以下输入参数指定值:
- Webhook 网址:输入 Google SecOps API 端点的
<ENDPOINT_URL>
。
- 事件:选择应触发 Webhook 的事件(例如,选择 check.completed 或 report.completed)。
- Webhook 网址:输入 Google SecOps API 端点的
点击保存以创建 Webhook。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
category |
security_result.category_details |
原始日志中的 category 字段的值会分配给 security_result.category_details 。 |
check_id |
metadata.product_log_id |
从原始日志的 json_data 字段中提取的 check_id 字段的值会分配给 metadata.product_log_id 。如果 prod_evt_type 为“成功登录”,则分配值“AUTHTYPE_UNSPECIFIED”。 |
metadata.event_timestamp |
原始日志条目的时间戳会转换为纪元秒数,并分配给 metadata.event_timestamp 。 |
|
metadata.event_type |
如果 prod_evt_type 为“成功登录”,则分配值 USER_LOGIN 。否则,系统会分配 USER_UNCATEGORIZED 。 |
|
metadata.product_name |
解析器代码将值设置为“ONFIDO”。 | |
prod_evt_type |
metadata.product_event_type |
原始日志中的 prod_evt_type 字段的值会分配给 metadata.product_event_type 。 |
metadata.vendor_name |
解析器代码将值设置为“ONFIDO”。 | |
metadata.product_version |
解析器代码将值设置为“ONFIDO”。 | |
security_result.action |
security_result.action |
如果 prod_evt_type 为“登录成功”,则分配值 ALLOW 。 |
src_ip |
principal.ip |
原始日志中的 src_ip 字段的值会分配给 principal.ip 。 |
user_email |
target.user.email_addresses |
原始日志中的 user_email 字段的值会分配给 target.user.email_addresses 。 |
user_name |
target.user.user_display_name |
原始日志中的 user_name 字段的值会分配给 target.user.user_display_name 。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。