Depois de alguns artigos tratando de sistemas operacionais regulares (como Linux e Windows), vamos falar um pouco sobre Raspberry Pi.  É uma plataforma muito adotada ao redor do mundo, projetada e construída para atender aos mais diferentes projetos e cenários, desde um vídeo-game portátil e retrô (Projeto RetroPie), até sistemas complexos de automação residencial ou segurança, que é o nosso caso aqui.

Desta vez, vamos falar do SweetSecurity, um projeto bem bacana de código aberto com a intenção de facilitar a instalação de algumas ferramentas poderosas que ajudam os administradores a melhor gerenciarem seus ambientes de segurança.  Este projeto é entregue na forma de um conjunto de outros importantes projetos de segurança que, juntos, constróem um dashboard de segurança completo e bem decente.

E um pequeno detalhe:  você vai usar o seu Raspberry Pi como sua estação de segurança!  Interessante, hein?  Pois é.  Vamos ver do que o SweetSecurity é capaz.

 

Introdução

O SweetSecurity é um esforço memorável mantido pelo pesquisador de segurança Travis Smith.  No momento em que escrevi este artigo, ele trabalhava para a TripWire.  Travis costuma escrever para um blog da TripWire chamado “The State of Security“.  Vale a pena visitar o site e conferir os posts.

A ferramenta, como eu disse antes, é um complexo conjunto de scripts em Python escritos especialmente para instalar ferramentas úteis:  Apache, Bro, Elasticsearch, Logstash, Kibana e Critical Stack.  Eles não só são instalados, como também configurados para trabalharem corretamente em conjunto.

Todos os scripts estão em um repositório do GitHub.  Lá, você encontrará também uma excelente apresentação no formato PDF com alguns desenhos de arquitetura, estatísticas, conceitos e muitos screenshots.  Recomendo salvá-la para referência futura.

 

Instalação

Antes de instalar o produto em si, é preciso decidir que opção escolher.  O arquivo README.md cita isso.  A primeira é a mais completa (sensores e interface de administração web).  A segunda corresponde apenas à parte dos sensores e a terceira, apenas a GUI.  Para facilitar a compreensão, escolhi a primeira opção (pacote completo) em uma única caixa.  Esta é a forma mais simples, mesmo se você quiser rodar o SweetSecurity num sistema Linux convencional, em vez de uma distribuição Raspbian, por exemplo.

É importante entender que, para instalar o pacote completo, seu Raspberry Pi precisa ter pelo menos 2 GB de RAM!  Caso não possua, você ainda pode experimentar a solução, dividindo-a em dois ou mais Pis, colocando os sensores em um e a interface gráfica em outro.  Além disso, recomendo que você tenha uma instalação nova e limpa do Raspbian, pois alguns utilitários do SweetSecurity usam Java.  Bem, você sabe:  memória nunca é demais quando se usa Java…

O primeiro passo é clonar o repositório.  Portanto, você precisa ter o Git instalado.  Depois de cloná-lo, simplesmente digite “sudo python setup.py” (naturalmente, o Python versão 2.x precisa estar instalado, mas não costumo mencionar isto porque esta linguagem costuma fazer parte de muitas distribuições atualmente).

Exceto pelo JRE, todas as aplicações e pacotes necessários são automaticamente baixados e instalados pela ferramenta de setup em Python.  O Bro, por exemplo, precisa ser compilado, e o utilitário de instalação faz isso pra você.  Travis realmente fez um grande trabalho em automatizar tudo isto.

Assim, depois de clonar o repositório, dispare o script de instalação.  Se você tentar instalá-lo sem ter o Java ainda, receberá uma mensagem de erro mais ou menos assim:

Choose an Installation Type (1-3): 1

No JRE installed

For Ubuntu 16: sudo apt-get install default-jre

Please install JRE 1.8

Depois de satisfazer este requisito, você conseguirá instalar sem problemas.

