Na última semana, ocorreu, em Buenos Aires (AR), mais uma edição anual da Ekoparty Security Conference. O evento é a principal conferência sobre segurança da informação na América Latina, onde especialistas e intusiastas de todo o mundo se reúnem para compartilhar conhecimentos a respeito das mais recentes inovações tecnológicas, vulnerabilidades e novas ferramentas.
Dentre muitas palestras e atividades interessantes da Ekoparty, uma delas me chamou muito a atenção – “Six Degrees of Domain Admin – Using BloodHound to Automate Active Directory Domain Privilege Escalation Analysis” (“Seis graus de separação do Administrador de Domínio – Utilizando BloodHound para Automação da Análise de Escalação de Privilégio em Domínio no Active Directory”, em tradução livre). Veja do que se trata:
Graus de separação
A teoria dos seis graus de separação diz que são necessários apenas seis laços de amizade para que duas pessoas quaisquer estejam ligadas. A teoria pode ser aplicada em diferentes contextos; no ramo da cinematografia, a anedota comum é calcular o número de laços até Kevin Bacon; na matemática calcula-se o número de Erdös.
Durante a Ekoparty, Andrew Robbins e Rohan Vazarkar, da Veris Group, apresentaram a ferramenta BloodHound, criada por ambos (junto com Will Schroeder), e inspirada na teoria dos seis graus de separação. A ferramenta destina-se à análise do menor caminho de ataque que um adversário deve percorrer para obter o privilégio de administrador de domínio, principalmente na análise de domínios em grandes empresas. Contas como esta são as de maior privilégio em um domínio, o que demanda alto grau de proteção das empresas e as tornam atraentes para o roubo de credenciais.
BloodHound e a teoria dos grafos
A principal característica do BloodHund é permitir uma análise simples e visual de como um adversário deve proceder até obter uma credencial de administrador de domínio. Para isso, a ferramenta conta com alguns scripts para a coleta de dados e uma interface para analisá-los.
Os scripts para coleta de dados respondem às seguintes perguntas:
- Quem está logado nos computadores do domínio?
- Quais computadores e quais usuários possuem direitos administrativos?
- Quais usuários e grupos pertencem a quais outros grupos?
Uma característica importante dessa coleta de dados é que, na maioria das vezes, ela não requer privilégio administrativo, tampouco execução de um código em sistemas remotos.
Por trás da análise dos dados, está a teoria dos grafos, que ajuda a extrair informações de problemas modelados como vértices e arestas.
A partir das informações coletadas, a ferramenta modela o caminho até a conta de administrador de domínio da seguinte forma:
- Vértice: Usuário, Computador, Grupo.
- Aresta: Membro (de grupo), Administrador (de computador), Sessão (de usuário).
Na figura acima, está ilustrado como um adversário poderia obter uma credencial de adminstrador de domínio a partir de um usuário sem tal privilégio – ou seja, sendo necessário escalar privilégio. Neste caso, um atacante poderia obter acesso à conta de Bob através de meios usuais como phishing e malware. Utilizando essa credencial, o adversário poderia acessar o Server I em que Bob é administrador e há uma sessão da usuária Mary, administradora do domínio, para então obter a credencial de administrador de domínio utilizando ferramentas como Mimikatz.
Esse é um exemplo simples, mas ajuda a entender como é construído o modelo de análise a partir dos dados coletados na primeira fase. Quando aplicada a grandes domínios ou florestas, a ferramenta ajuda a revelar relações ocultas e que, muitas vezes, de forma não intencional existentes em ambiente do Active Directory.
Defensores pensam em lista. Atacantes pensam em grafos.
Um dos fatores explorados pela ferramenta é a máxima “Defenders think in lists. Attackers think in graphs” (“Defensores pensam em lista. Atacantes pensam em grafos”, em tradução livre). Enquanto defensores estão focados em listas de acessos, serviços, base de dados, etc., atacantes exploram o relacionamento de cada item (dessas listas) para encontrar o caminho ao seu alvo.
O BloodHound é capaz de ilustrar essa máxima de maneira simples e super aplicável, sendo útil tanto no campo defensivo, para avaliar e aprimorar as configurações de domínio, quanto no uso ofensivo, podendo ser usado para avaliar a segurança de outras empresas (com ética, é claro).