Portanto, além do WAF, usamos ELK . Ajuda a reunir todos os eventos em um só lugar, acumula estatísticas, visualiza e permite ver o ataque direcionado a tempo.
Hoje vou contar com mais detalhes como cruzamos a “árvore de Natal” com o WAF e o que resultou disso.
A história de um ataque: como tudo funcionava antes de mudar para ELK
Em nossa nuvem, o cliente implantou o aplicativo por trás de nosso WAF. De 10.000 a 100.000 usuários conectados ao site por dia, o número de conexões chegou a 20 milhões por dia. 3 a 5 deles eram cibercriminosos e tentaram invadir o site.O FortiWeb bloqueou facilmente uma forma de força bruta regular de um endereço IP. O número de visitas ao site por minuto foi superior ao de usuários legítimos. Simplesmente configuramos os limites de atividade de um endereço e repelimos o ataque.
É muito mais difícil combater "ataques lentos" quando os invasores demoram para agir e se disfarçarem de clientes regulares. Eles usam muitos endereços IP exclusivos. Tal atividade não parecia força bruta massiva para 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 configuramos uma política para bloquear automaticamente os endereços IP com base neste atributo. Por exemplo, muitas sessões ilegítimas tinham campos comuns nos cabeçalhos da solicitação http. Freqüentemente, eu tinha que pesquisar manualmente por esses campos nos logs de eventos do FortiWeb.
Acabou sendo longo e inconveniente. 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 WAF. Dezenas ou mesmo centenas de eventos de ataque podem ocorrer em um minuto.
Não muito, mas você tem que percorrer manualmente vários logs e iterar em muitas linhas:
No log de ataques, vemos os endereços dos usuários e a natureza da atividade.
Não é suficiente simplesmente verificar a tabela de registros. Para encontrar as informações mais interessantes e úteis sobre a natureza de um ataque, você precisa olhar dentro de um evento específico:
Os campos destacados ajudam a detectar um "ataque lento". Fonte: captura de tela do site da Fortinet .
Bem, o problema mais importante é que apenas um especialista FortiWeb pode descobrir isso. Se durante o horário de trabalho ainda pudéssemos monitorar atividades suspeitas em tempo real, a investigação de incidentes noturnos poderia ser atrasada. Quando as políticas do FortiWeb por algum motivo não funcionaram, os engenheiros do turno noturno não puderam avaliar a situação sem acesso ao WAF e acordaram o especialista do FortiWeb. Examinamos os registros por várias horas e encontramos o momento do ataque.
Com tantos volumes de informações, é difícil entender o quadro geral à primeira vista 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 as soluções já utilizadas, para não multiplicar entidades desnecessariamente.
Uma das primeiras opções foi o Nagios , que usamos para monitorar a infraestrutura de engenharia , infraestrutura de rede e alertar sobre situações de emergência. Os seguranças também o utilizam para notificar os atendentes em caso de tráfego suspeito, mas ele não sabe como coletar logs espalhados e por isso desaparece.
Havia uma opção de agregar tudo usando MySQL e PostgreSQL ou outro banco de dados relacional. Mas, para extrair os dados, você teve que esculpir seu aplicativo.
Nossa empresa também usa o FortiAnalyzer como coletor de toras .da Fortinet. Mas, neste caso, ele também não se encaixou. Primeiro, ele é mais adequado para funcionar com o firewall FortiGate . Em segundo lugar, faltavam muitas configurações e a interação com elas exigia um excelente conhecimento de consultas SQL. E em terceiro lugar, seu uso aumentaria o custo do serviço para o cliente.
É assim que chegamos ao código aberto na pessoa de ELK .
Por que escolher ELK
ELK é um pacote de software de código aberto:
- Elasticsearch é um banco de dados de série temporal que acaba de ser criado para trabalhar com grandes quantidades 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 construir gráficos que podem ser vistos pelos engenheiros de plantão à noite.
O limite de entrada de ELK não é alto. Todos os recursos básicos são gratuitos. O que mais é necessário para a felicidade.
Como você colocou tudo em um único sistema?
Formamos índices e deixamos apenas as informações necessárias . Carregamos todas as três revistas FortiWEB em ELK - a saída foram os índices. Esses são arquivos com todos os logs coletados por um período, por exemplo, um dia. Se os visualizássemos imediatamente, veríamos apenas a dinâmica dos ataques. Para obter detalhes, você precisa "cair" em cada ataque e olhar para campos específicos.
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.
, . - . , 2 .
Após a análise, eles começaram a procurar quais informações armazenar e visualizar. Não era aconselhável deixar tudo no diário: o tamanho de um índice era grande - 7 GB. ELK demorou muito para processar o arquivo. Dito isso, nem todas as informações foram úteis. Algo foi duplicado e ocupou espaço extra - era necessário otimizar.
No início, apenas percorremos o índice e removemos eventos desnecessários. Acabou sendo ainda mais inconveniente e demorado do que trabalhar com revistas no próprio FortiWeb. A única vantagem da “árvore de Natal” neste estágio é que fomos capazes de visualizar um grande período de tempo em uma tela.
Não nos desesperamos, continuamos a
O momento do ataque foi registrado . Agora era preciso entender como fica o início do ataque no gráfico. Para encontrá-lo, examinamos as respostas do servidor ao usuário (códigos de retorno). Estávamos interessados nas respostas do servidor com os seguintes códigos (rc):
| Código (rc)
|
Nome
|
Descrição
|
| 0
|
SOLTA
|
A solicitação do servidor está sendo bloqueada
|
| 200
|
Está bem
|
Pedido processado com sucesso
|
| 400
|
Pedido ruim
|
Pedido ruim
|
| 403
|
Proibido
|
Autorização negada
|
| 500
|
Erro do Servidor Interno
|
Serviço está indisponível
|
Se alguém começou a atacar o site, a proporção de códigos mudou:
- 400 , 200 , - .
- 0 , FortiWeb «» .
- 500, IP- – .
No terceiro mês, configuramos um painel para rastrear essa atividade.
Para não monitorar tudo manualmente, configuramos a integração com o Nagios, que pesquisava ELK em intervalos regulares. Se ele registrou o alcance dos valores limites por códigos, ele enviou uma notificação aos oficiais de serviço sobre atividades suspeitas.
Combinado 4 gráficos no sistema de monitoramento . Agora era importante ver nos gráficos o momento em que o ataque não é bloqueado e a intervenção do engenheiro é necessária. Em 4 gráficos diferentes, nosso olho estava embaçado. Portanto, combinamos os gráficos e começamos a observar tudo em uma tela.
Durante o monitoramento, observamos como os gráficos de cores diferentes mudavam. Um respingo de vermelho indicava que o ataque havia começado, enquanto os gráficos laranja e azul indicavam a reação do FortiWeb:
Tudo está bem aqui: houve uma explosão de atividade "vermelha", mas o FortiWeb conseguiu lidar com isso e o cronograma de ataques deu em nada.
Também desenhamos um exemplo de gráfico para nós mesmos que requer intervenção:
Aqui vemos que o FortiWeb aumentou a atividade, mas o gráfico de ataque vermelho não diminuiu. Você precisa alterar as configurações WAF.
Investigar incidentes noturnos também se tornou mais fácil. O gráfico mostra imediatamente o momento em que é hora de vir em defesa do site.
É o que às vezes acontece à noite. Gráfico vermelho - o ataque começou. Azul - atividade FortiWeb. O ataque não foi totalmente bloqueado, então tivemos que intervir.
Onde estamos indo
Agora estamos treinando os administradores de plantão para trabalhar com a ELK. Os atendentes aprendem a avaliar a situação no painel e a tomar uma decisão: é hora de encaminhar para um especialista FortiWeb, ou haverá políticas WAF suficientes para repelir automaticamente um ataque. Dessa forma, reduzimos a carga de trabalho 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 no centro da defesa cibernética e apenas altera as configurações do WAF quando necessário.
Também estamos trabalhando na geração de relatórios para os clientes. Planejamos que os dados sobre a dinâmica do trabalho WAF estejam disponíveis na conta pessoal do cliente. ELK tornará a situação mais transparente sem ter que ir para o WAF em si.
Se o cliente quiser observar sua própria proteção em tempo real, o ELK também será útil. Não podemos dar acesso ao WAF, pois a intervenção do cliente na obra pode afetar terceiros. Mas você pode aumentar um ELK separado e dar para "jogar".
Estes são os cenários de utilização da "árvore de natal" que acumulamos recentemente. Compartilhe suas ideias sobre isso e não se esqueça de configurar tudo corretamente para evitar vazamentos dos bancos de dados.