Pular para conteúdo

Splunk Enterprise via Fluentd

Estas instruções fornecem a você um exemplo de integração do Wallarm com o coletor de dados Fluentd para encaminhar eventos adicionais para o sistema SIEM Splunk.

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

Fluxo do Webhook

Recursos Utilizados

Endereços IP da Wallarm Cloud

Para fornecer acesso ao Wallarm Cloud para seu sistema, você pode precisar de uma lista de seus endereços IP públicos:

35.235.66.155
34.102.90.100
34.94.156.115
35.235.115.105
34.94.85.217
34.94.51.234
34.102.59.122
34.94.238.72
34.141.230.156
34.91.138.113
34.90.114.134
35.204.127.78

Como os links para os serviços Splunk Enterprise e Fluentd são citados como exemplos, eles não respondem.

Configuração do Splunk Enterprise

Os registros do Fluentd são enviados para o Controlador de Eventos HTTP do Splunk com o nome Registros do Fluentd do Wallarm e outras configurações padrão:

Configuração do Controlador de Eventos HTTP

Para acessar o Controlador de Eventos HTTP, o token gerado f44b3179-91aa-44f5-a6f7-202265e10475 será usado.

Uma descrição mais detalhada da configuração do Controlador de Eventos HTTP do Splunk está disponível na documentação oficial do Splunk.

Configuração do Fluentd

Como o Wallarm envia logs para o coletor de dados intermediário Fluentd via webhooks, 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

  • Encaminhar logs para o Splunk Enterprise, este exemplo usa o plugin splunk_hec para encaminhar logs

O Fluentd é configurado no arquivo td-agent.conf:

  • O processamento do webhook de entrada é configurado na diretiva source:

    • O tráfego é enviado para a porta 9880
    • O Fluentd é configurado para aceitar apenas conexões HTTPS
    • O certificado TLS do Fluentd assinado por uma CA confiável publicamente está localizado dentro do arquivo /etc/ssl/certs/fluentd.crt
    • A chave privada para o certificado TLS está localizada dentro do arquivo /etc/ssl/private/fluentd.key
  • O encaminhamento de logs para o Splunk e a saída de log são configurados na diretiva match:

    • Todos os logs de eventos são copiados do Fluentd e encaminhados para o Controlador de Eventos HTTP do Splunk por meio do plugin de saída fluent-plugin-splunk-hec
    • Os logs do Fluentd também são impressos na linha de comando no formato JSON (linhas de código 19-22). Essa configuração é usada para verificar que os eventos são registrados via Fluentd
<source>
  @type http # plugin de entrada para tráfego HTTP e HTTPS
  port 9880 # porta para solicitações de entrada
  <transport tls> # configuração para manipulação 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 splunk_hec # plugin de saída fluent-plugin-splunk-hec para encaminhar logs para a API do Splunk via Controlador de Eventos HTTP
      hec_host 109.111.35.11 # host do Splunk
      hec_port 8088 # porta da API do Splunk
      hec_token f44b3179-91aa-44f5-a6f7-202265e10475 # token do Controlador de Eventos HTTP
    <format>
      @type json # formato dos logs encaminhados
    </format>
  </store>
  <store>
     @type stdout # plugin de saída para imprimir logs do Fluentd na linha de comando
     output_type json # formato dos logs impressos na linha de comando
  </store>
</match>

Uma descrição mais detalhada dos arquivos de configuração está disponível na documentação oficial do Fluentd.

Testando a configuração do Fluentd

Para verificar se os logs do Fluentd estão sendo criados e encaminhados para o Splunk, pode-se enviar uma solicitação PUT ou POST ao Fluentd.

Exemplo de solicitação:

curl -X POST 'https://fluentd-example-domain.com' -H "Content-Type: application/json" -H "Authorization: Splunk f44b3179-91aa-44f5-a6f7-202265e10475" -d '{"key1":"value1", "key2":"value2"}'

Logs do Fluentd:
Logs no Fluentd

Logs do Splunk:
Logs no Splunk

Configuração da integração Fluentd

  • Webhooks são enviados para https://fluentd-example-domain.com

  • Webhooks são enviados via solicitações POST

  • A integração de webhook possui configurações avançadas padrão

  • Webhooks enviados para URLs de Webhook são todos os eventos disponíveis: hits, eventos do sistema, vulnerabilidades, alterações de escopo

Integração de webhook com Fluentd

Mais detalhes sobre a configuração da integração Fluentd

Teste do exemplo

Para testar a configuração, um novo usuário é adicionado no Console Wallarm:

Adicionando usuário

O Fluentd registrará o evento da seguinte forma:

Log sobre novo usuário no Splunk através do Fluentd

A seguinte entrada será exibida nos eventos Splunk:

Cartão do novo usuário no Splunk a partir do Fluentd

Recebendo eventos no Splunk Enterprise organizados em um painel

Para organizar eventos Wallarm em um painel de controle pronto para usar no Splunk 9.0 ou posterior, você pode instalar o aplicativo Wallarm para Splunk.

Este aplicativo fornece um painel de controle pré-configurado que é automaticamente preenchido com os eventos recebidos da Wallarm. Além disso, o aplicativo permite que você prossiga para logs detalhados sobre cada evento e exporte os dados do painel de controle.

Painel Splunk

Para instalar o aplicativo Wallarm para Splunk:

  1. Na interface do usuário Splunk ➝ Apps, encontre o aplicativo Wallarm API Security.

  2. Clique em Instalar e insira as credenciais do Splunkbase.

Se alguns eventos Wallarm já estiverem registrados no Splunk, eles serão exibidos no painel de controle, bem como eventos adicionais que a Wallarm descobrirá.

Além disso, você pode personalizar completamente o painel pronto para uso, por exemplo, sua visualização ou strings de pesquisa usados ​​para extrair dados de todos os registros Splunk.