收集 Okta 日志
支持的语言:
Google SecOps
SIEM
本文档介绍了如何使用 Okta API 将 Okta 日志注入到 Google Security Operations。解析器会提取系统日志,并处理 JSON 数组中的单个事件和批处理事件。它会将数据标准化为 UDM 格式,将 Okta 字段映射到 UDM 等效字段,通过解析的用户代理、地理位置信息和身份验证详细信息来丰富数据,并根据结果和风险信息生成安全结果事件。
准备工作
- Google SecOps 实例
- 对 Okta 的特权访问权限
如何配置 Okta
如需配置 Okta SSO,请完成以下任务:
创建具有只读权限的 Okta 管理员用户
- 登录 Okta 管理员控制台。
创建标准用户。
- 依次前往目录 > 人员。
- 点击添加用户,然后填写必填字段。
依次选择安全性 > 管理员。
点击添加管理员。
在管理员分配(按管理员)字段中,找到“标准用户”。
在角色部分中,从列表中选择只读管理员。
退出管理员账号。
获取 API 密钥
- 使用只读管理员用户账号登录 Okta 管理员控制台。
- 依次前往安全性 > API > 令牌。
- 点击 Create Token。
- 为令牌提供一个有意义的名称。
- 提供将使用 API 的 IP 区域(如果不确定,可以选择任何 IP)。
- 点击 Create Token。
- 复制 API 密钥。
- 点击好的,知道了。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed > 添加新 Feed
- 内容中心 > 内容包 > 开始
如何设置 Okta Feed
如需配置此日志类型,请按以下步骤操作:
- 点击 Okta pack。
- 找到 Okta 日志类型。
为以下字段指定值:
- 来源类型:第三方 API(推荐)
- 身份验证 HTTP 标头:输入 Okta API 密钥,格式如下:
Authorization:<API_KEY>
。 - API 主机名:指定 Okta 主机的域名(例如
<your-domain>.okta.com
)。 - 资产命名空间:资产命名空间。
- 注入标签:应用于此 Feed 中事件的标签。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 资产命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于相应 Feed 中所有事件的标签。
点击创建 Feed。
如需详细了解如何为相应产品系列中的不同日志类型配置多个 Feed,请参阅按产品配置 Feed。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
actor.alternateId |
principal.user.email_addresses |
如果为电子邮件地址,则从 actor.alternateId 中提取。如果不是电子邮件地址,则用作 principal.user.userid 。 |
actor.displayName |
principal.user.user_display_name |
直接映射。 |
actor.id |
principal.user.product_object_id |
直接映射。 |
actor.type |
principal.user.attribute.roles.name |
直接映射。 |
authenticationContext.authenticationProvider |
security_result.detection_fields.value |
直接映射,键为 authenticationProvider 。 |
authenticationContext.credentialProvider |
security_result.detection_fields.value |
直接映射,键为 credentialProvider 。 |
authenticationContext.credentialType |
extensions.auth.mechanism |
用于派生身份验证机制(OTP、USERNAME_PASSWORD、LOCAL)。 |
authenticationContext.externalSessionId |
network.parent_session_id |
直接映射。 |
client.device |
principal.asset.type /additional.fields.value.string_value |
根据值映射到 principal.asset.type (工作站、移动设备、ROLE_UNSPECIFIED)。在 additional.fields 中,还映射为具有键 device 的字符串值。 |
client.geographicalContext.city |
principal.location.city |
直接映射。 |
client.geographicalContext.country |
principal.location.country_or_region |
直接映射。 |
client.geographicalContext.geolocation.lat |
principal.location.region_latitude |
直接映射。 |
client.geographicalContext.geolocation.lon |
principal.location.region_longitude |
直接映射。 |
client.geographicalContext.postalCode |
additional.fields.value.string_value |
直接映射为 additional.fields 中键为 Postal code 的字符串值。 |
client.geographicalContext.state |
principal.location.state |
直接映射。 |
client.ipAddress |
principal.ip ,principal.asset.ip |
直接映射。 |
client.userAgent.browser |
target.resource.attribute.labels.value |
直接映射,键为 Browser 。 |
client.userAgent.os |
principal.platform |
根据值映射到平台(LINUX、WINDOWS、MAC)。 |
client.userAgent.rawUserAgent |
network.http.user_agent ,network.http.parsed_user_agent |
直接映射和解析。 |
client.zone |
additional.fields.value.string_value |
直接映射为 additional.fields 中键为 zone 的字符串值。 |
debugContext.debugData.behaviors |
security_result.description ,security_result.detection_fields |
直接映射到说明。提取各个行为并将其添加为检测字段。 |
debugContext.debugData.changedAttributes |
security_result.detection_fields.value |
直接映射,键为 changedAttributes 。 |
debugContext.debugData.clientAddress |
principal.ip ,principal.asset.ip |
如果缺少 request.ipChain 和 client.ipAddress ,则直接映射。 |
debugContext.debugData.deviceFingerprint |
target.asset.asset_id |
直接映射,带有 device_finger_print: 前缀。 |
debugContext.debugData.dtHash |
security_result.detection_fields.value |
直接映射,键为 dtHash 。 |
debugContext.debugData.factor |
security_result.detection_fields.value |
直接映射,键为 factor 。 |
debugContext.debugData.factorIntent |
security_result.detection_fields.value |
直接映射,键为 factorIntent 。 |
debugContext.debugData.logOnlySecurityData.risk.reasons |
security_result.detection_fields.value |
直接映射,键为 Risk Reasons 。 |
debugContext.debugData.privilegeGranted |
target.user.attribute.roles |
拆分为各个权限,并添加为具有名称和说明的角色。 |
debugContext.debugData.pushOnlyResponseType |
security_result.detection_fields.value |
直接映射,键为 pushOnlyResponseType 。 |
debugContext.debugData.pushWithNumberChallengeResponseType |
security_result.detection_fields.value |
直接映射,键为 pushWithNumberChallengeResponseType 。 |
debugContext.debugData.requestUri |
extensions.auth.auth_details |
直接映射。 |
debugContext.debugData.suspiciousActivityEventId |
security_result.detection_fields.value |
直接映射,键为 suspiciousActivityEventId 。 |
debugContext.debugData.suspiciousActivityEventType |
security_result.detection_fields.value |
直接映射,键为 suspiciousActivityEventType 。 |
debugContext.debugData.threatDetections |
security_result.detection_fields.value |
直接映射,键为 threatDetections 。 |
debugContext.debugData.threatSuspected |
security_result.detection_fields.value ,security_result.threat_status |
映射为检测字段,键为 threatSuspected 。用于派生威胁状态(ACTIVE 或 FALSE_POSITIVE)。 |
debugContext.debugData.url |
target.url |
直接映射。 |
displayMessage |
security_result.summary |
直接映射。 |
eventType |
metadata.product_event_type ,metadata.event_type |
直接映射到 product_event_type 。用于派生 event_type (USER_LOGIN、USER_LOGOUT、USER_CHANGE_PASSWORD、USER_CHANGE_PERMISSIONS、USER_DELETION、GROUP_MODIFICATION、SETTING_MODIFICATION、SCHEDULED_TASK_ENABLE、RESOURCE_CREATION、USER_UNCATEGORIZED)。 |
legacyEventType |
security_result.detection_fields.value |
直接映射,键为 legacyEventType 。 |
outcome.reason |
security_result.category_details |
直接映射。 |
outcome.result |
security_result.action |
根据值映射到操作(ALLOW、CHALLENGE、BLOCK)。 |
published |
metadata.event_timestamp |
已解析为时间戳。 |
request.ipChain.n.geographicalContext |
intermediary.location |
请求链中介 IP 的地理位置上下文。 |
request.ipChain.n.ip |
intermediary.ip |
请求链中介体的 IP 地址。 |
securityContext.asNumber |
security_result.detection_fields.value |
直接映射,键为 asNumber 。 |
securityContext.asOrg |
security_result.detection_fields.value |
直接映射,键为 asOrg 。 |
securityContext.domain |
security_result.detection_fields.value |
直接映射,键为 domain 。 |
securityContext.isp |
security_result.detection_fields.value |
直接映射,键为 isp 。 |
securityContext.isProxy |
security_result.detection_fields.value |
直接映射,键为 anonymized IP 。 |
target.n.alternateId |
target.user.email_addresses /target.user.userid |
如果它是电子邮件地址,则映射到 target.user.email_addresses 。如果不是电子邮件地址,则用作 target.user.userid 。 |
target.n.detailEntry.clientAppId |
target.asset_id |
直接映射,带有 Client_app_id: 前缀。 |
target.n.detailEntry.methodTypeUsed |
target.resource_ancestors.attribute.labels.value |
直接映射,当目标类型为 AuthenticatorEnrollment 时,使用键 methodTypeUsed 。 |
target.n.detailEntry.methodUsedVerifiedProperties |
target.resource_ancestors.attribute.labels.value |
直接映射,当目标类型为 AuthenticatorEnrollment 时,使用键 methodUsedVerifiedProperties 。 |
target.n.detailEntry.policyType |
target.resource_ancestors.attribute.labels.value |
直接映射,键为 Policy Type 。 |
target.n.detailEntry.signOnModeType |
security_result.detection_fields.value |
直接映射,键为 signOnModeType 。 |
target.n.displayName |
target.user.user_display_name / target.application / target.resource.name |
根据目标类型进行映射。 |
target.n.id |
target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id |
根据目标类型进行映射。 |
target.n.type |
target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype |
根据目标类型进行映射。 |
transaction.id |
network.session_id |
直接映射。 |
transaction.type |
additional.fields.value.string_value |
直接映射为 additional.fields 中键为 type 的字符串值。 |
uuid |
metadata.product_log_id |
直接映射。 |
不适用 | metadata.vendor_name |
设置为 Okta 。 |
不适用 | metadata.product_name |
设置为 Okta 。 |
不适用 | extensions.auth.type |
设置为 SSO 。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。