Para evitar a detecção por soluções de segurança, cibercriminosos utilizam diversas técnicas para mascarar suas atividades maliciosas. Um dos métodos cada vez mais vistos nos últimos anos em ataques a sistemas Windows é o sequestro de DLL: substituição de bibliotecas de vínculo dinâmico (DLLs) por bibliotecas maliciosas. As ferramentas de segurança tradicionais muitas vezes não detectam essa técnica. Para resolver esse problema, nossos colegas do Kaspersky AI Technology Research Center desenvolveram um modelo de machine learning capaz de detectar sequestro de DLL com alta precisão. Esse modelo já foi implementado na versão mais recente do nosso [SIEM Placeholder] sistema de SIEM, a Kaspersky Unified Monitoring and Analysis Platform [/placeholder]. Nesta postagem, explicamos os desafios da detecção de sequestro de DLL e como nossa tecnologia os supera.
Como o sequestro de DLL funciona e por que é difícil detectá-lo
A execução repentina de um arquivo desconhecido em um ambiente Windows inevitavelmente chama a atenção das ferramentas de segurança, ou é simplesmente bloqueada. Basicamente, o sequestro de DLL é uma tentativa de fazer um arquivo malicioso parecer um arquivo legítimo e confiável. Há diversas variações de sequestro de DLL: uma é quando os atacantes distribuem uma biblioteca maliciosa junto com software legítimo (DLL sideloading) para que o software o execute; outra é quando os atacantes substituem DLLs padrão que são chamadas por programas já instalados no computador; e também quando os atacantes manipulam mecanismos do sistema que determinam a localização da biblioteca que um processo carrega e executa. Como resultado, o arquivo de DLL malicioso é executado por um processo legítimo dentro de seu próprio espaço de endereçamento e com seus privilégios, levando os sistemas tradicionais de proteção de endpoint a considerarem essa atividade legítima. É por isso que nossos especialistas decidiram combater essa ameaça com o uso de tecnologias de IA.
Detecção de sequestro de DLL com ML
Os especialistas do AI Technology Research Center treinaram um modelo de ML para detectar sequestros de DLL com base em informações indiretas sobre a biblioteca e o processo que a chamou. Eles identificaram os principais indicadores de uma tentativa de manipular uma biblioteca: se o arquivo executável e a biblioteca estão localizados em caminhos padrão, se o arquivo foi renomeado, se o tamanho e a estrutura da biblioteca foram alterados, se sua assinatura digital está intacta e assim por diante. Inicialmente, os especialistas treinaram o modelo com dados sobre o carregamento de bibliotecas de vínculo dinâmico, provenientes de sistemas internos de análise automática e de telemetria anônima da Kaspersky Security Network (KSN), fornecida voluntariamente por nossos usuários. Para rotular os dados, nossos especialistas utilizaram informações de nossos bancos de reputação de arquivos.
Como o primeiro modelo apresentou baixa precisão, nossos especialistas realizaram diversas iterações antes de integrá-lo à solução, aprimorando tanto o conjunto de dados de treinamento quanto os indicadores de sequestro de DLL. Como resultado, o modelo agora detecta essa técnica com alta precisão. No Securelist, nossos colegas publicaram um artigo detalhado sobre como eles desenvolveram essa tecnologia, desde a hipótese inicial até os testes no [MDR placeholder] Kaspersky Managed Detection and Response [/placeholder], e finalmente a aplicação prática em nossa plataforma de SIEM.
Detecção de sequestros de DLL no Kaspersky SIEM
No sistema SIEM, o modelo analisa os metadados das DLLs carregadas e dos processos que as acionaram a partir da telemetria, sinaliza casos suspeitos e, em seguida, valida seu veredito cruzando as informações com os dados da nuvem KSN. Isso não apenas melhora a precisão da detecção de sequestros de DLL, mas também reduz os falsos positivos. O modelo pode operar no subsistema de correlação e no subsistema de coleta de eventos.
No primeiro caso, ele verifica apenas os eventos que já acionaram regras de correlação. Isso permite uma avaliação de ameaças mais precisa e uma geração de alertas mais rápida, se necessário. Como nem todos os eventos são verificados, o volume de consultas na nuvem não afeta significativamente a velocidade de resposta do modelo.
No segundo caso, o modelo processa todos os eventos de carregamento da biblioteca que atendem a determinadas condições. Esse método consome mais recursos, mas é essencial para a identificação proativa de ameaças de forma retrospectiva.
Em outra postagem no Securelist, especialistas do grupo de Pesquisa Antimalware explicaram em detalhes como o modelo de detecção de sequestro de DLL ajuda o Kaspersky SIEM a reconhecer ataques direcionados, incluindo casos reais de detecção precoce de incidentes.
O mais importante é que a precisão do modelo continuará a aumentar, à medida que se acumulam mais dados sobre ameaças e processos legítimos e os algoritmos da KSN evoluem.
SIEM
Dicas