Coletar registros do DLP da Symantec
Este documento explica como coletar registros de DLP da Symantec usando o Bindplane. O código do analisador primeiro tenta analisar os dados de registro do DLP da Symantec como XML. Se a análise XML falhar, ela vai assumir um formato SYSLOG + KV (CEF) e usar uma combinação de filtros grok
e kv
para extrair pares de chave-valor e mapeá-los ao modelo de dados unificado (UDM).
Antes de começar
- Verifique se você tem uma instância do Google Security Operations.
- Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com
systemd
. - Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Confira se você tem acesso privilegiado ao DLP da Symantec.
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.
- Faça o download do arquivo de autenticação de transferência. Salve o arquivo com segurança no sistema em que o BindPlane será instalado.
Receber o ID de 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
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 raiz 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 este guia de instalação.
Configurar o agente do Bindplane para processar o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele está 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 Notepad).
- Localize o arquivo
Edite o arquivo
config.yaml
da seguinte forma:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds: '/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: SYSLOG namespace: symantec_dlp raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
Substitua
<customer_id>
pelo ID real do cliente.Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber o 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 Services ou digite o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar a DLP da Symantec
- Faça login no console de administração do servidor Symantec.
- Selecione Gerenciar > Políticas > Regras de resposta.
- Selecione Configurar regra de resposta e insira um nome.
Forneça os seguintes detalhes:
- Ações: selecione Registrar em um servidor syslog.
- Host: insira o endereço IP
Bindplane
. - Port: digite o número da porta
Bindplane
. Mensagem: insira a seguinte mensagem:
|symcdlpsys|APPLICATION_NAME|$APPLICATION_NAME$|APPLICATION_USER|$APPLICATION_USER$|ATTACHMENT_FILENAME|$ATTACHMENT_FILENAME$|BLOCKED|$BLOCKED$|DATAOWNER_NAME|$DATAOWNER_NAME$|DATAOWNER_EMAIL|$DATAOWNER_EMAIL$|DESTINATION_IP|$DESTINATION_IP$|ENDPOINT_DEVICE_ID|$ENDPOINT_DEVICE_ID$|ENDPOINT_LOCATION|$ENDPOINT_LOCATION$|ENDPOINT_MACHINE|$ENDPOINT_MACHINE$|ENDPOINT_USERNAME|$ENDPOINT_USERNAME$|PATH|$PATH$|FILE_NAME|$FILE_NAME$|PARENT_PATH|$PARENT_PATH$|INCIDENT_ID|$INCIDENT_ID$|INCIDENT_SNAPSHOT|$INCIDENT_SNAPSHOT$|MACHINE_IP|$MACHINE_IP$|MATCH_COUNT|$MATCH_COUNT$|OCCURRED_ON|$OCCURRED_ON$|POLICY|$POLICY$|RULES|$RULES$|PROTOCOL|$PROTOCOL$|QUARANTINE_PARENT_PATH|$QUARANTINE_PARENT_PATH$|RECIPIENTS|$RECIPIENTS$|REPORTED_ON|$REPORTED_ON$|SCAN|$SCAN$|SENDER|$SENDER$|MONITOR_NAME|$MONITOR_NAME$|SEVERITY|$SEVERITY$|STATUS|$STATUS$|SUBJECT|$SUBJECT$|TARGET|$TARGET$|URL|$URL$|USER_JUSTIFICATION|$USER_JUSTIFICATION$|
Depuração: selecione Nível 4.
Clique em Aplicar.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento de UDM | Lógica |
---|---|---|
ato | security_result.action | Se act for Passed , defina como ALLOW . Se act for Modified , defina como ALLOW_WITH_MODIFICATION . Se act for Blocked , defina como BLOCK . Caso contrário, defina como UNKNOWN_ACTION . |
application_name | target.application | Mapeado diretamente. |
asset_ip | principal.ip, principal.asset.ip | Mapeado diretamente. |
asset_name | principal.hostname, principal.asset.hostname | Mapeado diretamente. |
attachment_name | security_result.about.file.full_path | Mapeado diretamente. |
bloqueado | security_result.action_details | Mapeado diretamente. |
calling_station_id | principal.mac, principal.asset.mac | Se calling_station_id for um endereço MAC, mapeie-o diretamente depois de substituir - por : e converter para letras minúsculas. |
called_station_id | target.mac, target.asset.mac | Se called_station_id for um endereço MAC, extraia a parte do endereço MAC antes de : e mapeie-a diretamente após substituir - por : e converter para letras minúsculas. |
category1 | security_result.detection_fields | Crie um rótulo com a chave category1 e o valor de category1 . |
category2 | security_result.detection_fields | Crie um rótulo com a chave category2 e o valor de category2 . |
category3 | security_result.detection_fields | Crie um rótulo com a chave category3 e o valor de category3 . |
client_friendly_name | target.user.userid | Mapeado diretamente. |
dataowner_mail | principal.user.email_addresses | Mapeado diretamente se for um endereço de e-mail válido. |
description | metadata.description | Mapeado diretamente. |
dest_location | target.location.country_or_region | Mapeado diretamente se não for RED . |
deviceId | target.asset_id | Mapeado como ID:%{deviceId} . |
device_version | metadata.product_version | Mapeado diretamente. |
dhost | network.http.referral_url | Mapeado diretamente. |
dlp_type | security_result.detection_fields | Crie um rótulo com a chave dlp_type e o valor de dlp_type . |
DLP_EP_Incident_ID | security_result.threat_id, security_result.detection_fields | Mapeado diretamente para threat_id . Além disso, crie um rótulo com a chave Incident ID e o valor de DLP_EP_Incident_ID . |
domínio | principal.administrative_domain | Mapeado diretamente. |
dst | target.ip e target.asset.ip | Mapeado diretamente se for um endereço IP válido. |
endpoint_machine | target.ip e target.asset.ip | Mapeado diretamente se for um endereço IP válido. |
endpoint_user_department | target.user.department | Mapeado diretamente. |
endpoint_user_email | target.user.email_addresses | Mapeado diretamente. |
endpoint_user_manager | target.user.managers | Crie um objeto de administrador com user_display_name de endpoint_user_manager . |
endpoint_user_name | target.user.user_display_name | Mapeado diretamente. |
endpoint_user_title | target.user.title | Mapeado diretamente. |
event_description | metadata.description | Mapeado diretamente. |
event_id | metadata.product_log_id | Mapeado diretamente. |
event_source | target.application | Mapeado diretamente. |
event_timestamp | metadata.event_timestamp | Mapeado diretamente. |
file_name | security_result.about.file.full_path | Mapeado diretamente. |
filename | target.file.full_path, src.file.full_path | Mapeado diretamente para target.file.full_path . Se has_principal for verdadeiro, mapeie também para src.file.full_path e defina event_type como FILE_COPY . |
host | src.hostname, principal.hostname, principal.asset.hostname | Se cef_data contiver CEF , mapeie para os três campos. Caso contrário, mapeie para principal.hostname e principal.asset.hostname . |
incident_id | security_result.threat_id, security_result.detection_fields | Mapeado diretamente para threat_id . Além disso, crie um rótulo com a chave Incident ID e o valor de incident_id . |
local | principal.resource.attribute.labels | Crie um rótulo com a chave Location e o valor de location . |
match_count | security_result.detection_fields | Crie um rótulo com a chave Match Count e o valor de match_count . |
monitor_name | additional.fields | Crie um rótulo com a chave Monitor Name e o valor de monitor_name . |
nas_id | target.hostname, target.asset.hostname | Mapeado diretamente. |
occurred_on | principal.labels, additional.fields | Crie um rótulo com a chave Occurred On e o valor de occurred_on para principal.labels e additional.fields . |
policy_name | sec_result.detection_fields | Crie um rótulo com a chave policy_name e o valor de policy_name . |
policy_rule | security_result.rule_name | Mapeado diretamente. |
policy_severity | security_result.severity | Mapeado para severity após a conversão para letras maiúsculas. Se policy_severity for INFO , mapeie como INFORMATIONAL . Se policy_severity não for HIGH , MEDIUM , LOW ou INFORMATIONAL , defina severity como UNKNOWN_SEVERITY . |
policy_violated | security_result.summary | Mapeado diretamente. |
Protocolo | network.application_protocol, target.application, sec_result.description | Se Protocol não for FTP ou Endpoint , mapeie-o para network.application_protocol depois de analisar usando o arquivo parse_app_protocol.include . Se Protocol for FTP , mapeie-o para target.application . Se Protocol for Endpoint , defina sec_result.description como Protocol=%{Protocol} . |
destinatário | target.user.email_addresses, about.user.email_addresses | Para cada endereço de e-mail em recipient , mapeie-o para target.user.email_addresses e about.user.email_addresses . |
destinatários | network.http.referral_url, target.resource.attribute.labels | Mapeado diretamente para network.http.referral_url . Além disso, crie um rótulo com a chave recipients e o valor de recipients . |
reported_on | additional.fields | Crie um rótulo com a chave Reported On e o valor de reported_on . |
regras | security_result.detection_fields | Crie um rótulo com a chave Rules e o valor de rules . |
sender | network.email.from, target.resource.attribute.labels | Se sender for um endereço de e-mail válido, mapeie-o para network.email.from . Além disso, crie um rótulo com a chave sender e o valor de sender . |
servidor | target.application | Mapeado diretamente. |
Gravidade | security_result.severity | Consulte policy_severity para conferir a lógica de mapeamento. |
src | principal.ip, principal.asset.ip | Mapeado diretamente se for um endereço IP válido. |
status | principal.labels, additional.fields | Crie um rótulo com a chave Status e o valor de status para principal.labels e additional.fields . |
subject | target.resource.attribute.labels, network.email.subject | Crie um rótulo com a chave subject e o valor de subject . Além disso, mapeie subject para network.email.subject . |
target_type | target.resource.attribute.labels | Crie um rótulo com a chave Target Type e o valor de target_type . |
timestamp | metadata.event_timestamp | Mapeado diretamente após a análise usando o filtro date . |
url | target.url | Mapeado diretamente. |
usuário | target.user.userid | Mapeado diretamente. |
user_id | principal.user.userid | Mapeado diretamente. |
nome de usuário | principal.user.userid | Mapeado diretamente. |
N/A | metadata.product_name | Defina como SYMANTEC_DLP . |
N/A | metadata.vendor_name | Defina como SYMANTEC . |
N/A | metadata.event_type | Se event_type não estiver vazio, mapeie-o diretamente. Caso contrário, se host não estiver vazio e has_principal for verdadeiro, defina como SCAN_NETWORK . Caso contrário, defina como GENERIC_EVENT . |
N/A | metadata.product_event_type | Se policy_violated contiver -NM- ou data contiver DLP NM , defina como Network Monitor . Se policy_violated contiver -EP- ou data contiver DLP EP , defina como Endpoint . |
N/A | metadata.log_type | Defina como SYMANTEC_DLP . |
Alterações
2025-02-04
Melhoria:
- Adição de suporte a registros SYSLOG.
2025-01-08
Melhoria:
ATTACHMENT_FILENAME
foi mapeado paraprincipal.file.full_path
.- Quando
DATAOWNER_NAME
está presente,DATAOWNER_NAME
é mapeado paraprincipal.user.userid
. - Quando
DATAOWNER_NAME
não está presente,ENDPOINT_USERNAME
é mapeado paraprincipal.user.userid
.
2024-12-27
Melhoria:
- Foi adicionado suporte para analisar o novo formato de registro.
2024-12-04
Melhoria:
- Foi adicionado suporte para analisar o novo formato de registro.
2024-11-11
Melhoria:
- Foi adicionado suporte para analisar o novo formato de registro.
2024-09-05
Melhoria:
- Foi adicionado suporte para analisar o novo formato de registro.
2024-06-17
Melhoria:
- Foi adicionado suporte para analisar o novo formato do campo
recipients
.
2024-06-14
Melhoria:
- Adição de suporte a registros do CEF.
2024-05-16
Melhoria:
dlp_type
foi mapeado parasecurity_result.detection_fields
.
2024-04-26
Correção de bugs:
recipients
foi mapeado paratarget.user.email_addresses
.
2024-03-10
Melhoria:
- Foram adicionados novos padrões Grok para analisar registros de novos formatos SYSLOG.
server
foi mapeado paratarget.application
.url
foi mapeado paratarget.url
.dataowner_mail
foi mapeado paraprincipal.user.email_addresses
.- Mapeamento de
reported_on
emonitor_name
paraadditional.fields
. sender
foi mapeado paranetwork.email.from
.subject
foi mapeado paranetwork.email.subject
.
2024-02-20
Melhoria:
- Mapeamento de
blocked
parasecurity_result.action_details
esecurity_result.action
.
2024-01-12
Melhoria:
- Mapeamento de
incident_id
eDLP_EP_Incident_ID
parasecurity_result.detection_fields
. - Foi adicionado um padrão Grok para analisar registros de novos formatos SYSLOG.
location
foi mapeado paraprincipal.resource.attribute.labels
.target_type
foi mapeado paratarget.resource.attribute.labels
.
2023-12-06
Melhoria:
- Foi adicionado um padrão Grok para analisar registros de novos formatos.
application
foi mapeado paraprincipal.application
.application_name
foi mapeado paratarget.application
.policy_name
foi mapeado parasecurity_result.detection_fields
.
2023-09-02
Melhoria:
- Foi adicionado suporte para analisar registros com falhas e mapear os campos de acordo com isso.
2023-08-17
Melhoria:
Occurred on
foi mapeado paraprincipal.labels
.- Quando
act
forModified
, definasecurity_result.action
comoALLOW_WITH_MODIFICATION
. status
foi mapeado paraprincipal.labels
.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.