Coletar registros do WAF do Barracuda

Compatível com:

Este documento explica como coletar registros do firewall de aplicativos da Web (WAF) da Barracuda usando o Bindplane. O analisador extrai campos de registros nos formatos JSON e Syslog, normaliza e mapeia para o modelo de dados unificado (UDM). Ele processa vários tipos de registros (tráfego, firewall da Web) e realiza transformações condicionais com base em valores de campo, incluindo resolução de endereço IP/nome do host, mapeamento de direcionalidade e normalização de gravidade.

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 WAF da Barracuda.

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

  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 root 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 ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. 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.
    2. Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  2. Edite o arquivo config.yaml da seguinte forma:

    receivers:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:54525"
    
    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: SYSLOG
                namespace: barracuda_waf
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                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 do cliente real.

  5. 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 o WAF da Barracuda

  1. Faça login no console do Barracuda WAF usando credenciais de administrador.
  2. Clique na guia Avançado > Exportar registros.
  3. Na seção Exportar registros, clique em Adicionar servidor de exportação de registros.
  4. Forneça os seguintes valores:
    • Nome: insira um nome para o encaminhador do Google SecOps.
    • Tipo de servidor de registros: selecione Syslog.
    • Endereço IP ou nome do host: insira o endereço IP Bindplane.
    • Porta: insira a porta Bindplane.
    • Tipo de conexão: selecione o tipo de conexão TCP. O TCP é recomendado. No entanto, também é possível usar protocolos UDP ou SSL.
    • Validar certificado do servidor: selecione Não.
    • Certificado do cliente: selecione Nenhum.
    • Carimbo de data/hora e nome do host do registro: selecione Sim.
    • Clique em Adicionar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
action security_result.action Se action for DENY, defina como BLOCK. Caso contrário, defina como ALLOW (especificamente para o tipo de registro WF). Também usado para eventos genéricos de firewall.
appProtocol network.application_protocol Se appProtocol corresponder a TLSv, defina como HTTPS. Caso contrário, use o valor de appProtocol.
attackDetails security_result.description Extraído do registro bruto para o tipo de registro WF.
attackType security_result.summary Parte de security_result.summary, combinada com ruleType.
bytesReceived network.received_bytes Convertido para número inteiro sem sinal e mapeado para o tipo de registro TR.
bytesSent network.sent_bytes Convertido para número inteiro sem sinal e mapeado para o tipo de registro TR.
hostName target.hostname Se hostName não for um endereço IP, use o valor dele. Caso contrário, ele será mesclado em target.ip.
httpMethod loginId principal.user.userid Mapeado para o tipo de registro TR quando não é igual a emptyToken.
logType metadata.product_event_type Se TR, defina metadata.product_event_type como Barracuda Access Log. Se WF, defina como Barracuda Web Firewall Log.
message metadata.description Usado quando desc não está vazio.
referrer network.http.referral_url Mapeado para o tipo de registro TR quando não é igual a emptyToken.
responseCode network.http.response_code Convertido para número inteiro e mapeado para o tipo de registro TR.
rule security_result.rule_name Mapeado para o tipo de registro WF.
ruleType security_result.summary Parte de security_result.summary, combinada com attackType.
sec_desc security_result.rule_name Usado para eventos genéricos de firewall.
server target.ip Mesclado com target.ip.
serv target.ip Mesclado com target.ip.
severity security_result.severity Para o tipo de registro WF: convertido para letras maiúsculas. Se EMERGENCY, ALER ou CRITICAL, defina security_result.severity como CRITICAL. Se ERROR, defina como HIGH. Se WARNING, defina como MEDIUM. Se NOTICE, defina como LOW. Caso contrário, defina como INFORMATIONAL.
src principal.ip Também usado para eventos genéricos de firewall e algumas atualizações de status.
srcPort principal.port Convertido em número inteiro.
target targetPort target.port Convertido em número inteiro.
time metadata.event_timestamp.seconds, metadata.event_timestamp.nanos, timestamp.seconds, timestamp.nanos Combinado com tz e analisado para criar o carimbo de data/hora do evento. Os segundos e nanos são extraídos e preenchidos nos respectivos campos.
url urlParams target.url Adicionado a url se não for igual a emptyToken para o tipo de registro TR.
userAgent userName target.user.userid, target.user.user_display_name Usado para eventos genéricos de firewall. Se não for igual a emptyToken para o tipo de registro TR, será mapeado para target.user.user_display_name. Fixado no código como Barracuda. Definido como NETWORK_HTTP se src e target estiverem presentes. Defina como STATUS_UPDATE se apenas src estiver presente. Defina como GENERIC_EVENT como padrão ou para outros cenários, como análise de CEF. Fixado no código como BARRACUDA_WAF.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.