Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz

Nosso centro de defesa cibernética é responsável pela segurança da infraestrutura da Web do cliente e repele ataques aos sites do cliente. Para proteger contra ataques, usamos FortiWeb Web Application Firewalls (WAFs). Mas mesmo o WAF mais legal não é uma panacéia e não protege "fora da caixa" de ataques direcionados. 

Portanto, além do WAF, utilizamos ELK. Ele ajuda a coletar todos os eventos em um só lugar, acumula estatísticas, as visualiza e nos permite ver um ataque direcionado a tempo.

Hoje vou contar com mais detalhes como cruzamos a árvore de Natal com o WAF e o que aconteceu.

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz

A história de um ataque: como tudo funcionou antes de mudar para ELK

Em nossa nuvem, o cliente implantou o aplicativo por trás do nosso WAF. De 10 a 000 usuários conectados ao site por dia, o número de conexões chegou a 100 milhões por dia. Destes, 000-20 usuários eram intrusos e tentaram invadir o site. 

A forma usual de força bruta de um endereço IP foi bloqueada pelo FortiWeb com bastante facilidade. O número de acessos ao site por minuto foi maior do que o de usuários legítimos. Simplesmente configuramos os limites de atividade de um endereço e repelimos o ataque.

É muito mais difícil lidar com "ataques lentos", quando os invasores agem lentamente e se disfarçam de clientes comuns. Eles usam muitos endereços IP exclusivos. Tal atividade não parecia força bruta massiva para o WAF, era mais difícil rastreá-la automaticamente. E também havia o risco de bloquear usuários normais. Procuramos outros sinais de ataque e estabelecemos uma política de bloqueio automático de endereços IP com base nesse sinal. Por exemplo, muitas sessões ilegítimas tinham campos comuns nos cabeçalhos de solicitação http. Freqüentemente, você precisava procurar esses campos manualmente nos logs de eventos do FortiWeb. 

Ficou longo e desconfortável. Na funcionalidade padrão do FortiWeb, os eventos são registrados em texto em 3 logs diferentes: ataques detectados, informações sobre solicitações e mensagens do sistema sobre a operação do WAF. Dezenas ou até centenas de eventos de ataque podem ocorrer em um minuto.

Não tanto, mas você tem que escalar manualmente vários logs e iterar em muitas linhas: 

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz
No registro do ataque, vemos os endereços dos usuários e a natureza da atividade. 
 
Não basta simplesmente digitalizar a tabela de log. Para encontrar o que há de mais interessante e útil sobre a natureza do ataque, você precisa olhar dentro de um evento específico:

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz
Os campos destacados ajudam a detectar "ataque lento". Fonte: captura de tela de Site da Fortinet

Bem, o principal problema é que apenas um especialista em FortiWeb pode descobrir isso. Se durante o horário comercial ainda pudéssemos rastrear atividades suspeitas em tempo real, a investigação de incidentes noturnos poderia ser adiada. Quando as políticas do FortiWeb não funcionavam por algum motivo, os engenheiros do turno da noite não conseguiam avaliar a situação sem acesso ao WAF e acordavam o especialista do FortiWeb. Examinamos os registros por várias horas e encontramos o momento do ataque. 

Com tais volumes de informações, é difícil entender o quadro geral rapidamente e agir de forma proativa. Decidimos então coletar dados em um só lugar para analisar tudo de forma visual, encontrar o início do ataque, identificar sua direção e método de bloqueio. 

O que você escolheu

Em primeiro lugar, olhamos para soluções já em uso, para não multiplicar entidades desnecessariamente.

Uma das primeiras opções foi Nagiosque usamos para monitorar infraestrutura de engenharia, infraestrutura de rede, alertas de emergência. Os seguranças também o utilizam para avisar os atendentes em caso de tráfego suspeito, mas ele não sabe coletar logs díspares e por isso desaparece. 

Havia uma opção de agregar tudo com MySQL e PostgreSQL ou outro banco de dados relacional. Mas, para extrair os dados, era necessário esculpir seu aplicativo. 

Como coletor de toras em nossa empresa, eles também usam FortiAnalyzerGenericName da Fortinet. Mas, neste caso, ele também não se encaixava. Em primeiro lugar, é mais aguçado trabalhar com um firewall FortiGateGenericName. Em segundo lugar, muitas configurações estavam faltando e a interação com elas exigia excelente conhecimento de consultas SQL. E em terceiro lugar, seu uso aumentaria o custo do serviço para o cliente.   

Foi assim que chegamos ao código aberto na cara ELK

Por que escolher a ELK 

ELK é um conjunto de programas de código aberto:

  • ElasticSearch - um banco de dados de séries temporais, que foi criado justamente para trabalhar com grandes volumes de texto;
  • Logstash – um mecanismo de coleta de dados que pode converter logs para o formato desejado; 
  • Kibana - um bom visualizador, bem como uma interface bastante amigável para gerenciar o Elasticsearch. Você pode usá-lo para criar cronogramas que podem ser monitorados pelos engenheiros de plantão à noite. 

O limite de entrada para ELK é baixo. Todos os recursos básicos são gratuitos. O que mais é necessário para a felicidade.

Como você juntou tudo em um sistema?

Criou índices e deixou apenas as informações necessárias. Carregamos todos os três logs do FortiWEB no ELK - a saída foi indexes. São arquivos com todos os logs coletados por um período, por exemplo, um dia. Se os visualizássemos de imediato, veríamos apenas a dinâmica dos ataques. Para obter detalhes, você precisa “cair” em cada ataque e observar campos específicos.

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz

