收集 Okta 日志

支持的平台:

本文档介绍了如何使用 Okta API 将 Okta 日志提取到 Google 安全运营中心。解析器会提取系统日志,同时处理 JSON 数组中的单个事件和批量事件。该服务会将数据标准化为 UDM 格式,将 Okta 字段映射到 UDM 等效字段,使用解析的用户代理、地理信息和身份验证详细信息丰富数据,并根据结果和风险信息生成安全结果事件。

准备工作

  • 确保您有一个 Google SecOps 实例。
  • 确保您拥有对 Okta 的超级用户访问权限。

配置 Okta

如需配置 Okta SSO,请完成以下任务:

创建具有只读权限的 Okta 管理员用户

  1. 登录 Okta 管理控制台。
  2. 创建标准用户。

    • 依次点击目录 > 人员
    • 点击添加用户,然后填写必填字段。
  3. 依次选择安全>管理员

  4. 点击添加管理员

  5. 由管理员分配的管理员字段中,找到“标准用户”。

  6. 角色部分,从列表中选择只读管理员

  7. 退出管理员账号。

获取 API 密钥

  1. 使用只读管理员用户登录 Okta 管理控制台
  2. 依次前往安全性 > API > 令牌
  3. 点击 Create Token(创建令牌)。
  4. 为令牌提供一个有意义的名称。
  5. 提供 API 将被使用的 IP 区域(如果不确定,可以选择任意 IP)。
  6. 点击 Create Token(创建令牌)。
  7. 复制 API 密钥。
  8. 点击知道了

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

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 Okta 日志)。
  4. 选择第三方 API 作为来源类型
  5. 选择 Okta 作为日志类型
  6. 点击下一步
  7. 为以下输入参数指定值:
    • 身份验证 HTTP 标头:请按以下格式输入 Okta API 密钥:Authorization:<API_KEY>
    • API 主机名:指定 Okta 主机的域名(例如 <your-domain>.okta.com)。
    • 资源命名空间资源命名空间
    • 提取标签:应用于此 Feed 中事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看 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(WORKSTATION、MOBILE、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.ipprincipal.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_agentnetwork.http.parsed_user_agent 直接映射和解析。
client.zone additional.fields.value.string_value 直接映射为 additional.fields 中键值为 zone 的字符串值。
debugContext.debugData.behaviors security_result.descriptionsecurity_result.detection_fields 直接映射到说明。系统会提取个别行为并将其添加为检测字段。
debugContext.debugData.changedAttributes security_result.detection_fields.value 直接映射,键为 changedAttributes
debugContext.debugData.clientAddress principal.ipprincipal.asset.ip 如果缺少 request.ipChainclient.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.valuesecurity_result.threat_status 映射为键为 threatSuspected 的检测字段。用于派生威胁状态(ACTIVE 或 FALSE_POSITIVE)。
debugContext.debugData.url target.url 直接映射。
displayMessage security_result.summary 直接映射。
eventType metadata.product_event_typemetadata.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
不适用 is_alert 对于 security.threat.detecteduser.account.report_suspicious_activity_by_enduser 事件,将其设置为 true。
不适用 is_significant 对于 security.threat.detecteduser.account.report_suspicious_activity_by_enduser 事件,将其设置为 true。

变化

2024 年 5 月 16 日

  • 如果 is_alertis_significant 均为 true,则将 security_result.alert_state 设置为 ALERTING

2024-03-05

  • 更新了 security_result.action 字段,以反映流量是被允许还是被禁止。

2024-02-16

bug 修复

  • target.0.typeUserAppUser 时,将 target.0.alternateId 映射到 target.user.userid
  • target.1.typeUserAppUser 时,将 target.1.alternateId 映射到 target.user.userid

2023-12-14

  • securityContext.asNumber 映射到 security_result.detection_fields
  • legacyEventType 映射到 security_result.detection_fields
  • 在设置 metadata.event_type 之前添加了 conditional_check

2023-06-28

  • debugContext.debugData.suspiciousActivityEventType 的完整值映射到 security_result.detection_fields
  • debugContext.debugData.logOnlySecurityData.behaviors.New Device 的完整值映射到 security_result.detection_fields

2023-06-09

  • debugContext.debugData.deviceFingerprint 字段映射到 target.asset.asset_id
  • debugContext.debugData.risk.reasons 的完整值映射到 security_result.detection_fields

2023-05-17

  • 字段“authenticationContext.externalSessionId”已映射到“network.parent_session_id”。
  • 字段“debugContext.debugData.pushOnlyResponseType”会映射到“security_result.detection_fields.key/value”。
  • 字段“debugContext.debugData.factor”已映射到“security_result.detection_fields.key/value”。
  • 字段“debugContext.debugData.factorIntent”已映射到“security_result.detection_fields.key/value”。
  • 字段“debugContext.debugData.pushWithNumberChallengeResponseType”已映射到“security_result.detection_fields.key/value”。
  • 字段“debugContext.debugData.dtHash”已映射到“security_result.detection_fields.key/value”。
  • 字段“client.userAgent.rawUserAgent”会映射到“network.http.user_agent”。
  • 将“security_result.action”下的映射从“ALLOW_WITH_MODIFICATION”更改为枚举值“CHALLENGE”。
  • 对于 eventType“system.api_token.create”,将 metadata.event_type 从“USER_UNCATEGORIZED”更改为“RESOURCE_CREATION”。

2023-04-28

bug 修复

  • 修改了 debugContext.debugData.threatSuspectedtruesecurity_result.threat_statusACTIVE 的映射,否则映射到 FALSE_POSITIVE

2023-03-24

  • logOnlySecurityData 字段映射到 security_result.detection_fields
  • 此外,通过将 DEFERRED 添加到操作列表来解决解析错误。

2023-04-11

  • 将映射到 http.user_agent 的字段重新映射到 http.parsed_user_agent
  • target.displayName 映射到 target.resource_ancestors.name
  • targetfield.detailEntry.methodTypeUsed 映射到 target.resource_ancestors.attribute.labels
  • targetfield.detailEntry.methodUsedVerifiedProperties 映射到 target.resource_ancestors.attribute.labels

2023-02-20

  • metadata.event_typeUSER_LOGIN 更改为 STATUS_UPDATE,其中 eventTypeuser.authentication.auth_via_AD_agent

2022-12-14

  • debugContext.debugData.changedAttributes 映射到 security_result.detection_fields
  • detail.actor.alternateId 添加了 null 检查。

2022-11-17

  • target[n].alternateId 字段映射到 target.resource.attribute.labels
  • detail.target.0.alternateId 字段映射到 target.resource.attribute.labels

2022-11-08

bug 修复

  • 添加了针对字段 user_email 的正确电子邮件地址检查条件。
  • 添加了检查 RATE_LIMIT 中是否不存在 Action1 字段的功能。
  • actor.displayName 添加了 null、unknown 检查。

2022-11-04

  • 添加了对包含多个事件的日志的支持。

2022-10-15

  • signOnModeType 已映射到 security_result.detection_fields
  • authenticationProvider 已映射到 security_result.detection_fields
  • credentialProvider 已映射到 security_result.detection_fields
  • device 已映射到 additional.fields
  • zone 已映射到 additional.fields
  • type 已映射到 additional.fields

2022-10-14

bug 修复

  • 添加了对“principal.user.email_addresses”和“target.user.email_addresses”的条件检查。
  • 添加了 Grok,用于检查映射到“principal.ip”的字段“request.ipChain.0.ip”是否包含有效的 ip_address。
  • 为映射到“target.url”的字段“debugContext.debugData.url”添加了 on_error 条件。

2022-10-03

  • client.userAgent.os 映射到 principal.platform
  • client.device 映射到 principal.asset.type
  • anonymized IP(硬编码字符串)映射到 security_result.detection_fields.key,其中“securityContext.isProxy”值对应于相应的 security_result.detection_fields.value。

2022-09-16

  • 将“securityContext.asOrg”映射到“security_result.category_details”。
  • 将“securityContext.isProxy”映射到“security_result.detection_fields”。
  • 将“securityContext.domain”映射到“security_result.detection_fields”。
  • “securityContext.isp”映射到“security_result.detection_fields”。
  • 将“debugContext.debugData.risk.level”映射到“security_result.severity”。
  • 将“debugContext.debugData.risk.reasons”映射到“security_result.detection_fields”。

2022-08-12

  • 新提取的日志已解析并映射到以下字段:
  • “detail.uuid”映射到“metadata.product_log_id”。
  • 将“detail.eventType”映射到“metadata.product_event_type”
  • 将“detail.actor.id”映射到“principal.user.product_object_id”。
  • if 'detail.actor.alternateId' mapped to 'principal.user.userid' else
  • “detail.actor.alternateId”已映射到“principal.user.email_addresses”。
  • “detail.actor.displayName”已映射到“principal.user.user_display_name”。
  • “detail.actor.type”映射到“.principal.user.attribute.roles”。
  • “detail.client.ipChain.0.ip”已映射到“principal.ip”。
  • 将“detail.client.ipChain.0.geographicalContext.state”映射到“principal.location.state”。
  • 将“detail.client.ipChain.0.geographicalContext.city”映射到“principal.location.city”。
  • 将“detail.client.ipChain.0.geographicalContext.country”映射到“principal.location.country_or_region”。
  • “detail.debugContext.debugData.requestUri”映射到“target.url”。
  • “detail.target.0.type”映射到“target.resource.resource_subtype”。
  • “detail.target.0.id”映射到“target.resource.resource.product_object_id”。
  • “detail.target.0.displayName”映射到“target.resource.resource_subtype”。
  • “detail.target.0.detailEntry.policyType”映射到“target.resource_ancestors.attribute.labels”。
  • 将“detail.outcome.reason”映射到“security_result.category_details”。
  • 将“detail.debugContext.debugData.threatSuspected”映射到“security_result.detection_fields”。
  • 将“detail.displayMessage”映射到“security_result.summary”。
  • 将“detail.outcome.result”映射到“security_result.action”。
  • 将“detail.severity”映射到“security_result.severity”。
  • “detail.transaction.id”映射到“network.session_id”。
  • 将“detail.debugContext.debugData.requestUri”映射到“extensions.auth.auth_details”。

2022-07-08

  • actor.type 的映射从 principal.user.role_name 修改为了 principal.user.attribute.roles
  • target.0.type 的映射从 target.user.role_name 修改为了 target.user.attribute.roles
  • target.1.type 的映射从 target.user.role_name 修改为了 target.user.attribute.roles

2022-06-15

增强功能

  • target.0.type == Token
  • target.0.detailEntry.clientAppId 映射到 target.asset_id
  • 为映射到 UDM 字段“network.session_id”的字段“transaction.id”添加了条件检查。

2022-06-03

增强功能

  • 此外,还将 debugContext.debugData.privilegeGranted 映射到了 target.user.attribute.roles.name。
  • 将 debugContext.debugData.requestUri 映射到 extensions.auth.auth_details。
  • 将 debugContext.debugData.suspiciousActivityEventId、debugContext.debugData.threatDetections、debugContext.debugData.threatSuspected 映射到 security_result.detection_fields。

2022-03-22

增强功能

  • debugContext.debugData.behaviors 已映射到 security_result.description。
  • debugContext.debugData.threatSuspected 已映射到 security_result.threat_status。
  • debugContext.debugData.risk 已映射到 security_result.severity。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。