Coletar registros da DLP da Trellix
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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- 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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- 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
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este 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 root ou sudo.
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
- 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).
- Localize o arquivo
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
- Faça login no console do McAfee ePO.
- Acesse Menu > Configuração > Servidores registrados.
- Clique em Novo servidor > Servidor Syslog.
- 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
ouCEF
.
- Nome: nome exclusivo para o servidor Syslog (por exemplo,
- Clique em Salvar.
Configurar o encaminhamento de eventos da DLP
- Acesse Menu > Proteção de dados > Gerenciador de políticas de DLP.
- Clique na guia Regras de atribuição de política de DLP.
- Edite a regra que se aplica aos seus sistemas de destino ou crie uma nova.
- Acesse a guia Ações da regra.
- Marque a caixa Registrar no servidor Syslog e selecione o servidor Syslog criado anteriormente.
- Salve a regra.
Ativar o encaminhamento de incidentes da DLP
- Acesse Menu > Proteção de dados > Gerenciador de incidentes de DLP.
- Clique em Ações do incidente.
- Crie ou edite uma ação para encaminhar ao servidor syslog.
- Atribua essa ação a uma regra na sua política de DLP.
Implantar a política
- Acesse Árvore do sistema > selecione o grupo ou sistema desejado.
- Clique em Ações > Agente > Ativar agentes.
- Selecione as Políticas de envio.
- 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.