Coletar registros da DLP da Trellix

Compatível com:

Este documento explica como ingerir registros de DLP (prevenção contra perda de dados) da Trellix (antiga McAfee) no Google Security Operations usando o Bindplane. Esse analisador processa registros do McAfee DLP no formato CSV, transformando-os no modelo de dados unificado (UDM). Ele limpa a entrada, analisa os dados CSV, mapeia campos para UDM, processa tipos e gravidades específicos de eventos de DLP e enriquece a UDM com metadados adicionais e detalhes de resultados de segurança.

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 McAfee EPO
  • A extensão McAfee DLP Endpoint está instalada e ativa

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: 'MCAFEE_DLP'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
    • Substitua <customer_id> pelo ID do cliente real.
    • 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 servidor Syslog no McAfee ePO

  1. Faça login no console do McAfee ePO.
  2. Acesse Menu > Configuração > Servidores registrados.
  3. Clique em Novo servidor > Servidor Syslog.
  4. Informe os seguintes detalhes de configuração:
    • Nome: nome exclusivo para o servidor Syslog (por exemplo, Google SecOps).
    • Endereço do servidor: insira o endereço IP do agente do Bindplane.
    • Porta: insira o número da porta do agente Bindplane (o padrão é 514).
    • Protocolo: selecione UDP ou TCP (dependendo da instalação do agente do Bindplane).
    • Formato: use CSV ou CEF.
  5. Clique em Salvar.

Configurar o encaminhamento de eventos da DLP

  1. Acesse Menu > Proteção de dados > Gerenciador de políticas de DLP.
  2. Clique na guia Regras de atribuição de política de DLP.
  3. Edite a regra que se aplica aos seus sistemas de destino ou crie uma nova.
  4. Acesse a guia Ações da regra.
  5. Marque a caixa Registrar no servidor Syslog e selecione o servidor Syslog criado anteriormente.
  6. Salve a regra.

Ativar o encaminhamento de incidentes da DLP

  1. Acesse Menu > Proteção de dados > Gerenciador de incidentes de DLP.
  2. Clique em Ações do incidente.
  3. Crie ou edite uma ação para encaminhar ao servidor syslog.
  4. Atribua essa ação a uma regra na sua política de DLP.

Implantar a política

  1. Acesse Árvore do sistema > selecione o grupo ou sistema desejado.
  2. Clique em Ações > Agente > Ativar agentes.
  3. Selecione as Políticas de envio.
  4. Clique em OK.

Tabela de mapeamento da UDM

Campo de registro Mapeamento do UDM Lógica
action security_result.action_details Mapeado diretamente do campo action.
action security_result.action Derivado do campo action. Se action for 1, será BLOCK. Se action for 0, será ALLOW. Se action for 6, será UNKNOWN_ACTION.
agent_ver metadata.product_version Mapeado diretamente do campo agent_ver (que vem de column8).
class_count additional.fields[4].key O valor é ClassCount.
class_count additional.fields[4].value.string_value Mapeado diretamente do campo class_count.
class_display additional.fields[5].key O valor é ClassDisplay.
class_display additional.fields[5].value.string_value Mapeado diretamente do campo class_display.
count additional.fields[6].key O valor é Count.
count additional.fields[6].value.string_value Mapeado diretamente do campo count.
device_name principal.hostname Mapeado diretamente do campo device_name.
dst target.hostname Mapeado diretamente do campo dst se inc_type for 10000.
dst target.user.userid Mapeado diretamente do campo dst se inc_type não for 10000.
dst_app target.application Mapeado diretamente do campo dst_app.
dst_url target.url Mapeado diretamente do campo dst_url.
encrypt security_result.detection_fields[1].key O valor é EncryptionProvider.
encrypt security_result.detection_fields[1].value Mapeado diretamente do campo encrypt.
evidence_count additional.fields[2].key O valor é EvidenceCount.
evidence_count additional.fields[2].value.string_value Mapeado diretamente do campo evidence_count.
fail_reason additional.fields[3].key O valor é FailReason.
fail_reason additional.fields[3].value.string_value Mapeado diretamente do campo fail_reason.
fail_reason security_result.description Se fail_reason for 0, o valor será No Failure. Caso contrário, o valor será Failure Occurred.
file target.file.full_path Mapeado diretamente do campo file.
file_size target.file.size Mapeado diretamente do campo file_size e convertido em um número inteiro sem sinal.
group principal.user.attribute.labels.key O valor é group.
group principal.user.attribute.labels.value Mapeado diretamente do campo group.
inc_id metadata.product_log_id Mapeado diretamente do campo inc_id (que vem de column1).
inc_type metadata.event_type Usado na lógica condicional para determinar o metadata.event_type. Confira a lógica para mais detalhes.
inc_type metadata.product_event_type Mapeado diretamente do campo inc_type (que vem de column2).
ip principal.ip Endereço IP extraído do campo ip usando grok.
local_date metadata.event_timestamp O carimbo de data/hora do campo local_date, analisado e convertido em segundos desde o início da era Unix.
name principal.user.user_display_name Mapeado diretamente do campo name. Se inc_type estiver em [10000,10001,10002,40101,40400,40500,40700] e ip for um IP válido, o valor será SCAN_NETWORK. Se inc_type for 40102 e file não estiver vazio, o valor será SCAN_FILE. Se inc_type estiver em [40301,40602], o valor será PROCESS_UNCATEGORIZED. Caso contrário, o valor será GENERIC_EVENT. Valor fixado no código: GCP_CLOUDAUDIT. Valor fixado no código: Mcafee DLP. Valor fixado no código: Mcafee. Se status_id estiver em [1,2], o valor será NEW. Se status_id estiver em [3,4], o valor será CLOSED. Se status_id estiver em [5,6], o valor será REVIEWED. O valor é StatusId. O valor é Resolution Id. O valor é Expected Action.
process_name target.process.file.full_path Mapeado diretamente do campo process_name.
resolution_id security_result.about.labels[0].value Mapeado diretamente do campo resolution_id.
rule_name security_result.rule_name Mapeado diretamente do campo rule_name.
rule_set security_result.rule_labels.key O valor é rule_set.
rule_set security_result.rule_labels.value Mapeado diretamente do campo rule_set.
sev security_result.severity Derivado do campo sev. Se sev for 1, será INFORMATIONAL. Se sev for 2, será ERROR. Se sev for 3, será BAIXA. Se sev for 4, será ALTO. Se sev for 5, será CRÍTICO.
sev security_result.severity_details Mapeado diretamente do campo sev.
status_id principal.labels.value Mapeado diretamente do campo status_id.
total_count additional.fields[1].key O valor é TotalCount.
total_count additional.fields[1].value.string_value Mapeado diretamente do campo total_count.
total_size additional.fields[0].key O valor é TotalSize.
total_size additional.fields[0].value.string_value Mapeado diretamente do campo total_size.
usb_serial_number security_result.detection_fields[0].key O valor é USBSerialNumber.
usb_serial_number security_result.detection_fields[0].value Mapeado diretamente do campo usb_serial_number.
user principal.user.userid Mapeado diretamente do campo user.
user_ou principal.user.group_identifiers Mapeado diretamente do campo user_ou.
volume_serial_number security_result.detection_fields[2].key O valor é VolumeSerialNumber.
volume_serial_number security_result.detection_fields[2].value Mapeado diretamente do campo volume_serial_number.
expected_action security_result.about.labels[1].value Mapeado diretamente do campo expected_action.

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