Recolha registos da Symantec DLP
Este documento explica como recolher registos de DLP da Symantec através do Bindplane. O código do analisador tenta primeiro analisar os dados de registo do Symantec DLP recebidos como XML. Se a análise XML falhar, assume um formato SYSLOG + KV (CEF) e usa uma combinação de filtros grok e kv para extrair pares de chave/valor e mapeá-los para o modelo de dados unificado (UDM).
Antes de começar
- Certifique-se de que tem uma instância do Google Security Operations.
- Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com
systemd. - Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
- Certifique-se de que tem acesso privilegiado ao Symantec DLP.
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
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 este 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: 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_labelsSubstitua 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 Symantec DLP
- Inicie sessão na consola de administração do servidor Symantec.
- Selecione Gerir > Políticas > Regras de resposta.
- Selecione Configurar regra de resposta e introduza um nome para a regra.
Forneça os seguintes detalhes:
- Ações: selecione Registar num servidor syslog.
- Anfitrião: introduza o
Bindplaneendereço IP. - Porta: introduza o
Bindplanenúmero da porta. Mensagem: introduza 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 da UDM
| Campo de registo | Mapeamento do UDM | Lógica |
|---|---|---|
| agir | 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 uma etiqueta com a chave category1 e o valor de category1. |
| category2 | security_result.detection_fields | Crie uma etiqueta com a chave category2 e o valor de category2. |
| category3 | security_result.detection_fields | Crie uma etiqueta 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 email válido. |
| descrição | 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 uma etiqueta 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 uma etiqueta com a chave Incident ID e o valor de DLP_EP_Incident_ID. |
| domínio | principal.administrative_domain | Mapeado diretamente. |
| dst | target.ip, target.asset.ip | Mapeado diretamente se for um endereço IP válido. |
| endpoint_machine | target.ip, 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 gestor com user_display_name a partir 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. |
| nome de ficheiro | target.file.full_path, src.file.full_path | Mapeado diretamente para target.file.full_path. Se has_principal for verdadeiro, também mapeie para src.file.full_path e defina event_type como FILE_COPY. |
| anfitrião | src.hostname, principal.hostname, principal.asset.hostname | Se cef_data contiver CEF, mapeie para todos 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 uma etiqueta com a chave Incident ID e o valor de incident_id. |
| localização | principal.resource.attribute.labels | Crie uma etiqueta com a chave Location e o valor de location. |
| match_count | security_result.detection_fields | Crie uma etiqueta com a chave Match Count e o valor de match_count. |
| monitor_name | additional.fields | Crie uma etiqueta 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 uma etiqueta com a chave Occurred On e o valor de occurred_on para principal.labels e additional.fields. |
| policy_name | sec_result.detection_fields | Crie uma etiqueta 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 maiúsculas. Se policy_severity for INFO, mapeie-o como INFORMATIONAL. Se policy_severity não for um dos valores 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 nem Endpoint, mapeie-o para network.application_protocol depois de o analisar através do ficheiro 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 email 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 uma etiqueta com a chave recipients e o valor de recipients. |
| reported_on | additional.fields | Crie uma etiqueta com a chave Reported On e o valor de reported_on. |
| regras | security_result.detection_fields | Crie uma etiqueta com a chave Rules e o valor de rules. |
| remetente | network.email.from, target.resource.attribute.labels | Se sender for um endereço de email válido, mapeie-o para network.email.from. Além disso, crie uma etiqueta com a chave sender e o valor de sender. |
| servidor | target.application | Mapeado diretamente. |
| Gravidade | security_result.severity | Consulte policy_severity para ver a lógica de mapeamento. |
| src | principal.ip, principal.asset.ip | Mapeado diretamente se for um endereço IP válido. |
| estado | principal.labels, additional.fields | Crie uma etiqueta com a chave Status e o valor de status para principal.labels e additional.fields. |
| assunto | target.resource.attribute.labels, network.email.subject | Crie uma etiqueta 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 uma etiqueta com a chave Target Type e o valor de target_type. |
| timestamp | metadata.event_timestamp | Mapeado diretamente após a análise com o filtro date. |
| url | target.url | Mapeado diretamente. |
| utilizador | target.user.userid | Mapeado diretamente. |
| user_id | principal.user.userid | Mapeado diretamente. |
| nome de utilizador | principal.user.userid | Mapeado diretamente. |
| N/A | metadata.product_name | Definido como SYMANTEC_DLP. |
| N/A | metadata.vendor_name | Definido 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 | Definido como SYMANTEC_DLP. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.