1.Pilha elástica: análise de logs de segurança. Introdução

1.Pilha elástica: análise de logs de segurança. 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: o que pode substituir esta solução? Depois de passar algum tempo me familiarizando com diferentes soluções, decidi por uma solução para um homem de verdade - "Pilha ELK". Esse sistema leva tempo para ser configurado, mas como resultado você pode obter um sistema muito poderoso para analisar o status e responder prontamente a incidentes de segurança da informação na organização. Nesta série de artigos, veremos os recursos básicos (ou talvez não) da pilha ELK, consideraremos como você pode analisar logs, como construir gráficos e painéis e quais funções interessantes podem ser executadas usando o exemplo de logs de o firewall Check Point ou o scanner de segurança OpenVas. Para começar, vamos ver o que é - a pilha ELK e em quais componentes ela consiste.

"Pilha ELK" é um acrônimo para três projetos de código aberto: ElasticSearch, Logstash и Kibana. Desenvolvido pela Elastic junto com todos os projetos relacionados. Elasticsearch é o núcleo de todo o sistema, que combina as funções de banco de dados, pesquisa e sistema analítico. Logstash é um pipeline de processamento de dados do lado do servidor que recebe dados de várias fontes simultaneamente, analisa o log e os envia para um banco de dados Elasticsearch. O Kibana permite aos usuários visualizar dados usando tabelas e gráficos no Elasticsearch. Você também pode administrar o banco de dados por meio do Kibana. A seguir, consideraremos cada sistema separadamente com mais detalhes.

1.Pilha elástica: análise de logs de segurança. Introdução

Logstash

Logstash é um utilitário para processar eventos de log de várias fontes, com o qual você pode selecionar campos e seus valores em uma mensagem, além de configurar a filtragem e 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 somente por meio de arquivos de configuração.
Uma configuração típica do 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 absolutamente nada) fica assim:

input {
}

filter {
}

output {
}

No INPUT configuramos para qual porta os logs serão enviados e por qual protocolo, ou de qual pasta serão lidos arquivos novos ou constantemente atualizados. No FILTER configuramos o analisador de log: analisando campos, editando valores, adicionando novos parâmetros ou excluindo-os. FILTER é um campo para gerenciar a mensagem que chega ao Logstash com diversas opções de edição. Na saída configuramos para onde enviamos o log já analisado, caso seja elasticsearch é enviada uma solicitação JSON na qual são enviados campos com valores, ou como parte do debug pode ser enviado para stdout ou gravado em um arquivo.

1.Pilha elástica: análise de logs de segurança. Introdução

ElasticSearch

Inicialmente, o Elasticsearch é uma solução para pesquisa de texto completo, mas com comodidades adicionais como fácil dimensionamento, replicação e outras coisas, o que tornou o produto muito conveniente e uma boa solução para projetos de alta carga e grandes volumes de dados. Elasticsearch é um armazenamento de documentos JSON não relacional (NoSQL) e mecanismo de pesquisa baseado na pesquisa de texto completo Lucene. A plataforma de hardware é 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” – análogo a uma tabela em SQL relacional. Todos os documentos são armazenados em um índice - um análogo de um banco de dados SQL.

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 utilizando a API REST, que produzem documentos por índice ou algumas estatísticas no formato: pergunta - resposta. Para visualizar todas as respostas às solicitações, foi escrito o Kibana, que é um serviço web.

Kibana

O Kibana permite pesquisar, recuperar dados e consultar estatísticas do banco de dados elasticsearch, mas muitos gráficos e painéis bonitos são construídos com base nas respostas. O sistema também possui funcionalidade de administração de banco de dados elasticsearch; em artigos subsequentes veremos esse serviço com mais detalhes. Agora vamos mostrar um exemplo de painéis para o firewall Check Point e o scanner de vulnerabilidade OpenVas que podem ser construídos.

Um exemplo de painel para Check Point, a imagem é clicável:

1.Pilha elástica: análise de logs de segurança. Introdução

Um exemplo de painel para OpenVas, a imagem é clicável:

1.Pilha elástica: análise de logs de segurança. Introdução

Conclusão

Vimos em que consiste Pilha ELK, conhecemos um pouco os principais produtos, mais adiante no curso consideraremos separadamente escrever um arquivo de configuração do Logstash, configurar dashboards no Kibana, conhecer solicitações de API, automação e muito mais!

Então fique ligado (Telegram, Facebook, VK, Blog da solução TS), Yandex.Den.

Fonte: habr.com

Adicionar um comentário