Percebemos que primeiro precisamos configurar a análise de informações não estruturadas. Pegamos campos longos como strings, como "Mensagem" e "URL", e os analisamos para obter mais informações para a tomada de decisões. 

Por exemplo, usando a análise, retiramos a localização do usuário separadamente. Isso ajudou a destacar imediatamente os ataques do exterior em sites para usuários russos. Ao bloquear todas as conexões de outros países, reduzimos o número de ataques em 2 vezes e pudemos lidar facilmente com ataques dentro da Rússia. 

Após a análise, eles começaram a procurar quais informações armazenar e visualizar. Deixar tudo no log era inadequado: o tamanho de um índice era grande - 7 GB. ELK demorou muito para processar o arquivo. No entanto, nem todas as informações foram úteis. Algo foi duplicado e ocupou espaço extra - era necessário otimizar. 

No início, simplesmente examinamos o índice e removemos eventos desnecessários. Isso acabou sendo ainda mais inconveniente e demorado do que trabalhar com logs no próprio FortiWeb. A única vantagem da "árvore de Natal" nesta fase é que conseguimos visualizar um grande período de tempo em uma tela. 

Não nos desesperamos, continuamos a comer o cacto e estudar o ELK e acreditamos que conseguiríamos extrair as informações necessárias. Depois de limpar os índices, começamos a visualizar o que é. Então chegamos a grandes painéis. Nós cutucamos widgets - visualmente e elegantemente, um verdadeiro ЁLKa! 

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz

Capturado o momento do ataque. Agora era preciso entender como fica o início do ataque no gráfico. Para detectá-lo, examinamos as respostas do servidor ao usuário (códigos de retorno). Estávamos interessados ​​nas respostas do servidor com esses códigos (rc): 

Código (rc)

Nome

descrição

0

GOTA

A solicitação ao servidor está bloqueada

200

Ok

Pedido processado com sucesso

400

Pedido ruim

Pedido ruim

403

proibido

Autorização negada

500

Internal Server Error

Serviço está indisponível

Se alguém começasse a atacar o site, a proporção de códigos mudava: 

  • Se houvesse mais solicitações incorretas com o código 400 e o mesmo número de solicitações normais com o código 200, alguém estava tentando invadir o site. 
  • Se, ao mesmo tempo, os pedidos com o código 0 também cresceram, os políticos do FortiWeb também "viram" o ataque e aplicaram bloqueios a ele. 
  • Se o número de mensagens com o código 500 aumentar, o site não estará disponível para esses endereços IP - também uma espécie de bloqueio. 

No terceiro mês, criamos um painel para rastrear essa atividade.

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz

Para não monitorar tudo manualmente, configuramos a integração com o Nagios, que sondava o ELK em determinados intervalos. Se registrasse a obtenção de valores limite por códigos, enviava uma notificação aos oficiais de plantão sobre atividades suspeitas. 

4 gráficos combinados no sistema de monitoramento. Agora era importante ver nos gráficos o momento em que o ataque não é bloqueado e é necessária a intervenção de um engenheiro. Em 4 gráficos diferentes, nosso olho estava embaçado. Portanto, combinamos os gráficos e começamos a observar tudo em uma tela.

No monitoramento, observamos como os gráficos de cores diferentes mudam. Uma explosão de vermelho indicava que o ataque havia começado, enquanto os gráficos laranja e azul mostravam a reação do FortiWeb:

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz
Está tudo bem aqui: houve um surto de atividade "vermelha", mas o FortiWeb resistiu e o cronograma de ataque deu em nada.

Também desenhamos para nós mesmos um exemplo de gráfico que requer intervenção:

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz
Aqui podemos ver que o FortiWeb aumentou a atividade, mas o gráfico de ataque vermelho não diminuiu. Você precisa alterar as configurações do WAF.

Investigar incidentes noturnos também se tornou mais fácil. O gráfico mostra imediatamente o momento em que é hora de entrar em defesa do site. 

Como o ELK ajuda os engenheiros de segurança a combater ataques a sites e dormir em paz
Isso é o que às vezes acontece à noite. Gráfico vermelho - o ataque começou. Azul - atividade do FortiWeb. O ataque não foi totalmente bloqueado, tivemos que intervir.

Onde estamos indo

Agora estamos treinando administradores de plantão para trabalhar com ELK. Os atendentes aprendem a avaliar a situação no painel e tomar uma decisão: é hora de encaminhar para um especialista do FortiWeb, ou as políticas do WAF serão suficientes para repelir automaticamente o ataque. Assim, reduzimos a carga dos engenheiros de segurança da informação à noite e dividimos as funções de suporte no nível do sistema. O acesso ao FortiWeb permanece apenas com o centro de defesa cibernética, e somente eles fazem alterações nas configurações do WAF quando necessário com urgência.

Também estamos trabalhando na geração de relatórios para os clientes. Planejamos que os dados sobre a dinâmica de trabalho do WAF estejam disponíveis na conta pessoal do cliente. O ELK esclarecerá a situação sem a necessidade de consultar o próprio WAF.

Se o cliente quiser monitorar sua própria proteção em tempo real, o ELK também será útil. Não podemos ceder o acesso ao WAF, uma vez que a intervenção do cliente na obra poderá afetar o restante. Mas você pode pegar um ELK separado e dar para “brincar”. 

Estes são os cenários para usar a árvore de Natal que acumulamos ultimamente. Compartilhe seus pensamentos sobre isso e não se esqueça configurar tudo corretamentepara evitar vazamentos de banco de dados. 

Fonte: habr.com