Pular para conteúdo

Fluentd

Você pode configurar o Wallarm para enviar notificações de eventos detectados para o Fluentd, criando uma integração apropriada no Wallarm Console.

Formato de notificação

O Wallarm envia notificações para o Fluentd via webhooks no formato JSON. O conjunto de objetos JSON depende do evento que o Wallarm notifica.

Exemplo de notificação de um novo hit detectado:

[
    {
        "summary": "[Wallarm] Novo hit detectado",
        "details": {
        "client_name": "TestCompany",
        "cloud": "EU",
        "notification_type": "new_hits",
        "hit": {
            "domain": "www.example.com",
            "heur_distance": 0.01111,
            "method": "POST",
            "parameter": "ALGUM_valor",
            "path": "/news/some_path",
            "payloads": [
                "say ni"
            ],
            "point": [
                "post"
            ],
            "probability": 0.01,
            "remote_country": "PL",
            "remote_port": 0,
            "remote_addr4": "8.8.8.8",
            "remote_addr6": "",
            "tor": "none",
            "request_time": 1603834606,
            "create_time": 1603834608,
            "response_len": 14,
            "response_status": 200,
            "response_time": 5,
            "stamps": [
                1111
            ],
            "regex": [],
            "stamps_hash": -22222,
            "regex_hash": -33333,
            "type": "sqli",
            "block_status": "monitored",
            "id": [
                "hits_production_999_202010_v_1",
                "c2dd33831a13be0d_AC9"
            ],
            "object_type": "hit",
            "anomaly": 0
            }
        }
    }
]

Requisitos

A configuração do Fluentd deve atender aos seguintes requisitos:

  • Aceitar as solicitações POST ou PUT

  • Aceitar solicitações HTTPS

  • Ter URL pública

Exemplo de configuração Fluentd:

<source>
  @type http # plugin de entrada para tráfego HTTP e HTTPS
  port 9880 # porta para solicitações recebidas 
  <transport tls> # configuração para gerenciamento de conexões
    cert_path /etc/ssl/certs/fluentd.crt
    private_key_path /etc/ssl/private/fluentd.key
  </transport>
</source>
<match **>
  @type copy
  <store>
     @type stdout # plugin de saída para imprimir logs Fluentd na linha de comando
     output_type json # formato de logs impressos na linha de comando
  </store>
</match>

Você encontrará mais detalhes na documentação oficial do Fluentd.

Configuração da integração

  1. Prossiga para a configuração de integração Fluentd no Console Wallarm → Integrações → Fluentd.

  2. Insira o nome da integração.

  3. Especifique a URL Fluentd de destino (URL do Webhook).

  4. Se necessário, configure as configurações avançadas:

    • Método de solicitação: POST ou PUT. Por padrão, solicitações POST são enviadas.
    • Cabeçalho da solicitação e seu valor se o servidor requer um cabeçalho não padrão para executar a solicitação. O número de cabeçalhos não é limitado.
    • Certificado CA: certificado da CA que assinou um certificado do servidor. Se a CA é de confiança pública, este campo é opcional. Se um certificado do servidor é autoassinado, este campo é obrigatório e deve conter um certificado de sua própria CA que assinou um certificado do servidor.
    • Verificar certificado TLS: esta configuração permite desativar a verificação do certificado do servidor especificado. Por padrão, a Wallarm verifica se um certificado do servidor é assinado por uma CA de confiança pública. Não recomendamos a desativação da verificação de certificados de servidor de produção. Se o seu servidor usa um certificado TLS autoassinado, você pode adicionar um certificado CA autoassinado para permitir o envio de solicitações a este servidor.
    • Tempo limite da solicitação, em segundos: se o servidor não responder à solicitação dentro do tempo especificado, a solicitação falha. Por padrão: 15 segundos.
    • Tempo limite da conexão, em segundos: se a conexão com o servidor não puder ser estabelecida durante o tempo especificado, a solicitação falha. Por padrão: 20 segundos.
  5. Escolha tipos de eventos para acionar notificações.

    Integração Fluentd

    Detalhes sobre eventos disponíveis:

    • Hits detectados, com exceção de:

    • Relacionados ao sistema:

      • Mudanças de usuário (novo criado, excluído, mudança de função)
      • Mudanças de integração (desativada, excluída)
      • Mudanças de aplicação (nova criada, excluída, mudança de nome)
    • Vulnerabilidades detectadas, todas por padrão ou apenas para o(s) nível(is) de risco selecionado(s) - alto, médio ou baixo.
    • Regras e gatilhos alterados (criação, atualização ou exclusão da regra ou gatilho)
    • Escopo (ativos expostos) alterado: atualizações em hosts, serviços e domínios
    • De hora em hora, você pode receber uma notificação com o número de solicitações processadas durante a hora anterior
  6. Clique em Testar integração para verificar a correção da configuração, a disponibilidade do Wallarm Cloud e o formato de notificação.

    Log de teste do Fluentd:

    [
        {
            summary:"[Mensagem de teste] [Teste de parceiro(US)] Nova vulnerabilidade detectada",
            description:"Tipo de notificação: vuln
    
                        Uma nova vulnerabilidade foi detectada em seu sistema.
    
                        ID: 
                        Título: Teste
                        Domínio: example.com
                        Caminho: 
                        Método: 
                        Descoberto por: 
                        Parâmetro: 
                        Tipo: Info
                        Ameaça: Média
    
                        Mais detalhes: https://us1.my.wallarm.com/object/555
    
                        Cliente: TestCompany
                        Nuvem: US
                        ",
            details:{
                client_name:"TestCompany",
                cloud:"US",
                notification_type:"vuln",
                vuln_link:"https://us1.my.wallarm.com/object/555",
                vuln:{
                    domain:"example.com",
                    id:null,
                    method:null,
                    parameter:null,
                    path:null,
                    title:"Teste",
                    discovered_by:null,
                    threat:"Medium",
                    type:"Info"
                }
            }
        }
    ]
    
  7. Clique em Adicionar integração.

