O que são DGAs e como detectá-los?
Algoritmos de geração de domínio (DGAs) são uma classe de algoritmos que periodicamente e dinamicamente geram um grande número de nomes de domínio. Normalmente, os domínios são usados por malwares e botnets como pontos de encontro para facilitar o retorno de chamada para os servidores de comando e controle do agente mal-intencionado.
Os DGAs permitem que o malware gere dezenas de milhares de domínios por dia, a grande maioria deles sem registro. O enorme número de domínios não registrados é usado para mascarar os registrados, permitindo que os botnets infectados evitem a detecção e a dissuasão por sistemas de detecção de segurança baseados em assinatura ou reputação de IP.
A primeira família de malware conhecida a usar um DGA foi o Kraken em 2008. Mais tarde naquele ano, o worm Conflicker transformou a tática do DGA em notoriedade. Mesmo depois de 10 anos, ainda é possível encontrar o Conflicker ou uma de suas variantes em algumas das redes atuais.
Em conjunto com a crescente proliferação de malware, o uso de DGAs tornou-se mais difundido.
Os objetivos da detecção de DGA
Como a atividade da DGA é um indicador considerável de comprometimento, torna-se crítico detectar essas atividades em sua rede. Existem três níveis de detecção de DGA, com cada nível subseqüente correlacionando-se a um aumento na gravidade. Detecção em níveis posteriores é mais difícil, mas mais crítica.
Se um DGA for detectado, isso significa que um ou mais dos seus sistemas foram infectados por malwares baseados em DGA e se tornaram botnets. Algumas ações precisam ser tomadas. O primeiro objetivo é identificar os sistemas afetados, limpando-os adequadamente ou colocando-os em quarentena para evitar o escalonamento.
O próximo objetivo é determinar se um determinado nome de domínio DGA está registrado. Se o domínio estiver registrado, ele se tornou um servidor ativo de Comando e Controle que apresenta um grande risco à sua rede. Sistemas infectados, agora botnets, podem usar esses servidores para chamar de lar e receber comandos do invasor mal-intencionado. Portanto, o segundo componente de um sistema eficaz de detecção de DGA é a capacidade de diferenciar domínios registrados dos não registrados.
Por exemplo, um DGA pode gerar 1000 domínios, de xyzwer1, xyzwer2…. para xyzwer1000. O hacker só precisa registrar um domínio, ou seja, xyzwer500, não os outros 999 domínios. Se o domínio registrado e seu IP associado puderem ser identificados, as informações poderão ser usadas para bloquear o canal de comunicação entre o sistema de destino e o servidor de comando e controle. Além disso, a Intel deve ser propagada para todos os outros sistemas de prevenção ou detecção estabelecidos para obstruir o retorno de chamada para esse servidor de qualquer sistema na rede.
O último, mas mais crítico, objetivo de um sistema de detecção de DGA é determinar se o retorno de chamada foi bem-sucedido com os domínios registrados e o contato foi feito entre o (s) sistema (s) infectado (s) e o servidor de Comando e Controle. Se tal atividade for detectada, algum dano já pode ter sido feito. Talvez o malware em sua rede tenha sido atualizado ou um novo malware tenha sido instalado. Dados sensíveis podem ter sido exfiltrados.
Como funciona a detecção de DGA?
A atividade de DGA é detectada pela captura e análise de pacotes de rede, geralmente em cinco etapas gerais.
Etapa 1 - Detectar o aplicativo DNS
A detecção começa por meio de mensagens de solicitação e / ou resposta do DNS. O DNS é um protocolo fundamental da Internet e a maioria dos firewalls possui uma política para permitir o tráfego DNS de saída em sua porta reservada 53. No entanto, um hacker pode aproveitar a porta 53 para enviar seu tráfego sem aderir ao formato de mensagem DNS padrão. Este ataque é chamado de tunelamento de DNS. Um mecanismo Deep Inspection (DPI) é recomendado para identificar os aplicativos DNS com mais precisão.
Etapa 2 - Extrair nomes de domínio
Depois que um aplicativo de rede é identificado como DNS, os nomes de domínio nas mensagens de consulta e resposta do DNS precisam ser extraídos. Para extrair o nome de domínio correto, o conteúdo da mensagem DNS precisa ser analisado com cuidado e um mecanismo de DPI é necessário para executar essa tarefa.
Passo 3 - Detectar qualquer DGA
A análise precisa ser executada nos domínios extraídos de mensagens DNS para determinar se são DGAs. Este é talvez o passo mais complicado. O desafio é reduzir tanto os falsos positivos quanto os falsos negativos. Os mecanismos de detecção evoluíram dramaticamente nos últimos 10 anos.
Alguns mecanismos são baseados na relativamente simples Entropia de Shannon.
https://www.splunk.com/blog/2015/10/01/random-words-on-entropy-and-dns.html
Alguns mecanismos são baseados em Ngrams mais sofisticados como apresentado por Fyodor na conferência Hitb.
Ultimamente, com o aprendizado de máquina tornando-se popularizado, suas metodologias também foram aplicadas à detecção de DGA. Aprendizado de máquina pode combinar os recursos de Ngrams, Shannon Entropy, bem como a duração dos nomes de domínio para influenciar as decisões. Vários modelos de aprendizado de máquina foram testados. Há um post muito bom por Jay Jacobs em 2014 descrevendo o processo.
Aqui está outro detector DGA de código aberto baseado em Machine Learning com Markov Chain:
https://github.com/exp0se/dga_detector
Etapa 4 - Detectar Domínios DGA Registrados
Para detectar se um nome de domínio DGA está registrado, as respostas do DNS precisam ser verificadas. Simplesmente rastrear as solicitações de DNS não é suficiente - o sistema de detecção deve rastrear toda a transação para facilitar a correlação entre as informações.
Etapa 5 - Detectar o tráfego para domínios DGA registrados
Quando a maioria dos sistemas de detecção DGA se concentra em detectar se um nome de domínio é um domínio DGA, eles geralmente esquecem a última pergunta, a mais importante: existe algum tráfego que tenha sido enviado para os domínios DGA registrados? Para detectar isso em tempo hábil, a detecção de domínio DGA deve ser fortemente associada à inspeção de tráfego de rede. Os resultados precisam ser retornados ao mecanismo de inspeção de tráfego imediatamente antes de qualquer dano ser feito.
Etapa 6 - Bloqueio do tráfego para domínios DGA registrados
Embora não seja tecnicamente parte da detecção, se houver uma integração com um sistema de prevenção, como um Firewall ou IPS, uma regra deve ser inserida imediatamente para bloquear todo o tráfego para os domínios registrados.
Um ótimo sistema de detecção DGA deve realizar todas as 5 etapas. Um excelente sistema de detecção DGA também deve incluir o Passo 6. Infelizmente, hoje a maioria dos sistemas de detecção DGA param nas etapas 3 ou 4.
Conclusão
Como os DGAs são difíceis de detectar com sistemas de detecção ou prevenção baseados em assinatura ou reputação, eles se tornaram bastante populares entre os desenvolvedores de malware.
Um sistema de detecção inteligente é necessário para realizar a detecção. Um excelente sistema de detecção DGA deve extrair informações de nomes de domínio de transações de DNS, realizar análise completa para detectar o status do DGA, verificar o status de registro de domínios suspeitos, correlacionar com inspeção de tráfego de rede para avaliar o nível de comprometimento e idealmente integrar com sistemas de prevenção para evitar mais compromisso. Para reduzir tanto os falsos positivos quanto os falsos negativos, um aprendizado de máquina deve ser seriamente considerado. Somente com inteligência abrangente e abrangente em cada estágio, a ameaça pode ser verdadeiramente melhorada.
Recursos
O repositório no Github de Andrey Abakumove contém algoritmos para gerar nomes de domínio, bem como dicionários de nomes de domínio maliciosos.
Nenhum comentário:
Postar um comentário