Coletar registros de DLP do Forcepoint

Versão do analisador:10.0

Compatível com:

Neste documento, explicamos como ingerir registros do Forcepoint DLP no Google Security Operations usando o Bindplane.

A DLP (prevenção contra perda de dados) da Forcepoint é uma solução de proteção de dados que identifica, monitora e protege dados sensíveis em ambientes empresariais. Ele detecta e impede transferências de dados não autorizadas por e-mail, Web, endpoints e aplicativos em nuvem usando políticas com reconhecimento de conteúdo e machine learning. O analisador extrai campos de registros formatados em CEF da DLP do Forcepoint. Em seguida, ele mapeia esses valores para o modelo de dados unificado (UDM). Ele também define valores padrão de metadados para a origem e o tipo do evento.

Antes de começar

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

  • Uma instância do Google SecOps
  • Windows Server 2016 ou mais recente ou host do Linux com systemd
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
  • Acesso privilegiado ao console da Web do Forcepoint Security Manager

Receber credenciais do Google SecOps para o agente do BindPlane

Para autenticar o agente do Bindplane no Google SecOps, escolha um dos seguintes métodos:

  • Novas implantações: use a API Chronicle (opção 1).
  • Implantações legadas: continue usando o arquivo de autenticação de ingestão (opção 2) até que a API Ingestion seja descontinuada em 20 de julho de 2027.
  1. Faça login no console doGoogle Cloud e selecione o projeto do Google Cloud vinculado à sua instância do Google SecOps.
  2. Acesse IAM e administrador > Contas de serviço.
  3. Clique em Criar conta de serviço.
  4. Informe os seguintes detalhes de configuração:
    • Nome da conta de serviço: insira um nome para a conta (por exemplo, bindplane-ingest).
    • Descrição da conta de serviço: insira uma descrição (por exemplo, Bindplane agent log ingestion).
  5. Clique em Criar e continuar.
  6. Na seção Conceder a essa conta de serviço acesso ao projeto, clique em Selecionar uma função e escolha Editor do Chronicle.
  7. Clique em Continuar e depois em Concluído.
  8. Clique na conta de serviço que você criou e acesse a guia Chaves.
  9. Clique em Adicionar chave > Criar nova chave.
  10. Selecione JSON e clique em Criar. O download do arquivo de chave é feito no seu computador.
  11. Salve o arquivo de chave como ingestion-auth.json no diretório do coletor do Bindplane (/opt/observiq-otel-collector/ingestion-auth.json no Linux ou C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json no Windows) ou atualize creds_file_path em config.yaml para corresponder ao caminho em que você o salvou.
  12. Acesse IAM e administrador > Configurações e copie o número do projeto. Você vai precisar dele para configurar o exportador.

Opção 2: baixar o arquivo de autenticação de ingestão (legado)

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

Receber o ID de 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 de cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no seu 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
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sc query observiq-otel-collector
    

O serviço precisa aparecer como RUNNING.

Instalação do Linux

  1. Abra um terminal com privilégios de raiz 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
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sudo systemctl status observiq-otel-collector
    

O serviço precisa aparecer como active (running).

Outros recursos de instalação

Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do BindPlane.

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

Localize o arquivo de configuração.

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  • Substitua todo o conteúdo de config.yaml pela seguinte configuração:

    receivers:
      tcplog:
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: chronicle.googleapis.com
        log_type: 'FORCEPOINT_DLP'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - tcplog
          exporters:
            - chronicle/chronicle_w_labels
    

