Coletar registros do Okta

Compatível com:

Este documento explica como ingerir registros do Okta no Google Security Operations usando a API do Okta. O analisador extrai registros do sistema, processando eventos únicos e em lote em uma matriz JSON. Ele normaliza os dados no formato UDM, mapeando campos do Okta para equivalentes da UDM, enriquecendo os dados com user agents analisados, informações geográficas e detalhes de autenticação, além de gerar eventos de resultados de segurança com base em resultados e informações de risco.

Antes de começar

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

Como configurar o Okta

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

Criar um usuário administrativo do Okta com privilégios somente leitura

  1. Faça login no console de administrador do Okta.
  2. Crie um usuário padrão.

    • Acesse 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 usuário padrão.

  6. Na seção papéis, selecione Administrador somente leitura na lista.

  7. Saia da conta de administrador.

Receber chave da API

  1. Faça login no Okta Administrator Console com o usuário administrador somente leitura.
  2. Acesse Segurança > API > Tokens.
  3. Clique em Criar token.
  4. Dê um nome significativo ao token.
  5. Informe a zona de IP em que a API será usada. Se não tiver certeza, selecione qualquer IP.
  6. Clique em Criar token.
  7. Copie a chave de API.
  8. Clique em OK, entendi.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em Configurações do SIEM > Feeds

Para configurar vários feeds para diferentes tipos de registros nessa família de produtos, consulte Configurar feeds por produto.

Para configurar um único feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do Okta.
  5. Selecione API de terceiros como o Tipo de origem.
  6. Selecione Okta como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:
    • Cabeçalho HTTP de autenticação: insira a chave de API do Okta no seguinte formato: Authorization:<API_KEY>.
    • Nome do host da API: especifique o nome de domínio do host do Okta (por exemplo, <your-domain>.okta.com).
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo aplicado aos eventos deste feed.
  9. Clique em Próxima.
  10. Revise a configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • Cabeçalhos HTTP de autenticação: usados para autenticar na API de alertas/ameaças e indicadores estáticos do SentinelOne no formato key:value.
  • Nome do host da API: o nome de domínio totalmente qualificado da API do SentinelOne.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
actor.alternateId principal.user.email_addresses Extraído de actor.alternateId se for um endereço de e-mail. Se não for um endereço de e-mail, será 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 um 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 um 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 detecçã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 ausentes.
debugContext.debugData.deviceFingerprint target.asset.asset_id Mapeado diretamente, prefixado com 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 detecção com a chave threatSuspected. Usado para derivar o status da ameaça (ACTIVE ou FALSE_POSITIVE).
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 (ALLOW, CHALLENGE, BLOCK) com base no valor.
published metadata.event_timestamp Analisado para carimbo de data/hora.
request.ipChain.n.geographicalContext intermediary.location Contexto geográfico dos IPs intermediários na cadeia de solicitação.
request.ipChain.n.ip intermediary.ip Endereços IP de intermediários na cadeia de solicitação.
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 e-mail, mapeado para target.user.email_addresses. Se não for um endereço de e-mail, será usado como target.user.userid.
target.n.detailEntry.clientAppId target.asset_id Mapeado diretamente, prefixado com 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 Mapeamento 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 Mapeamento com base no tipo de destino.
target.n.type target.user.attribute.roles.name / target.resource.resource_subtype / target.resource_ancestors.resource_subtype Mapeamento com base no tipo de destino.
transaction.id network.session_id Mapeado diretamente.
transaction.type additional.fields.value.string_value Mapeado diretamente como um valor de string com a chave type em additional.fields.
uuid metadata.product_log_id Mapeado diretamente.
N/A metadata.vendor_name Defina como Okta.
N/A metadata.product_name Defina como Okta.
N/A extensions.auth.type Defina como SSO.

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