Pilha 1.Elastic: análise de log de segurança. 1. Introdução



Em conexão com o fim das vendas na Rússia do sistema de registro e análise Splunk, surgiu a questão de como essa solução pode ser substituída? Tendo passado algum tempo me familiarizando com diferentes soluções, decidi por uma solução para um homem de verdade - o "ELK stack" . Esse sistema requer tempo para configurá-lo, mas, como resultado, você pode obter um sistema muito poderoso para analisar o status e a resposta operacional a incidentes de segurança da informação na organização. Nesta série de artigos, consideraremos os recursos básicos (ou talvez não) da pilha ELK, como analisar logs, como criar gráficos e painéis e quais funções interessantes podem ser feitas usando logs do firewall Check Point ou do scanner de segurança OpenVas como exemplo. Para começar, considere o que é - a pilha ELK e em quais componentes ela consiste.

A pilha ELK é uma abreviação de três projetos de código aberto: Elasticsearch, Logstash e Kibana . Desenvolvido pela Elastic, juntamente com todos os projetos relacionados. O Elasticsearch é o núcleo de todo o sistema, que combina as funções de um banco de dados, pesquisa e sistema analítico. O Logstash é um pipeline de processamento de dados do lado do servidor que recebe dados de várias fontes ao mesmo tempo, analisa o log e os envia ao banco de dados Elasticsearch. O Kibana permite aos usuários visualizar dados usando tabelas e gráficos no Elasticsearch. Também através do Kibana você pode administrar o banco de dados. Em seguida, consideramos cada sistema separadamente com mais detalhes.



Logstash


O Logstash é um utilitário para processar eventos de log de várias origens, com os quais você pode selecionar campos e seus valores em uma mensagem, também pode configurar a filtragem e a edição de dados. Após todas as manipulações, o Logstash redireciona os eventos para o armazenamento de dados final. O utilitário é configurado apenas através de arquivos de configuração.
Uma configuração típica de logstash é um arquivo que consiste em vários fluxos de informações de entrada (entrada), vários filtros para essas informações (filtro) e vários fluxos de saída (saída). Parece um ou mais arquivos de configuração, que na versão mais simples (que não faz nada) se parecem com o seguinte:

input { } filter { } output { } 

No INPUT, configuramos em qual porta os logs entrarão e de acordo com qual protocolo ou de qual pasta ler arquivos novos ou constantemente gravados. No FILTER, configuramos o analisador de logs: analisando campos, editando valores, adicionando novos parâmetros ou excluindo. FILTRO é um campo de gerenciamento de mensagens que chega ao Logstash com inúmeras opções de edição. Na saída, configuramos para onde enviamos o log já analisado, se for elasticsearch, uma solicitação JSON é enviada na qual os campos com os valores são enviados ou, como parte da depuração, pode ser enviada para stdout ou gravada em um arquivo.



Elasticsearch


Inicialmente, o Elasticsearch é uma solução de pesquisa de texto completo, mas com comodidades adicionais, como fácil dimensionamento, replicação e muito mais, o que tornou o produto uma solução muito conveniente e boa para projetos altamente carregados com grandes quantidades de dados. O Elasticsearch é um repositório não relacional (NoSQL) de documentos no formato JSON e um mecanismo de pesquisa baseado na pesquisa de texto completo do Lucene. A plataforma de hardware é a Java Virtual Machine, portanto, o sistema requer uma grande quantidade de recursos de processador e RAM para funcionar.
Cada mensagem recebida, seja com Logstash ou usando a API de consulta, é indexada como um "documento" - um análogo de uma tabela no SQL relacional. Todos os documentos são armazenados no índice - um análogo do banco de dados em SQL.

Um exemplo de documento no banco de dados:

 { "_index": "checkpoint-2019.10.10", "_type": "_doc", "_id": "yvNZcWwBygXz5W1aycBy", "_version": 1, "_score": null, "_source": { "layer_uuid": [ "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0", "dbee3718-cf2f-4de0-8681-529cb75be9a6" ], "outzone": "External", "layer_name": [ "TSS-Standard Security", "TSS-Standard Application" ], "time": "1565269565", "dst": "103.5.198.210", "parent_rule": "0", "host": "10.10.10.250", "ifname": "eth6", ] } 

Todo o trabalho com o banco de dados é baseado em solicitações JSON usando a API REST, que emite documentos por índice ou algumas estatísticas no formato: pergunta - resposta. Para visualizar todas as respostas às solicitações, o Kibana foi escrito, que é um serviço da web.

Kibana


O Kibana permite pesquisar / coletar dados e solicitar estatísticas do banco de dados elasticsearch, mas muitos gráficos e painéis são construídos com base nas respostas. O sistema também possui a funcionalidade de administração do banco de dados elasticsearch. Nos artigos subsequentes, consideraremos esse serviço com mais detalhes. Agora vamos mostrar um exemplo de painéis no firewall Check Point e no scanner de vulnerabilidades OpenVas que podem ser criados.

Exemplo de painel para o Check Point, a imagem é clicável:



Exemplo do painel OpenVas, a imagem é clicável:



Conclusão


Examinamos em que consiste a pilha ELK , conhecemos um pouco os principais produtos e, em seguida, consideramos separadamente o arquivo de configuração do Logstash, configurando painéis no Kibana, familiarizando-nos com solicitações de API, automação e muito mais!

Portanto, fique atento ( Telegram , Facebook , VK , TS Solution Blog ), Yandex.Zen .

Source: https://habr.com/ru/post/pt480570/


All Articles