Durante a instalação, aparecerão prompts pedindo para fornecer usuários e senhas (Apache/Kibana e Elasticsearch).  Eles serão usados para configurar os pacotes.  Além disto, será preciso informar sua chave de API do Critical Stack.  Assim, se você ainda não tiver uma, é hora de criar.

Nesta etapa de instalação, você perceberá que um dos estágios que mais consomem tempo é a compilação do código do Bro.  Como o código fonte precisa ser baixado, é mandatório passar por esta seção.  Dependendo do modelo de Raspberry Pi que você esteja usando, isto pode realmente demorar bastante!

Opcionalmente, você pode escolher verificar arquivos suspeitos usando o FileCheck.IO, além de configurar alguns alertas por e-mail (Apache, Logstash e Elasticsearch).  Não escolhi fazer este passo de verificação, mas optei por configurar alertas de e-mail.  Esteja ciente que, se seu e-mail estiver hospedado no Google (Gmail), você pode receber mensagens de aviso informando sobre tentativas não autorizadas de acessar sua conta.  Isto é esperado.  Depende de você permitir que a ferramenta envie ou não e-mails em seu nome.  O mesmo pode acontecer também com outros provedores, como Hotmail ou Yahoo!

Mão na Massa

Bem, eu fiz a instalação completa, certo?  Isso mesmo.  Então, vamos verificar a arquitetura, considerando este fato.  Legendei os ícones para que seja fácil a você identificar os componentes:

Arquitetura do SweetSecurity

Arquitetura do SweetSecurity

Depois de instalar o SweetSecurity, recomendo que você reinicie o seu Raspberry Pi.  É apenas para garantir que tudo será carregado sem problemas.  Quando você faz login no portal (porta 443), você receberá uma imagem como esta aqui:

Tela inicial do SweetSecurity

Tela inicial do SweetSecurity

As caixas correspondem a endereços IP que estão alocados para dispositivos descobertos na rede.  Em meu laboratório, dois foram encontrados.  Façamos uma breve navegação pela interface.  Ao se clicar em “Alerts”, você irá para a página correspondente.  Como acabamos de iniciar os softwares, nada foi alertado ainda (veja a próxima figura).

Alertas

Alertas

Quando você clica em “Settings”, um conjunto de informações é mostrado.  Você pode ver e controlar os status de serviços chave:  Elasticsearch, Kibana e o próprio SweetSecurity.  Além disso, é possível ver ocupação de memória e disco., aceitar ou rejeitar novos dispositivos, isolar novos e até mesmo escolher qual é a ação default do firewall para os dispositivos que vão sendo descobertos.  Esta é a primeira metade da tela e corresponde à estação de monitoramento (a parte de monitoramento da instalação, lembra?).  Veja a próxima imagem.

Controle dos sistemas da estação de monitoramento

Controle dos sistemas da estação de monitoramento

A segunda metade da janela está relacionada ao Logstash e o Bro.  Esta é a parte do sensor.  Novamente, é possível verificar situação da memória e disco, mas não é possível controlar nada aqui.  Se você, assim como eu, escolheu instalar tudo no mesmo Pi, faça um cálculo rápido e veja que quase toda a memória já está preenchida com estes brinquedos. 🙂

Verificando o status dos sensores

Verificando o status dos sensores

E não é apenas a memória.  O JRE, pelo menos no meu caso, é responsável por praticamente toda a ocupação do processador, juntamente com o Bro.  Isto pode realmente impactar seu Pi se você está usando uma versão um pouco mais velha ou se você escolher rodar tudo junto.

O JRE e o Bro ocupando a CPU

O JRE e o Bro ocupando a CPU

Finalmente, quando você clica em “Kibana”, é redirecionado para esta ferramenta, e corresponde à parte mais completa do software.  Aqui, você encontrará filtros, personalizações, gráficos e queries que podem lhe permitir ter uma visão bem profunda da rede.

Infelizmente, tive alguns problemas com minha implementação de Logstash e não pude corrigir ainda para deixar este artigo mais completo, de maneira a poder ver os dashboards e gráficos bacanas.  Mesmo assim, é possível ter uma ótima ideia de como eles funcionam na apresentação de Travis disponível no GitHub.  Como contorno, fiz algumas queries usando as “Dev Tools” do Kibana, como é possível ver na próxima sequência de imagens.

