Recolha registos da DLP da Trellix
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
- Inicie sessão na consola Google SecOps.
 - Aceda a Definições do SIEM > Agentes de recolha.
 - 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
- Inicie sessão na consola Google SecOps.
 - Aceda a Definições do SIEM > Perfil.
 - 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
- Abra a Linha de comandos ou o PowerShell como administrador.
 Execute o seguinte comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de raiz ou sudo.
 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
- 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,viou Bloco de notas). 
 - Localize o ficheiro 
 Edite o ficheiro
config.yamlda 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 de cliente real. - Atualize 
/path/to/ingestion-authentication-file.jsonpara o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps. 
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-agentPara 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
- Inicie sessão na consola do McAfee ePO.
 - Aceda a Menu > Configuração > Servidores registados.
 - Clique em Novo servidor > Servidor Syslog.
 - 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 
CSVouCEF. 
 - Nome: nome exclusivo para o servidor Syslog (por exemplo, 
 - Clique em Guardar.
 
Configure o encaminhamento de eventos de DLP
- Aceda a Menu > Proteção de dados > Gestor de políticas de DLP.
 - Clique no separador Regras de atribuição de políticas de DLP.
 - Edite a regra que se aplica aos seus sistemas de destino ou crie uma nova.
 - Aceda ao separador Ações da regra.
 - Selecione a caixa Registar no servidor Syslog e selecione o servidor Syslog que criou anteriormente.
 - Guarde a regra.
 
Ative o encaminhamento de incidentes de DLP
- Aceda a Menu > Proteção de dados > Gestor de incidentes de DLP.
 - Clique em Ações de incidentes.
 - Crie ou edite uma ação para encaminhar para o servidor syslog.
 - Atribua esta ação a uma regra na sua política de DLP.
 
Implemente a política
- Aceda a Estrutura do sistema > selecione o grupo ou o sistema pretendido.
 - Clique em Ações > Agente > Ativar agentes.
 - Selecione Enviar políticas.
 - 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.