Parâmetros de configuração

  • Substitua os seguintes marcadores de posição:

    • Configuração do receptor:

      • tcplog: use udplog para syslog UDP ou tcplog para syslog TCP.
      • 0.0.0.0: endereço IP para detectar (0.0.0.0 para detectar em todas as interfaces)
      • 514: número da porta a ser detectada (porta syslog padrão)
    • Configuração do exportador:

      • creds_file_path: caminho completo para o arquivo de chave JSON da conta de serviço (opção 1):
        • Linux: /opt/observiq-otel-collector/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • YOUR_CUSTOMER_ID: ID de cliente da seção "Receber ID de cliente"
      • location: substitua <LOCATION> pela região da sua instância do Google SecOps (por exemplo, us, europe ou asia-southeast1). O exportador adiciona esse valor ao prefixo chronicle.googleapis.com. Consulte Endpoints regionais para ver a lista completa.
      • project: substitua <PROJECT_NUMBER> pelo número do projeto em IAM e administrador > Configurações.
      • endpoint: mantenha definido como chronicle.googleapis.com.
      • log_type: tipo de registro exatamente como aparece no Chronicle (FORCEPOINT_DLP)

Exportador da API de ingestão legada

  • Se você usar o arquivo de autenticação de ingestão da opção 2, substitua o bloco exporters pelo seguinte. Defina creds_file_path como o caminho para o arquivo de autenticação de ingestão e, se a instância estiver fora dos EUA, substitua malachiteingestion-pa.googleapis.com pelo endpoint regional (por exemplo, europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        customer_id: 'YOUR_CUSTOMER_ID'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: 'FORCEPOINT_DLP'
        raw_log_field: body
        ingestion_labels:
    

Salve o arquivo de configuração.

  • Depois de editar, salve o arquivo:
    • Linux: pressione Ctrl+O, Enter e Ctrl+X.
    • Windows: clique em Arquivo > Salvar.

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 observiq-otel-collector
    
    1. Verifique se o serviço está em execução:

        sudo systemctl status observiq-otel-collector
      
    2. Verifique se há erros nos registros:

        sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar o agente do BindPlane no Windows, escolha uma das seguintes opções:

    • Prompt de comando ou PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console de serviços:

      1. Pressione Win+R, digite services.msc e pressione Enter.
      2. Localize o coletor do OpenTelemetry da observIQ.
      3. Clique com o botão direito do mouse e selecione Reiniciar.

      4. Verifique se o serviço está em execução:

        sc query observiq-otel-collector
        
      5. Verifique se há erros nos registros:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configurar o encaminhamento de syslog do Forcepoint DLP

  1. Faça login no console da Web do Forcepoint Security Manager.
  2. Acesse Configurações > Geral > Integração do SIEM.
  3. Selecione Ativar integração com SIEM.
  4. Informe os seguintes detalhes de configuração:
    • Endereço IP do servidor Syslog: insira o endereço IP do host do agente do BindPlane.
    • Porta: insira 514.
    • Protocolo: selecione TCP.
    • Formato: selecione CEF (Common Event Format).
    • TLS ativado: desmarque (a menos que esteja usando TLS).
  5. Na seção Dados do incidente, selecione os dados a serem incluídos nas mensagens do syslog:
    • Ação tomada
    • Gravidade
    • Nome da política
    • Informações da fonte
    • Informações de destino
    • Detalhes do conteúdo
  6. Clique em OK para salvar.
  7. Acesse Principal > Gerenciamento de políticas > Políticas de DLP.
  8. Para cada política que deve encaminhar eventos, verifique se a notificação do syslog está ativada:
    1. Selecione a política.
    2. Acesse a guia Plano de ação.
    3. Verifique se o plano de ação inclui Enviar para o SIEM.
  9. Clique em Implantar para aplicar as mudanças na política.
  10. Verifique se as mensagens syslog estão sendo enviadas conferindo os registros do agente Bindplane.

Tabela de mapeamento de UDM

Campo de registro Mapeamento de UDM Lógica
agir security_result.description Se actionPerformed estiver vazio, o valor de act será atribuído a security_result.description.
actionID metadata.product_log_id O valor de actionID é atribuído a metadata.product_log_id.
actionPerformed security_result.description O valor de actionPerformed é atribuído a security_result.description.
administrador principal.user.userid O valor de administrador é atribuído a principal.user.userid.
analyzedBy additional.fields.key A string "analyzedBy" é atribuída a additional.fields.key.
analyzedBy additional.fields.value.string_value O valor de analyzedBy é atribuído a additional.fields.value.string_value.
gato security_result.category_details Os valores de "cat" são mesclados no campo "security_result.category_details" como uma lista.
destinationHosts target.hostname O valor de destinationHosts é atribuído a target.hostname.
destinationHosts target.asset.hostname O valor de destinationHosts é atribuído a target.asset.hostname.
detalhes security_result.description Se actionPerformed e act estiverem vazios, o valor de details será atribuído a security_result.description.
duser target.user.userid O valor de duser é usado para preencher target.user.userid. Vários valores separados por "; " são divididos e atribuídos como endereços de e-mail individuais se corresponderem à expressão regular de e-mail. Caso contrário, são tratados como IDs de usuário.
eventId metadata.product_log_id Se actionID estiver vazio, o valor de eventId será atribuído a metadata.product_log_id.
fname target.file.full_path O valor de fname é atribuído a target.file.full_path.
logTime metadata.event_timestamp O valor de logTime é analisado e usado para preencher metadata.event_timestamp.
loginName principal.user.user_display_name O valor de loginName é atribuído a principal.user.user_display_name.
msg metadata.description O valor de msg é atribuído a metadata.description.
productVersion additional.fields.key A string "productVersion" é atribuída a additional.fields.key.
productVersion additional.fields.value.string_value O valor de "productVersion" é atribuído a "additional.fields.value.string_value".
papel principal.user.attribute.roles.name O valor da função é atribuído a principal.user.attribute.roles.name.
severityType security_result.severity O valor de severityType é mapeado para security_result.severity. "high" é mapeado para "HIGH", "med" para "MEDIUM" e "low" para "LOW" (não diferencia maiúsculas de minúsculas).
sourceHost principal.hostname O valor de "sourceHost" é atribuído a "principal.hostname".
sourceHost principal.asset.hostname O valor de sourceHost é atribuído a principal.asset.hostname.
sourceIp principal.ip O valor de "sourceIp" é adicionado ao campo "principal.ip".
sourceIp principal.asset.ip O valor de sourceIp é adicionado ao campo principal.asset.ip.
sourceServiceName principal.application O valor de sourceServiceName é atribuído a principal.application.
suser principal.user.userid Se administrator estiver vazio, o valor de suser será atribuído a principal.user.userid.
timestamp metadata.event_timestamp O valor do carimbo de data/hora é usado para preencher metadata.event_timestamp.
tópico security_result.rule_name O valor do tópico é atribuído a security_result.rule_name depois que as vírgulas são removidas. Fixado no código como "FORCEPOINT_DLP". Fixado no código como "Forcepoint". Extraído da mensagem CEF. Pode ser "Forcepoint DLP" ou "Forcepoint DLP Audit". Extraído da mensagem do CEF. Concatenação de "device_event_class_id" e "event_name", formatada como "[device_event_class_id] - event_name". Inicializado como "GENERIC_EVENT". Mudou para "USER_UNCATEGORIZED" se is_principal_user_present for "true".
destinationDnsDomain event.idm.read_only_udm.target.hostname e event.idm.read_only_udm.target.asset.hostname Mapeado do registro de alterações
inter_host intermediary.hostname Mapeado do registro de alterações
violationTriggers.VZ CPNI" and "violationTriggers.Controlled Unclassified Information: Portion Marking additional.fields Mapeado do registro de alterações
act security_result.action_details Mapeado do registro de alterações
caseDescription metadata.description Mapeado do registro de alterações
eventIDs metadata.product_event_type Mapeado do registro de alterações
sourceServiceName network.application_protocol Mapeado do registro de alterações
productVersion metadata.product_version Mapeado do registro de alterações
riskScore additional.fields Mapeado do registro de alterações
productVersion" and "analyzedBy additional.fields Mapeado do registro de alterações
timeStamp metadata.event_timestamp Mapeado do registro de alterações

Registro de alterações

Confira o registro de alterações deste analisador

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