
Detecção de Domínios DGA usando Análise de Frequência de Bigramas
Cada vez mais malwares estão sendo criados com técnicas avançadas de contorno de bloqueio. Uma das técnicas mais prevalentes é o uso de Algoritmos de Geração de Domínios (DGA) que geram periodicamente um conjunto de domínios para contatar um servidor C&C. A maioria desses domínios DGA gera strings alfanuméricas aleatórias que diferem significativamente na estrutura de um domínio padrão. Ao observar a frequência com que um conjunto de bigramas em um domínio ocorre no top 1M do Alexa, conseguimos detectar se um domínio foi estruturado com uma string aleatória ou se era um domínio legítimo legível por humanos. Se um domínio é composto quase inteiramente por bigramas de baixa frequência que ocorrem raramente no top 1M do Alexa, então o domínio provavelmente seria uma string aleatória. Bigramas de vogal e consoante ocorreram com mais frequência, enquanto caracteres e inteiros ocorreram com menos frequência. O script foi executado contra 100.000 domínios GameoverZeus e teve uma taxa de detecção de 100% e uma taxa de falsos positivos contra o top 1M do Alexa de 8% sem qualquer lista de permissão de domínio aplicada.
Este sistema foi testado no Ubuntu e RaspberryPi. Atualmente, tenho meu raspberrypi configurado como servidor DNS usando Bind9. O script DGA-Detection também é executado no raspberrypi e lê as requisições. As requisições são então processadas para determinar se são uma DGA potencial ou não.
git clone https://github.com/philarkwright/DGA-Detection.git
cd DGA-Detection
chmod +x install.sh
./install.sh
sudo python dga_detection.py
nohup sudo python dga-detection.py -o 2 -i <interface>
Ao executar o arquivo install.sh, observe que o protocolo git:// usa a porta 9418, portanto, certifique-se de que seu firewall permita conexões de saída para esta porta.
Este projeto ainda está em desenvolvimento.
Ao executar o script no nível da rede na minha rede doméstica, percebi que, se fizesse certas pesquisas no Google Chrome, receberia vários alertas que pareciam ser domínios DGA. Mesmo que você não visite esses sites, que normalmente são chineses (já que usam strings sem sentido para seus domínios), o Google Chrome os pré-carregará e buscará, causando os alertas.
NOTA: O recurso de lista de permissões usa o Alexa Top 1M.
Entre em contato comigo pelo Twitter @philarkwright