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
,vi
ou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
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: '/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_labels
Substitua 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.json
para 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-agent
Para 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.