Coletar registros do DLP do Forta Digital Guardian

Compatível com:

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

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. 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

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. 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

Configurar o agente do Bindplane para processar o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. 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.
    2. Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Notepad).
  2. 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
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID real do cliente.

  5. 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

  1. Faça login no Console de Gerenciamento do Digital Guardian.
  2. Acesse Espaço de trabalho > Exportação de dados > Criar exportação.
  3. Selecione Alertas ou Eventos como a origem de dados na lista Origens de dados.
  4. Selecione Syslog como o tipo de exportação.
  5. Na Lista de tipos, selecione UDP. Você também pode selecionar TCP como protocolo de transporte, dependendo da configuração do Bindplane.

  6. No campo Servidor, insira o endereço IP do agente do Bindplane.

  7. No campo Port, insira 514. Você pode fornecer outra porta, dependendo da configuração do agente do Bindplane.

  8. Selecione um nível de gravidade na lista Severity Level.

  9. Marque a caixa de seleção Está ativo.

  10. Clique em Próxima.

  11. Na lista de campos disponíveis, adicione Todos os campos de alerta e evento para a exportação de dados.

  12. Selecione Critérios para os campos na exportação de dados.

  13. Clique em Próxima.

  14. Selecione um grupo para os critérios.

  15. Clique em Próxima.

  16. Clique em Testar consulta.

  17. Clique em Próxima.

  18. 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.