Configuração de alertas adicionais

Além das notificações que você já configurou por meio do cartão de integração, os gatilhos Wallarm permitem que você selecione eventos adicionais para notificações:

Para detalhar a condição, você pode adicionar um ou mais filtros. Assim que a condição e os filtros são definidos, selecione a integração através da qual o alerta selecionado deve ser enviado. Você pode selecionar várias integrações simultaneamente.

Escolhendo uma integração

Usando o Fluentd como um coletor de dados intermediário

O esquema de registro mais comum em sistemas complexos consiste nos seguintes componentes:

  • Coletor de dados: aceita logs de várias fontes e encaminha os logs para o sistema SIEM

  • Sistema SIEM ou sistemas de gerenciamento de logs: usados para analisar logs e monitorar o status do sistema

Por exemplo:

Fluxo de Webhook

Para registrar eventos do Wallarm usando este esquema:

  1. Configure o coletor de dados para ler os webhooks recebidos e encaminhar logs para o próximo sistema. O Wallarm envia eventos para coletores de dados via webhooks.

  2. Configure um sistema SIEM para obter e ler logs do coletor de dados.

  3. Configure o Wallarm para enviar logs para o coletor de dados.

    O Wallarm pode enviar logs para qualquer coletor de dados via webhooks.

    Para integrar o Wallarm com o Fluentd ou Logstash, você pode usar os cartões de integração correspondentes na interface do usuário do Wallarm Console.

    Para integrar o Wallarm com outros coletores de dados, você pode usar o cartão de integração webhook na interface do usuário do Wallarm Console.

Nós descrevemos alguns exemplos de como configurar a integração com coletores de dados populares que encaminham logs para os sistemas SIEM:

Desabilitando e excluindo uma integração

Você pode excluir ou desativar temporariamente a integração. Embora a exclusão interrompa o envio de notificações e exclua completamente todas as configurações, a desativação apenas interrompe o envio de notificações que você pode reativar a qualquer momento com as mesmas configurações.

Se para a integração os eventos Relacionados ao sistema forem selecionados para disparar notificações, a Wallarm notificará sobre ambas as ações.

Indisponibilidade do sistema e parâmetros de integração incorretos

Notificações ao sistema são enviadas por meio de solicitações. Se o sistema estiver indisponível ou os parâmetros de integração estiverem configurados incorretamente, o código de erro é retornado na resposta à solicitação.

Se o sistema responder à solicitação de Wallarm com qualquer código diferente de 2xx, Wallarm reenvia a solicitação com o intervalo até que o código 2xx seja recebido:

  • Os intervalos do primeiro ciclo: 1, 3, 5, 10, 10 segundos

  • Os intervalos do segundo ciclo: 0, 1, 3, 5, 30 segundos

  • Os intervalos do terceiro ciclo: 1, 1, 3, 5, 10, 30 minutos

Se a porcentagem de solicitações mal sucedidas atingir 60% em 12 horas, a integração é automaticamente desabilitada. Se você receber notificações do sistema, você receberá uma mensagem sobre a integração ser automaticamente desabilitada.