Coletar registros de DLP do Fortra Digital Guardian
Este documento explica como coletar registros de DLP do Fortra Digital Guardian no Google Security Operations usando um agente do Bindplane. O código do analisador transforma registros brutos formatados em JSON em um modelo de dados unificado (UDM). Primeiro, ele extrai campos do JSON bruto, realiza limpeza e normalização de dados e mapeia os campos extraídos para os atributos correspondentes da UDM, enriquecendo os dados com tipos de eventos específicos com base na atividade identificada.
Antes de começar
- Verifique se você tem uma instância do Google Security Operations.
- Use o Windows 2016 ou uma versão mais recente ou um host Linux com
systemd. - Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Verifique se você tem acesso privilegiado ao Fortra Digital Guardian DLP.
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
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 este 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: '/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: DIGITALGUARDIAN_DLP raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labelsSubstitua 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 a exportação do Syslog do Fortra Digital Guardian
- Faça login no Digital Guardian Management Console (em inglês).
- Acesse Workspace > Exportação de dados > Criar exportação.
- Selecione Alertas ou Eventos como a origem de dados na lista Origens de dados.
- Selecione Syslog como o tipo de exportação.
Na lista de tipos, selecione UDP. Também é possível selecionar TCP como o protocolo de transporte, dependendo da configuração do Bindplane.
No campo Servidor, insira o endereço IP do agente do Bindplane.
No campo Porta, insira
514. Você pode fornecer outra porta, dependendo da configuração do agente do Bindplane.Selecione um nível de gravidade na lista Nível de gravidade.
Marque a caixa de seleção Está ativo.
Clique em Próxima.
Na lista de campos disponíveis, adicione todos os campos de Alerta e Evento para a exportação de dados.
Selecione Critérios para os campos na exportação de dados.
Clique em Próxima.
Selecione um grupo para o critério.
Clique em Próxima.
Clique em Testar consulta.
Clique em Próxima.
Clique em Salvar.
Tabela de mapeamento do UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
| Versão do agente | observer.platform_version | Mapeado diretamente do campo de registro bruto Agent Version. |
| Aplicativo | principal.process.command_line | Mapeado diretamente do campo de registro bruto Application, se não estiver vazio. |
| Linha de comando | target.process.command_line | Mapeado diretamente do campo de registro bruto Command Line. |
| Nome da empresa | principal.user.company_name | Mapeado diretamente do campo de registro bruto Company Name. |
| Nome do computador | principal.hostname | Mapeado diretamente do campo de registro bruto Computer Name. |
| Nome do host DNS | target.asset.hostname | Mapeado diretamente do campo de registro bruto DNS Hostname. |
| Tipo de unidade de destino | about.labels.value | Mapeado diretamente do campo de registro bruto Destination Drive Type. A chave correspondente é definida como Destination Drive Type. |
| Extensão do arquivo de destino | target.file.mime_type | Mapeado diretamente do campo de registro bruto Destination File Extension se não for no extension ou [no extension]. |
| Caminho do arquivo de destino | target.file.full_path | Mapeado diretamente do campo de registro bruto Destination File Path. |
| GUID do dispositivo | src.resource.id | Mapeado do campo de registro bruto Device GUID com o prefixo GUID:. |
| Remetente do e-mail | network.email.from | Mapeado diretamente do campo de registro bruto Email Sender, se não estiver vazio. |
| Assunto do e-mail | network.email.subject | Mapeado diretamente do campo de registro bruto Email Subject se Email Sender não estiver vazio. |
| Nome de exibição do evento | target.resource.type | Mapeado diretamente do campo de registro bruto Event Display Name. |
| Horário do evento | metadata.event_timestamp.seconds | Convertido para carimbo de data/hora do campo de registro bruto Event Time usando os formatos yyyy-MM-dd HH:mm:ss A e TIMESTAMP_ISO8601. |
| Descrição do arquivo | metadata.description | Mapeado diretamente do campo de registro bruto File Description. |
| Tamanho do arquivo | about.labels.value | Mapeado diretamente do campo de registro bruto File Size. A chave correspondente é definida como File Size. |
| Versão do arquivo | about.labels.value | Mapeado diretamente do campo de registro bruto File Version. A chave correspondente é definida como File Version. |
| Endereço IP | principal.ip | Mapeado diretamente do campo de registro bruto IP Address se Source IP Address estiver vazio. |
| Porta local | principal.port | Mapeado diretamente do campo de registro bruto Local Port se não estiver vazio e convertido em número inteiro. |
| Endereço MAC | target.mac | Mapeado diretamente do campo de registro bruto MAC Address, se não estiver vazio. |
| Código da máquina | principal.asset.asset_id | Mapeado do campo de registro bruto Machine ID com o prefixo MachineId:. |
| Tipo de máquina | principal.asset.category | Mapeado diretamente do campo de registro bruto Machine Type. |
| Hash MD5 | target.process.file.md5 | Mapeado diretamente do campo de registro bruto MD5 Hash após a conversão para letras minúsculas. |
| Sentido da rede | network.direction | Mapeado do campo de registro bruto Network Direction. Se Inbound, defina como INBOUND. Se Outbound, defina como OUTBOUND. |
| Tipo de operação | security_result.action_details | Mapeado diretamente do campo de registro bruto Operation Type. |
| App principal | principal.process.parent_process.command_line | Mapeado diretamente do campo de registro bruto Parent Application, se não estiver vazio. |
| Hash MD5 do elemento pai | target.process.parent_process.file.md5 | Mapeado diretamente do campo de registro bruto Parent MD5 Hash após a conversão para minúsculas, se corresponder a um padrão de string hexadecimal. |
| Domínio do processo | target.administrative_domain | Mapeado diretamente do campo de registro bruto Process Domain. |
| Extensão do arquivo de processo | target.process.file.mime_type | Mapeado diretamente do campo de registro bruto Process File Extension se não for no extension ou [no extension]. |
| Caminho do processo | target.process.file.full_path | Mapeado diretamente do campo de registro bruto Process Path. |
| PID do processo | principal.process.pid | Mapeado diretamente do campo de registro bruto Process PID após a conversão para string. |
| Nome do produto | metadata.product_name | Mapeado diretamente do campo de registro bruto Product Name. |
| Versão do produto | metadata.product_version | Mapeado diretamente do campo de registro bruto Product Version. |
| Protocolo | network.application_protocol | Se HTTP ou HTTPS, defina como HTTPS. |
| Nome da impressora | src.resource.name | Mapeado diretamente do campo de registro bruto Printer Name. |
| Porta remota | target.port | Mapeado diretamente do campo de registro bruto Remote Port se não estiver vazio e convertido em número inteiro. |
| Hash SHA1 | target.process.file.sha1 | Mapeado diretamente do campo de registro bruto SHA1 Hash após a conversão para letras minúsculas. |
| Hash SHA256 | target.process.file.sha256 | Mapeado diretamente do campo de registro bruto SHA256 Hash após a conversão para letras minúsculas. |
| Emissor da assinatura | network.tls.server.certificate.issuer | Mapeado diretamente do campo de registro bruto Signature Issuer. |
| Assunto da assinatura | network.tls.server.certificate.subject | Mapeado diretamente do campo de registro bruto Signature Subject. |
| Extensão do arquivo de origem | src.file.mime_type | Mapeado diretamente do campo de registro bruto Source File Extension se não for no extension ou [no extension]. |
| Caminho do arquivo de origem | src.file.full_path | Mapeado diretamente do campo de registro bruto Source File Path. |
| Endereço IP de origem | principal.ip | Mapeado diretamente do campo de registro bruto Source IP Address, se não estiver vazio. |
| Tamanho total | about.labels.value | Mapeado diretamente do campo de registro bruto Total Size. A chave correspondente é definida como Total Size. |
| Caminho do URL | target.url | Mapeado diretamente do campo de registro bruto URL Path. |
| ID exclusivo | metadata.product_log_id | Mapeado diretamente do campo de registro bruto Unique ID. |
| Usuário | principal.user.userid | Mapeado diretamente do campo de registro bruto User. |
| Foi bloqueado detalhadamente | security_result.action | Se Yes. defina como BLOCK. Se No, defina como ALLOW. |
| dg_dst_dev.dev_prdname | target.asset.hardware.model | Mapeado diretamente do campo de registro bruto dg_dst_dev.dev_prdname. |
| dg_dst_dev.dev_sernum | target.asset.hardware.serial_number | Mapeado diretamente do campo de registro bruto dg_dst_dev.dev_sernum. |
| dg_recipients.uad_mr | network.email.to | Mapeado diretamente do campo de registro bruto dg_recipients.uad_mr se corresponder a um padrão de endereço de e-mail. |
| dg_src_dev.dev_prdname | principal.asset.hardware.model | Mapeado diretamente do campo de registro bruto dg_src_dev.dev_prdname. |
| dg_src_dev.dev_sernum | principal.asset.hardware.serial_number | Mapeado diretamente do campo de registro bruto dg_src_dev.dev_sernum. |
| metadata.event_type | metadata.event_type | Definido como GENERIC_EVENT inicialmente. Mudou com base em condições específicas: - NETWORK_HTTP: se o nome do host, o protocolo HTTP/HTTPS e o endereço MAC estiverem presentes. - FILE_COPY: se os caminhos de arquivo de destino e de origem existirem e Operation Type for File Copy. - FILE_MOVE: se os caminhos de arquivo de destino e de origem existirem e Operation Type for File Move. - FILE_UNCATEGORIZED: se o caminho do arquivo de destino, o caminho/linha de comando do processo existirem e Operation Type contiver File. - USER_LOGOUT: se o ID do usuário existir e Operation Type contiver Logoff. - USER_LOGIN: se o ID do usuário existir e Operation Type contiver Logon. - NETWORK_UNCATEGORIZED: se o caminho/linha de comando do processo, o ID do processo, a direção da rede de saída e o endereço MAC estiverem presentes. - SCAN_PROCESS: se o caminho/linha de comando do processo e o ID do processo estiverem presentes. - PROCESS_UNCATEGORIZED: se o caminho/linha de comando do processo existir. |
| metadata.log_type | metadata.log_type | Defina como DIGITALGUARDIAN_DLP. |
| metadata.product_log_id | metadata.product_log_id | Mapeado diretamente do campo de registro bruto Unique ID. |
| metadata.product_name | metadata.product_name | Mapeado diretamente do campo de registro bruto Product Name. |
| metadata.product_version | metadata.product_version | Mapeado diretamente do campo de registro bruto Product Version. |
| metadata.vendor_name | metadata.vendor_name | Defina como DigitalGuardian. |
| network.application_protocol | network.application_protocol | Defina como HTTPS se Protocol for HTTP ou HTTPS. |
| network.direction | network.direction | Mapeado do campo de registro bruto Network Direction. Se Inbound, defina como INBOUND. Se Outbound, defina como OUTBOUND. |
| network.email.from | network.email.from | Mapeado diretamente do campo de registro bruto Email Sender, se não estiver vazio. |
| network.email.subject | network.email.subject | Mapeado diretamente do campo de registro bruto Email Subject se Email Sender não estiver vazio. |
| network.email.to | network.email.to | Mapeado diretamente do campo de registro bruto dg_recipients.uad_mr se corresponder a um padrão de endereço de e-mail. |
| network.tls.server.certificate.issuer | network.tls.server.certificate.issuer | Mapeado diretamente do campo de registro bruto Signature Issuer. |
| network.tls.server.certificate.subject | network.tls.server.certificate.subject | Mapeado diretamente do campo de registro bruto Signature Subject. |
| observer.platform_version | observer.platform_version | Mapeado diretamente do campo de registro bruto Agent Version. |
| principal.asset.asset_id | principal.asset.asset_id | Mapeado do campo de registro bruto Machine ID com o prefixo MachineId:. |
| principal.asset.category | principal.asset.category | Mapeado diretamente do campo de registro bruto Machine Type. |
| principal.asset.hardware.model | principal.asset.hardware.model | Mapeado diretamente do campo de registro bruto dg_src_dev.dev_prdname. |
| principal.asset.hardware.serial_number | principal.asset.hardware.serial_number | Mapeado diretamente do campo de registro bruto dg_src_dev.dev_sernum. |
| principal.hostname | principal.hostname | Mapeado diretamente do campo de registro bruto Computer Name. |
| principal.ip | principal.ip | Mapeado diretamente do campo de registro bruto Source IP Address, se não estiver vazio. Caso contrário, será mapeado de IP Address se não estiver vazio. |
| principal.port | principal.port | Mapeado diretamente do campo de registro bruto Local Port se não estiver vazio e convertido em número inteiro. |
| principal.process.command_line | principal.process.command_line | Mapeado diretamente do campo de registro bruto Application, se não estiver vazio. |
| principal.process.parent_process.command_line | principal.process.parent_process.command_line | Mapeado diretamente do campo de registro bruto Parent Application, se não estiver vazio. |
| principal.process.parent_process.file.md5 | principal.process.parent_process.file.md5 | Mapeado diretamente do campo de registro bruto Parent MD5 Hash após a conversão para minúsculas, se corresponder a um padrão de string hexadecimal. |
| principal.process.pid | principal.process.pid | Mapeado diretamente do campo de registro bruto Process PID após a conversão para string. |
| principal.user.company_name | principal.user.company_name | Mapeado diretamente do campo de registro bruto Company Name. |
| principal.user.userid | principal.user.userid | Mapeado diretamente do campo de registro bruto User. |
| security_result.action | security_result.action | Se Was Detail Blocked for Yes, defina como BLOCK. Se Was Detail Blocked for No, defina como ALLOW. |
| security_result.action_details | security_result.action_details | Mapeado diretamente do campo de registro bruto Operation Type. |
| src.file.full_path | src.file.full_path | Mapeado diretamente do campo de registro bruto Source File Path. |
| src.file.mime_type | src.file.mime_type | Mapeado diretamente do campo de registro bruto Source File Extension se não for no extension ou [no extension]. |
| src.resource.id | src.resource.id | Mapeado do campo de registro bruto Device GUID com o prefixo GUID:. |
| src.resource.name | src.resource.name | Mapeado diretamente do campo de registro bruto Printer Name. |
| target.administrative_domain | target.administrative_domain | Mapeado diretamente do campo de registro bruto Process Domain. |
| target.asset.hardware.model | target.asset.hardware.model | Mapeado diretamente do campo de registro bruto dg_dst_dev.dev_prdname. |
| target.asset.hardware.serial_number | target.asset.hardware.serial_number | Mapeado diretamente do campo de registro bruto dg_dst_dev.dev_sernum. |
| target.asset.hostname | target.asset.hostname | Mapeado diretamente do campo de registro bruto DNS Hostname. |
| target.asset.product_object_id | target.asset.product_object_id | Mapeado diretamente do campo de registro bruto Adapter Name. |
| target.file.full_path | target.file.full_path | Mapeado diretamente do campo de registro bruto Destination File Path. |
| target.file.mime_type | target.file.mime_type | Mapeado diretamente do campo de registro bruto Destination File Extension se não for no extension ou [no extension]. |
| target.mac | target.mac | Mapeado diretamente do campo de registro bruto MAC Address, se não estiver vazio. |
| target.port | target.port | Mapeado diretamente do campo de registro bruto Remote Port se não estiver vazio e convertido em número inteiro. |
| target.process.command_line | target.process.command_line | Mapeado diretamente do campo de registro bruto Command Line. |
| target.process.file.full_path | target.process.file.full_path | Mapeado diretamente do campo de registro bruto Process Path. |
| target.process.file.md5 | target.process.file.md5 | Mapeado diretamente do campo de registro bruto MD5 Hash após a conversão para letras minúsculas. |
| target.process.file.mime_type | target.process.file.mime_type | Mapeado diretamente do campo de registro bruto Process File Extension se não for no extension ou [no extension]. |
| target.process.file.sha1 | target.process.file.sha1 | Mapeado diretamente do campo de registro bruto SHA1 Hash após a conversão para letras minúsculas. |
| target.process.file.sha256 | target.process.file.sha256 | Mapeado diretamente do campo de registro bruto SHA256 Hash após a conversão para letras minúsculas. |
| target.process.parent_process.command_line | target.process.parent_process.command_line | Mapeado diretamente do campo de registro bruto Parent Application, se não estiver vazio. |
| target.process.parent_process.file.md5 | target.process.parent_process.file.md5 | Mapeado diretamente do campo de registro bruto Parent MD5 Hash após a conversão para minúsculas, se corresponder a um padrão de string hexadecimal. |
| target.resource.type | target.resource.type | Mapeado diretamente do campo de registro bruto Event Display Name. |
| target.url | target.url | Mapeado diretamente do campo de registro bruto URL Path. |
| extensions.auth.type | extensions.auth.type | Defina como AUTHTYPE_UNSPECIFIED se Operation Type for User Logoff ou User Logon. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.