As ferramentas de código aberto Caldera, criada pelo MITRE, e Infection Monkey, da empresa GuardiCore, tem como finalidade avaliar a saúde da segurança de um ambiente de rede através de testes de invasão. Aos que ainda não estão familiarizados com o termo, ao pesquisar sobre testes de invasão é comum se deparar com blue team e red team. Para que fique mais claro, destacamos duas definições: red team representa o time que faz o papel dos invasores, tentando explorar vulnerabilidades e se aproveitar de brechas do ambiente, já o blue team é responsável pelo monitoramento e defesa do ambiente.

A ideia das soluções é fazer com que as avaliações automáticas de ambiente possam ser executadas sem que uma quantidade de recursos muito grande seja desprendida para isso, podendo trazer um aumento de segurança nos processos cotidianos de provisionamento de servidores e estações de trabalho ou até avaliações periódicas de todo o ambiente.

Falemos um pouco agora sobre o que torna as ferramentas de avaliação distintas entre si.

Caldera

Desenvolvido para ser instalado em ambientes Linux/Unix, o Caldera necessita, no mínimo, do Python 3.5.3 instalado para poder funcionar. Sua instalação é feita em poucos passos e pode ser consultada diretamente no repositório do MITRE, na área referente à solução.

Após a implementação da solução toda a operação pode ser feita através da solução web.

Para que o Caldera possa realizar os testes de segurança em qualquer equipamento, primeiro o dispositivo precisa estar vinculado ao servidor de administração. Este vinculo permitirá que o equipamento seja manipulado da forma que o administrador necessitar.

A estrutura dos testes executados pelo Caldera segue uma estrutura de execução. Primeiro é necessário ter todos os hosts que serão analisados vinculados a interface. Em seguida cria-se um ou mais grupos com esses hosts, para que regras possam ser aplicadas a eles. É possível escolher quais técnicas serão executadas nos hosts utilizando um dos conjuntos de técnicas pré-existentes ou criando um novo conjunto de técnicas e inserindo apenas o que for relevante para o momento da análise.

Imagem 1. Tela do Caldera.

Como toda ferramenta que se preze, ao final dos testes é possível acessar os resultados através da opção Show Results.

Analisando os resultados é possível identificar pontos que precisam de atenção no ambiente, como por exemplo, política de senhas, protocolos inseguros trafegando dados sensíveis no ambiente, restrições de acesso, e diversos outros pontos de melhoria que podem ser obtidos através da análise dos resultados.

Infection Monkey

A Guardicore, criadora do Infection Monkey, desenvolveu a solução para ser utilizada de diversas formas, sendo uma imagem similar a um appliance para ambientes virtuais, como VMWare, Azure, Google Cloud entre outras, e um executável para instalação em servidores Windows previamente existentes.

O Infection Monkey é uma ferramenta desenvolvida com o intuito de analisar ambientes de Datacenter, mas pode ser usado em qualquer ambiente de rede, independentemente do tamanho. Ele é composto de três módulos:

  • Infection Monkey: um agente dele que tenta se auto propagar e comprometer os hosts da rede.
  • Monkey Island: servidor de controle que gerencia todos os Infection Monkeys.
  • Monkey Business: cria Monkey Islands em diferentes redes, gerindo e orquestrando as ações dos Infection Monkeys de cada ilha.

No caso de uma estrutura em que não seja necessário o uso de um Monkey Business, a própria instalação do servidor do Monkey Island pode começar os testes. Diferente do Caldera, onde todas as máquinas que serão analisadas são previamente vinculadas a interface de administração, o Infection Monkey é totalmente recursivo, se espalhando por toda a rede e marcando todas as máquinas que ele conseguiu ou não comprometer.

Imagem 2. Tela do Infection Monkey.

A solução também possui uma área dedicada a extração de relatórios, e é possível analisar os logs das ações dos Monkeys em tempo real.

Falar de duas ferramentas em uma única publicação pode nos trazer a seguinte dúvida, qual das soluções utilizar?

A resposta varia de acordo com o resultado que se espera. Caso seja necessário fazer um teste em ambiente mais controlado, envolvendo apenas hosts específicos, a solução Caldera é a opção ideal.

Se for necessário percorrer todo ambiente de rede que direta ou indiretamente tenha acesso ao ponto de partida dos testes e não houverem restrições de quais hosts aparecerão no relatório, o Infection Monkey é a opção a ser escolhida.

Em que ferramentas desse tipo podem ajudar?

Como as ferramentas simulam ser um cibercriminoso dentro da rede, caso haja alguma vulnerabilidade no ambiente é sempre melhor saber disso através de um relatório de uma solução desenvolvida para auxiliar do que ter os servidores de fato comprometidos por um atacante e arcar com as consequências da negligência.

Além disso, que já é um ótimo motivo, as ferramentas também podem ajudar nos seguintes pontos:

  • Análise frequente do ambiente: é possível inserir uma avaliação completa ou parcial de todo o ambiente dentro dos processos cíclicos que as áreas responsáveis por segurança ou tecnologia já possuem. Sempre será necessário que alguém administre a solução, mas com os níveis de automatizações que elas trazem o tempo dedicado será muito menor do que avaliar o ambiente individualmente.
  • Avaliação de novos hosts: em um ambiente de rede controlado, é recomendado a análise de segurança de hosts que irão ingressar no ambiente, sejam eles estações de trabalho ou servidores. A tarefa de teste de invasão é mais simples de ser executada do que dedicar o tempo de um profissional para fazê-la manualmente*.
  • Otimização do ambiente e melhor gestão de recursos: varrer todo o ambiente pode identificar serviços rodando que não são necessários, imagine um cenário onde as imagens dos hosts provisionados, tanto estações quanto servidores, vão com o compartilhamento de arquivos habilitado e o protocolo que está rodando é o SMBv1 - responsável pelo Eternal Blue. A rede inteira seria vulnerável a esse exploit. Identificar isso, além de ser um incremento de segurança, fará o ambiente trabalhar melhor, pois não precisará gerir os recursos de um serviço que não é utilizado.
  • Inventário de hosts: dependendo de como os testes forem feitos, hosts desconhecidos ou “esquecidos” serão identificados e o devido tratamento pode ser dado a eles, seja a remoção dos mesmos da rede ou a inserção no inventário de ativos.
*Os resultados obtidos pelas soluções não substituem a análise do ambiente por um pentester capacitado, o resultado de uma ferramenta de análise, independente de qual seja a escolhida é limitado as configurações previstas nela. Um pentester consegue trabalhar de forma dinâmica, adaptando sua atuação com cada item encontrado no ambiente, sem seguir padrões de testes específicos como as soluções fazem. Da mesma forma que é inviável para um pentester exaurir as possibilidades de invasão em todos os equipamentos de rede, da forma como as soluções conseguem executar. Todas as abordagens são válidas e devem ser escolhidas de acordo com o resultado desejado, lembrando que uma não exclui a outra.