Recolha registos da Okta

Compatível com:

Este documento explica como carregar registos do Okta para o Google Security Operations através da API Okta. O analisador extrai registos do sistema, processando eventos únicos e eventos em lote numa matriz JSON. Normaliza os dados para o formato UDM, mapeando os campos do Okta para os equivalentes do UDM, enriquecendo os dados com agentes de utilizador analisados, informações geográficas e detalhes de autenticação, e gerando eventos de resultados de segurança com base nos resultados e nas informações de risco.

Antes de começar

  • Instância do Google SecOps
  • Acesso privilegiado ao Okta

Como configurar a Okta

Para configurar o SSO do Okta, conclua as seguintes tarefas:

Crie um utilizador administrativo do Okta com privilégios só de leitura

  1. Inicie sessão na consola do administrador do Okta.
  2. Crie um utilizador padrão.

    • Aceda a Diretório > Pessoas.
    • Clique em Adicionar pessoa e preencha os campos obrigatórios.
  3. Selecione Segurança > Administradores.

  4. Clique em Adicionar administrador.

  5. No campo Atribuição de administrador por administrador, encontre o utilizador padrão.

  6. Na secção Funções, selecione Administrador só de leitura na lista.

  7. Termine sessão na conta de administrador.

Obtenha a chave da API

  1. Inicie sessão na consola do administrador do Okta com o utilizador administrador só de leitura.
  2. Aceda a Segurança > API > Tokens.
  3. Clique em Criar token.
  4. Atribua um nome significativo ao token.
  5. Indique a zona de IP onde a API vai ser usada (pode selecionar qualquer IP se não tiver a certeza).
  6. Clique em Criar token.
  7. Copie a chave da API.
  8. Clique em OK.

Configure feeds

Existem dois pontos de entrada diferentes para configurar feeds na plataforma Google SecOps:

  • Definições do SIEM > Feeds > Adicionar novo
  • Content Hub > Pacotes de conteúdo > Começar

Como configurar o feed do Okta

Para configurar este tipo de registo, siga estes passos:

  1. Clique no pacote Okta.
  2. Localize o tipo de registo Okta.
  3. Especifique valores para os seguintes campos:

    • Tipo de origem: API de terceiros (recomendado)
    • Cabeçalho HTTP de autenticação: introduza a chave da API Okta no seguinte formato: Authorization:<API_KEY>.
    • Nome do anfitrião da API: especifique o nome do domínio do seu anfitrião do Okta (por exemplo, <your-domain>.okta.com).
    • Espaço de nomes do recurso: o espaço de nomes do recurso.
    • Etiquetas de carregamento: a etiqueta aplicada aos eventos deste feed.

    Opções avançadas

    • Nome do feed: um valor pré-preenchido que identifica o feed.
    • Espaço de nomes do recurso: espaço de nomes associado ao feed.
    • Etiquetas de carregamento: etiquetas aplicadas a todos os eventos deste feed.
  4. Clique em Criar feed.

