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
,vi
ou Bloco de notas).
- Localize o ficheiro
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
- 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.json
para 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-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
- 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
CSV
ouCEF
.
- 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.