Coletar registros da 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 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 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 de Syslog do Fortra Digital Guardian
- Faça login no Digital Guardian Management Console.
- Acesse Workspace > Exportação de dados > Criar exportação.
- Selecione Alertas ou Eventos como a fonte de dados na lista Fontes 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 Agent Version do registro bruto. |
| 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 Command Line do registro bruto. |
| Nome da empresa | principal.user.company_name | Mapeado diretamente do campo Company Name do registro bruto. |
| Nome do computador | principal.hostname | Mapeado diretamente do campo Computer Name do registro bruto. |
| Nome do host DNS | target.asset.hostname | Mapeado diretamente do campo DNS Hostname do registro bruto. |
| Tipo de unidade de destino | about.labels.value | Mapeado diretamente do campo Destination Drive Type do registro bruto. 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 Destination File Path do registro bruto. |
| 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 Event Display Name do registro bruto. |
| 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 File Description do registro bruto. |
| Tamanho do arquivo | about.labels.value | Mapeado diretamente do campo File Size do registro bruto. A chave correspondente é definida como File Size. |
| Versão do arquivo | about.labels.value | Mapeado diretamente do campo File Version do registro bruto. 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 Machine Type do registro bruto. |
| 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 Operation Type do registro bruto. |
| 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 Process Domain do registro bruto. |
| 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 Process Path do registro bruto. |
| 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 Product Name do registro bruto. |
| Versão do produto | metadata.product_version | Mapeado diretamente do campo Product Version do registro bruto. |
| Protocolo | network.application_protocol | Se HTTP ou HTTPS, defina como HTTPS. |
| Nome da impressora | src.resource.name | Mapeado diretamente do campo Printer Name do registro bruto. |
| 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 Signature Issuer do registro bruto. |
| Assunto da assinatura | network.tls.server.certificate.subject | Mapeado diretamente do campo Signature Subject do registro bruto. |
| 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 Source File Path do registro bruto. |
| Endereço IP da 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 Total Size do registro bruto. A chave correspondente é definida como Total Size. |
| Caminho do URL | target.url | Mapeado diretamente do campo URL Path do registro bruto. |
| ID exclusivo | metadata.product_log_id | Mapeado diretamente do campo Unique ID do registro bruto. |
| Usuário | principal.user.userid | Mapeado diretamente do campo User do registro bruto. |
| Foi bloqueado em detalhes | 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 dg_dst_dev.dev_prdname do registro bruto. |
| dg_dst_dev.dev_sernum | target.asset.hardware.serial_number | Mapeado diretamente do campo dg_dst_dev.dev_sernum do registro bruto. |
| dg_recipients.uad_mr | network.email.to | Mapeado diretamente do campo de registro bruto dg_recipients.uad_mr se ele corresponder a um padrão de endereço de e-mail. |
| dg_src_dev.dev_prdname | principal.asset.hardware.model | Mapeado diretamente do campo dg_src_dev.dev_prdname do registro bruto. |
| dg_src_dev.dev_sernum | principal.asset.hardware.serial_number | Mapeado diretamente do campo dg_src_dev.dev_sernum do registro bruto. |
| 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 Unique ID do registro bruto. |
| metadata.product_name | metadata.product_name | Mapeado diretamente do campo Product Name do registro bruto. |
| metadata.product_version | metadata.product_version | Mapeado diretamente do campo Product Version do registro bruto. |
| 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 ele 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 Signature Issuer do registro bruto. |
| network.tls.server.certificate.subject | network.tls.server.certificate.subject | Mapeado diretamente do campo Signature Subject do registro bruto. |
| observer.platform_version | observer.platform_version | Mapeado diretamente do campo Agent Version do registro bruto. |
| 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 Machine Type do registro bruto. |
| principal.asset.hardware.model | principal.asset.hardware.model | Mapeado diretamente do campo dg_src_dev.dev_prdname do registro bruto. |
| principal.asset.hardware.serial_number | principal.asset.hardware.serial_number | Mapeado diretamente do campo dg_src_dev.dev_sernum do registro bruto. |
| principal.hostname | principal.hostname | Mapeado diretamente do campo Computer Name do registro bruto. |
| 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 Company Name do registro bruto. |
| principal.user.userid | principal.user.userid | Mapeado diretamente do campo User do registro bruto. |
| 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 Operation Type do registro bruto. |
| src.file.full_path | src.file.full_path | Mapeado diretamente do campo Source File Path do registro bruto. |
| 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 Printer Name do registro bruto. |
| target.administrative_domain | target.administrative_domain | Mapeado diretamente do campo Process Domain do registro bruto. |
| target.asset.hardware.model | target.asset.hardware.model | Mapeado diretamente do campo dg_dst_dev.dev_prdname do registro bruto. |
| target.asset.hardware.serial_number | target.asset.hardware.serial_number | Mapeado diretamente do campo dg_dst_dev.dev_sernum do registro bruto. |
| target.asset.hostname | target.asset.hostname | Mapeado diretamente do campo DNS Hostname do registro bruto. |
| target.asset.product_object_id | target.asset.product_object_id | Mapeado diretamente do campo Adapter Name do registro bruto. |
| target.file.full_path | target.file.full_path | Mapeado diretamente do campo Destination File Path do registro bruto. |
| 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 Command Line do registro bruto. |
| target.process.file.full_path | target.process.file.full_path | Mapeado diretamente do campo Process Path do registro bruto. |
| 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 Event Display Name do registro bruto. |
| target.url | target.url | Mapeado diretamente do campo URL Path do registro bruto. |
| 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.