Para mais informações sobre a configuração de vários feeds para diferentes tipos de registos nesta família de produtos, consulte o artigo Configure feeds por produto.

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
actor.alternateId principal.user.email_addresses Extraído de actor.alternateId, se for um endereço de email. Se não for um endereço de email, é usado como principal.user.userid.
actor.displayName principal.user.user_display_name Mapeado diretamente.
actor.id principal.user.product_object_id Mapeado diretamente.
actor.type principal.user.attribute.roles.name Mapeado diretamente.
authenticationContext.authenticationProvider security_result.detection_fields.value Mapeado diretamente, com a chave authenticationProvider.
authenticationContext.credentialProvider security_result.detection_fields.value Mapeado diretamente, com a chave credentialProvider.
authenticationContext.credentialType extensions.auth.mechanism Usado para derivar o mecanismo de autenticação (OTP, USERNAME_PASSWORD, LOCAL).
authenticationContext.externalSessionId network.parent_session_id Mapeado diretamente.
client.device principal.asset.type/additional.fields.value.string_value Mapeado para principal.asset.type (WORKSTATION, MOBILE, ROLE_UNSPECIFIED) com base no valor. Também mapeado como valor de string com a chave device em additional.fields.
client.geographicalContext.city principal.location.city Mapeado diretamente.
client.geographicalContext.country principal.location.country_or_region Mapeado diretamente.
client.geographicalContext.geolocation.lat principal.location.region_latitude Mapeado diretamente.
client.geographicalContext.geolocation.lon principal.location.region_longitude Mapeado diretamente.
client.geographicalContext.postalCode additional.fields.value.string_value Mapeado diretamente como valor de string com a chave Postal code em additional.fields.
client.geographicalContext.state principal.location.state Mapeado diretamente.
client.ipAddress principal.ip, principal.asset.ip Mapeado diretamente.
client.userAgent.browser target.resource.attribute.labels.value Mapeado diretamente, com a chave Browser.
client.userAgent.os principal.platform Mapeado para a plataforma (LINUX, WINDOWS, MAC) com base no valor.
client.userAgent.rawUserAgent network.http.user_agent, network.http.parsed_user_agent Mapeados e analisados diretamente.
client.zone additional.fields.value.string_value Mapeado diretamente como valor de string com a chave zone em additional.fields.
debugContext.debugData.behaviors security_result.description, security_result.detection_fields Mapeado diretamente para a descrição. Os comportamentos individuais são extraídos e adicionados como campos de deteção.
debugContext.debugData.changedAttributes security_result.detection_fields.value Mapeado diretamente, com a chave changedAttributes.
debugContext.debugData.clientAddress principal.ip, principal.asset.ip Mapeado diretamente se request.ipChain e client.ipAddress estiverem em falta.
debugContext.debugData.deviceFingerprint target.asset.asset_id Mapeado diretamente, com o prefixo device_finger_print:.
debugContext.debugData.dtHash security_result.detection_fields.value Mapeado diretamente, com a chave dtHash.
debugContext.debugData.factor security_result.detection_fields.value Mapeado diretamente, com a chave factor.
debugContext.debugData.factorIntent security_result.detection_fields.value Mapeado diretamente, com a chave factorIntent.
debugContext.debugData.logOnlySecurityData.risk.reasons security_result.detection_fields.value Mapeado diretamente, com a chave Risk Reasons.
debugContext.debugData.privilegeGranted target.user.attribute.roles Divididos em privilégios individuais e adicionados como funções com nome e descrição.
debugContext.debugData.pushOnlyResponseType security_result.detection_fields.value Mapeado diretamente, com a chave pushOnlyResponseType.
debugContext.debugData.pushWithNumberChallengeResponseType security_result.detection_fields.value Mapeado diretamente, com a chave pushWithNumberChallengeResponseType.
debugContext.debugData.requestUri extensions.auth.auth_details Mapeado diretamente.
debugContext.debugData.suspiciousActivityEventId security_result.detection_fields.value Mapeado diretamente, com a chave suspiciousActivityEventId.
debugContext.debugData.suspiciousActivityEventType security_result.detection_fields.value Mapeado diretamente, com a chave suspiciousActivityEventType.
debugContext.debugData.threatDetections security_result.detection_fields.value Mapeado diretamente, com a chave threatDetections.
debugContext.debugData.threatSuspected security_result.detection_fields.value, security_result.threat_status Mapeado como um campo de deteção com a chave threatSuspected. Usado para determinar o estado da ameaça (ATIVO ou FALSO_POSITIVO).
debugContext.debugData.url target.url Mapeado diretamente.
displayMessage security_result.summary Mapeado diretamente.
eventType metadata.product_event_type, metadata.event_type Mapeado diretamente para product_event_type. Usado para derivar 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 Mapeado diretamente, com a chave legacyEventType.
outcome.reason security_result.category_details Mapeado diretamente.
outcome.result security_result.action Mapeado para ação (PERMITIR, DESAFIO, BLOQUEAR) com base no valor.
published metadata.event_timestamp Analisado para indicação de tempo.
request.ipChain.n.geographicalContext intermediary.location Contexto geográfico dos IPs intermediários na cadeia de pedidos.
request.ipChain.n.ip intermediary.ip Endereços IP de intermediários na cadeia de pedidos.
securityContext.asNumber security_result.detection_fields.value Mapeado diretamente, com a chave asNumber.
securityContext.asOrg security_result.detection_fields.value Mapeado diretamente, com a chave asOrg.
securityContext.domain security_result.detection_fields.value Mapeado diretamente, com a chave domain.
securityContext.isp security_result.detection_fields.value Mapeado diretamente, com a chave isp.
securityContext.isProxy security_result.detection_fields.value Mapeado diretamente, com a chave anonymized IP.
target.n.alternateId target.user.email_addresses/target.user.userid Se for um endereço de email, mapeado para target.user.email_addresses. Se não for um endereço de email, é usado como target.user.userid.
target.n.detailEntry.clientAppId target.asset_id Mapeado diretamente, com o prefixo Client_app_id:.
target.n.detailEntry.methodTypeUsed target.resource_ancestors.attribute.labels.value Mapeado diretamente, com a chave methodTypeUsed quando o tipo de destino é AuthenticatorEnrollment.
target.n.detailEntry.methodUsedVerifiedProperties target.resource_ancestors.attribute.labels.value Mapeado diretamente, com a chave methodUsedVerifiedProperties quando o tipo de destino é AuthenticatorEnrollment.
target.n.detailEntry.policyType target.resource_ancestors.attribute.labels.value Mapeado diretamente, com a chave Policy Type.
target.n.detailEntry.signOnModeType security_result.detection_fields.value Mapeado diretamente, com a chave signOnModeType.
target.n.displayName target.user.user_display_name / target.application / target.resource.name Mapeada com base no tipo de destino.
target.n.id target.user.product_object_id / target.resource.product_object_id / target.resource_ancestors.product_object_id Mapeada com base no tipo de destino.
target.n.type target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype Mapeada com base no tipo de destino.
transaction.id network.session_id Mapeado diretamente.
transaction.type additional.fields.value.string_value Mapeado diretamente como valor de string com a chave type em additional.fields.
uuid metadata.product_log_id Mapeado diretamente.
N/A metadata.vendor_name Definido como Okta.
N/A metadata.product_name Definido como Okta.
N/A extensions.auth.type Definido como SSO.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.