Coletar registros do DLP do Forta Digital Guardian
Este documento explica como coletar registros de DLP do Forta Digital Guardian para as operações de segurança do Google 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 a limpeza e a normalização de dados e, em seguida, mapeia os campos extraídos para os atributos UDM correspondentes, 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.
- 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.
- Verifique se você tem acesso privilegiado ao DLP do Forta Digital Guardian.
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: 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 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 transferência 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 exportação de syslog do Forta Digital Guardian
- Faça login no Console de Gerenciamento do Digital Guardian.
- Acesse Espaço de trabalho > 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. Você também pode selecionar TCP como protocolo de transporte, dependendo da configuração do Bindplane.
No campo Servidor, insira o endereço IP do agente do Bindplane.
No campo Port, insira
514
. Você pode fornecer outra porta, dependendo da configuração do agente do Bindplane.Selecione um nível de gravidade na lista Severity Level.
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 os critérios.
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 . |
Destino: tipo de unidade | 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 em 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 for 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 pai | target.process.parent_process.file.md5 | Mapeado diretamente do campo de registro bruto Parent MD5 Hash após a conversão para letras 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 . |
Processar extensão de arquivo | 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 . |
Processar PID | principal.process.pid | Mapeado diretamente do campo de registro bruto Process PID após a conversão em 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 for 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 . |
O detalhe foi bloqueado | 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 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 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 | Defina como GENERIC_EVENT inicialmente. Mudanças 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 destino e de origem do arquivo existirem e Operation Type for File Copy . - FILE_MOVE : se os caminhos de destino e de origem do arquivo existirem e Operation Type for File Move . - FILE_UNCATEGORIZED : se o caminho do arquivo de destino, o caminho do processo/linha de comando existir e o Operation Type contiver File . - USER_LOGOUT : se o ID do usuário existe e Operation Type contém Logoff . - USER_LOGIN : se o ID do usuário existe e Operation Type contém Logon . - NETWORK_UNCATEGORIZED : se o caminho do processo/linha de comando, o ID do processo, a direção de 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 do processo/linha de comando existe. |
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 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 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 for 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 letras 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 em 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 for 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 letras 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 . |
Alterações
2023-06-02
- O mapeamento do campo "dg_recipients.uad_mr" foi alterado de "src.user.email_addresses" para "network.email.to".
2022-11-30
- Parser recém-criado.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.