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,viou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
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 do cliente real. - Atualize
/path/to/ingestion-authentication-file.jsonpara 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-agentPara 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
CSVouCEF.
- 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.