Recolha registos da DLP da Trellix

Compatível com:

Este documento explica como carregar registos de DLP (prevenção de perda de dados) da Trellix (anteriormente McAfee) para o Google Security Operations através do Bindplane. Este analisador processa registos do McAfee DLP no formato CSV, transformando-os no modelo de dados unificado (UDM). Limpa a entrada, analisa os dados CSV, mapeia os campos para o UDM, processa tipos e gravidades de eventos de DLP específicos e enriquece o UDM com metadados adicionais e detalhes dos resultados de segurança.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps
  • Windows 2016 ou posterior, ou um anfitrião Linux com systemd
  • Se estiver a ser executado através de um proxy, as portas da firewall estão abertas
  • Acesso privilegiado ao McAfee EPO
  • A extensão McAfee DLP Endpoint está instalada e ativa

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instale o agente do Bindplane no seu sistema operativo Windows ou Linux de acordo com as seguintes instruções.

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte 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 raiz ou sudo.
  2. Execute o seguinte comando:

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

Recursos de instalação adicionais

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

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:
    • Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    • Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro 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
    

Reinicie o agente do Bindplane para aplicar as alterações

  • 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, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o servidor Syslog no McAfee ePO

  1. Inicie sessão na consola do McAfee ePO.
  2. Aceda a Menu > Configuração > Servidores registados.
  3. Clique em Novo servidor > Servidor Syslog.
  4. Indique os seguintes detalhes de configuração:
    • Nome: nome exclusivo para o servidor Syslog (por exemplo, Google SecOps).
    • Endereço do servidor: introduza o endereço IP do agente do Bindplane.
    • Porta: introduza o número da porta do agente do Bindplane (o valor predefinido é 514).
    • Protocolo: selecione UDP ou TCP (consoante a instalação do agente Bindplane).
    • Formato: use CSV ou CEF.
  5. Clique em Guardar.

Configure o encaminhamento de eventos de DLP

  1. Aceda a Menu > Proteção de dados > Gestor de políticas de DLP.
  2. Clique no separador Regras de atribuição de políticas de DLP.
  3. Edite a regra que se aplica aos seus sistemas de destino ou crie uma nova.
  4. Aceda ao separador Ações da regra.
  5. Selecione a caixa Registar no servidor Syslog e selecione o servidor Syslog que criou anteriormente.
  6. Guarde a regra.

Ative o encaminhamento de incidentes de DLP

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

Implemente a política

  1. Aceda a Estrutura do sistema > selecione o grupo ou o sistema pretendido.
  2. Clique em Ações > Agente > Ativar agentes.
  3. Selecione Enviar políticas.
  4. Clique em OK.

Tabela de mapeamento do UDM

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

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