Coletar registros do ForgeRock OpenAM

Compatível com:

Neste documento, explicamos como ingerir registros do ForgeRock OpenAM no Google Security Operations usando o Bindplane. O analisador extrai campos dos registros nos formatos CSV, Syslog + KV ou JSON, normaliza e mapeia para o modelo de dados unificado (UDM). Ele processa vários tipos de eventos do OpenAM, incluindo login/logout, resultados de acesso e registros gerais, enriquecendo os dados com informações de usuário, grupo e rede, além de realizar transformações específicas para diferentes formatos de registro e tipos de eventos. O analisador prioriza a análise JSON, depois volta para Syslog+KV e, por fim, CSV, descartando registros de formatos não compatíveis.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Instância do Google SecOps
  • Windows 2016 ou mais recente ou um host Linux com systemd
  • Se estiver executando por trás de um proxy, as portas do firewall estarão abertas.
  • Acesso privilegiado ao Forgerock OpenAM (por exemplo, amAdmin)

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID do cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Outros recursos de instalação

Para mais opções de instalação, consulte o guia de instalação.

Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:
    • Localize o arquivo config.yaml. Normalmente, ele fica no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  2. Edite o arquivo config.yaml da seguinte forma:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'OPENAM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID do cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o registro de auditoria no Forgerock OpenAM

  1. Faça login no console do AM.
  2. Acesse Configurar > Serviços globais > Registro de auditoria.
  3. Ative os registros de auditoria para iniciar o recurso.
  4. Nas listas "Filtros de permissão de campo" e "Filtros de bloqueio de campo", insira valores para incluir (permissão) ou excluir (bloqueio) dos registros de eventos de auditoria.
  5. Clique em Salvar.

Configurar manipuladores do Syslog para o Forgerock OpenAM

  1. Faça login no console do AM como administrador, por exemplo, amAdmin.
  2. Para criar o manipulador de eventos na configuração global, acesse Configurar > Serviços globais > Geração de registros de auditoria.
  3. Para criar o manipulador de eventos em um realm, acesse Realms > Nome do realm > Serviços > Registro de auditoria.
  4. Clique em Adicionar uma configuração secundária > Syslog.
  5. Informe os seguintes detalhes de configuração:
    • Nome: insira um nome para o manipulador de eventos (por exemplo, Google SecOps Syslog Event Handler).
    • Nome do host do servidor: insira o endereço IP do agente do Bindplane.
    • Porta do servidor: insira o número da porta do agente Bindplane (por exemplo, 514 para UDP).
    • Protocolo de transporte: selecione UDP.
    • Tempo limite de conexão: insira o número de segundos para se conectar (por exemplo, 120).
    • Opcional: ative a opção Buffering.
  6. Clique em Criar.
  7. Depois que o manipulador de eventos de auditoria do syslog é criado, várias guias de configuração aparecem.
  8. Na guia Configuração do manipulador geral, selecione Ativado para ativar o manipulador de eventos, se ele estiver desativado.
  9. Selecione os tópicos para registros de auditoria:
    • Acesso
    • Atividade
    • Autenticação
    • Configuração
  10. Clique em Salvar.
  11. Na guia Configuração do Syslog, forneça os seguintes detalhes de configuração:
    • Nome do host do servidor: insira o endereço IP do agente do Bindplane.
    • Porta do servidor: digite o número da porta do agente do Bindplane.
    • Tempo limite de conexão: insira o número de segundos para se conectar (por exemplo, 120).
    • Protocolo de transporte: selecione UDP.
    • Unidade: selecione Local0.
    • Todos os tópicos definem a gravidade como INFORMATIVA.
  12. Clique em Salvar.
  13. Na guia Buffer, selecione Buffer ativado para ativar.

  14. Clique em Salvar.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
client.ip principal.ip O endereço IP do cliente que está fazendo a solicitação.
client.ip principal.asset.ip O endereço IP do recurso do cliente que está fazendo a solicitação.
client.port principal.port A porta usada pelo cliente que faz a solicitação.
entries[0].info.authLevel principal.resource.resource_subtype O nível de autenticação associado ao evento. Prefixo "authLevel:".
entries[0].info.displayName security_result.description Um nome descritivo para o nó na árvore de autenticação.
entries[0].info.ipAddress principal.asset.ip O endereço IP associado ao principal no evento.
entries[0].info.ipAddress principal.ip O endereço IP associado ao principal no evento.
entries[0].info.nodeId principal.resource.id O identificador exclusivo do nó na árvore de autenticação. Prefixo "nodeId:".
entries[0].info.nodeOutcome principal.resource.attribute.labels.value O resultado do nó na árvore de autenticação.
entries[0].info.nodeType principal.resource.type O tipo do nó na árvore de autenticação. Prefixo "nodeType:".
entries[0].info.treeName principal.resource.name O nome da árvore de autenticação. Prefixo "treeName:".
eventName metadata.product_event_type O nome do evento bruto dos registros do OpenAM.
http.request.headers.host[0] target.asset.hostname O nome do host do servidor de destino, extraído do cabeçalho host.
http.request.headers.host[0] target.hostname O nome do host do servidor de destino, extraído do cabeçalho host.
http.request.headers.user-agent[0] network.http.user_agent O user agent da solicitação HTTP.
http.request.method network.http.method O método HTTP usado na solicitação.
http.request.path target.url O caminho do URL da solicitação HTTP.
info.failureReason security_result.summary O motivo de uma falha na autenticação. Codificado como "SSO". Determinado por uma lógica baseada em eventName e outros campos. Pode ser GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP ou STATUS_UPDATE. Codificado como "OPENAM". Codificado como "OpenAM". Codificado como "ForgeRock".
principal target.user.userid O ID do usuário envolvido no evento, extraído dos campos userId, principal ou runAs.
result security_result.action_details O resultado do evento (por exemplo, "SUCCESSFUL", "FAILED").
response.detail.reason security_result.summary O motivo de uma falha em um evento de resultado de acesso.
response.status security_result.action_details O status da resposta em um evento de resultado de acesso.
runAs target.user.userid O ID do usuário envolvido no evento, extraído dos campos userId, principal ou runAs.
security_result.action security_result.action A ação tomada como resultado da ocorrência de segurança (por exemplo, "ALLOW", "BLOCK").
server.ip target.asset.ip O endereço IP do servidor de destino.
server.ip target.ip O endereço IP do servidor de destino.
server.port target.port A porta do servidor de destino.
timestamp metadata.event_timestamp O carimbo de data/hora do evento.
trackingIds metadata.product_log_id O ID de rastreamento associado ao evento.
transactionId metadata.product_deployment_id O ID da transação associada ao evento.
userId target.user.userid O ID do usuário envolvido no evento, extraído dos campos userId, principal ou runAs.
userId target.user.group_identifiers Os identificadores de grupo associados ao usuário.
am_group target.user.group_identifiers Os identificadores de grupo associados ao usuário.
am_user target.user.email_addresses O endereço de e-mail do usuário, se presente no campo am_user.
loginID[0] target.user.userid O ID de login usado no evento.
loginID[0] target.user.email_addresses O endereço de e-mail usado para login, se presente no campo loginID.
hostip intermediary.hostname O nome do host de um dispositivo intermediário.
hostip intermediary.ip O endereço IP de um dispositivo intermediário.
src_ip principal.asset.ip O endereço IP de origem.
src_ip principal.ip O endereço IP de origem.
desc metadata.description É a descrição do evento.
payload metadata.description O payload do evento.

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