Depois de descobrir os índices disponíveis na instalação do ELK (o que pode ser feito acessando-se o endereço http://<endereço do elastic>:9200/_cat/indices?v, você encontrará “.kibana”, “.tardis”, “sweet_security” e “sweet_security_alerts”.  Vamos brincar um pouco com os dois últimos.

Consultando os dispositivos registrados

Consultando os dispositivos registrados

 

Consultando alertas gerados pelo SweetSecurity

Consultando alertas gerados pelo SweetSecurity

Os índices acima são automaticamente provisionados quando você instala o SweetSecurity.  Você pode mexer além com o Kibana, navegando através de outros índices, tipos e documentos.  Infelizmente, como mencionei acima, nenhum filtro do Logstash pôde ser encontrado ou usado.

 

Conclusão

Esta ferramenta é muito poderosa, e não apenas porque usa a suíte ELK em segundo plano.  Isto sozinho, obviamente, seria uma razão justificável para lhe dar este título.  O poder do SweetSecurity baseia-se nas possibilidades criadas com a integração entre o Bro e o Critical Stack (ou até mesmo o FileCheck.IO).  Você pode, numa única caixa, verificar tráfego, submetê-lo para análise e também checar profundamente arquivos capturados.

Fiz testes complementares usando outras máquinas em meu laboratório.  Disparei port scans nos dispositivos descobertos, mas novamente, não pude encontrar qualquer informação relacionada nos filtros configurados no Kibana.  O firewall configurado nos dispositivos, entretanto, corretamente mostrou que apenas a porta 22 do TCP (SSH) estava aberta.  Isto bloqueou tentativas de fingerprinting do sistema operacional, o que é o comportamento esperado, mostrando que o SweetSecurity não estava apenas vendo tudo, mas também efetivamente protegendo os dispositivos.

Um ponto negativo que eu gostaria de mencionar é o desempenho.  Certamente, executar tudo num único Raspberry Pi não é recomendado (definitivamente), pois esta caixa não possui nem memória nem poder de processamento suficientes para suportar aplicações de grande porte, como uma pilha ELK.  E não esqueça que ainda havia o Bro e o Critical Stack disputando os recursos…  Se você pensa em considerar o SweetSecurity em seu ambiente de produção, divida os papéis em pelo menos dois Pis, para que você possa explorar o máximo de cada um.  Seria uma boa ideia distribuir sensores ao longo da rede para capturar diferentes seções/segmentos e quantificar/qualificar seus comportamentos.

Até o próximo post. 😉

Compartilhe:

Maurício Harley

Olá! Meu nome é Maurício Harley. Tenho mais de 20 anos de experiência em Tecnologia da Informação. Durante minha carreira, trabalhei em setores diversos, como suporte a usuário final, manutenção de hardware, instalação e suporte a redes de computadores, programação, projetos avançados em Data Center, Cloud Computing, Cyber Security e Redes, incluindo Service Providers.

4 comentários

Bruno Tinoco · 2018-01-12 às 01:00

Excelente artigo, MHarley! Parabéns!!! 😉

    Maurício Harley · 2018-01-12 às 08:21

    Valeu, Tinoco!

    Obrigado. 😉

Artur de Souza Aragão · 2018-01-30 às 13:03

Este projeto existe para o Orange Pi PC Plus????

    Maurício Harley · 2018-01-30 às 17:27

    Olá, Artur!

    Conforme explicado no blog, rodar o SweetSecurity com 1 GB ou menos de RAM é bem complicado. O Orange Pi possui 1 GB de RAM. Assim, não recomendo que o use para este fim. Se mesmo assim quiser testar, use uma abordagem de espalhar as roles entre diversos Orange Pi. Desta forma, você não sobrecarregará o equipamento.

    Abraço

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Translate

You cannot copy content of this page.