Brincando de esconde e esconde – com malwares sem arquivos

Códigos maliciosos… chegam por todo os lugares…

É um pouco parecido com um gás, que sempre preenche o espaço em que se encontra, mas diferente: sempre passa por “buracos” (vulnerabilidades) em um sistema de computador. Portanto, nosso trabalho (aliás, um deles) é encontrar esses buracos e abri-los. Nosso objetivo é fazer isso de forma proativa; isto é, antes que o malware os tenha descoberto ainda. E se o malware encontrar esses buracos, estaremos aguardando, prontos para atacá-lo.

Na verdade, é uma proteção proativa e a capacidade de prever as ações dos invasores e criar uma barreira antecipada que possa distinguir a cibersegurança genuinamente de excelência e alta tecnologia do marketing BS.

Hoje quero falar sobre outra maneira pela qual nossa proteção proativa protege contra outro tipo de malware, particularmente astuto. Sim, quero falar sobre algo chamado código malicioso sem arquivo (também conhecido como sem corpo) – uma raça perigosa de malware fantasma que aprendeu a usar as desvantagens de arquitetura do Windows para infectar computadores. E sobre a nossa tecnologia patenteada que combate essa ciberdoença específica. E farei como você gosta: coisas complexas explicadas simplesmente, de maneira leve e emocionante de um ciberthriller com elementos de suspense).

Primeiro, o que significa sem arquivo?

Bem, o código sem arquivo, uma vez inserido em um sistema de computador, não cria cópias de si mesmo na forma de arquivos em disco, evitando assim a detecção por métodos tradicionais como, por exemplo, com um monitor antivírus.

Então, como existe esse ‘malware fantasma’ dentro de um sistema? Na verdade, ele reside na memória de processos confiáveis! Sim. Eek.

No Windows (na verdade, não apenas no Windows), sempre existiu a capacidade de executar código dinâmico, o qual, em particular, é usado para compilação just-in-time; isto é, transformar o código do programa em código de máquina não imediatamente, mas como e quando for necessário. Essa abordagem aumenta a velocidade de execução de alguns aplicativos. E para oferecer suporte a essa funcionalidade, o Windows permite que os aplicativos insiram o código na memória de processo (ou mesmo em outra memória confiável de processo) e o executem.

Dificilmente isso pode ser considerado uma ótima ideia, do ponto de vista de segurança, mas o que você pode fazer? É assim que milhões de aplicativos escritos em Java, .NET, PHP, Python e outras linguagens e para outras plataformas estão trabalhando há décadas.

Previsivelmente, os cibercriminosos aproveitaram a capacidade de usar código dinâmico, inventando vários métodos para abusar dele. E um dos métodos mais convenientes e, portanto, mais difundidos que eles usam, é algo chamado injeção reflexiva. É o quê?! Deixe-me explicar (isso é bastante interessante, por favor, tenha paciência comigo:)…

Iniciar um aplicativo ao clicar no ícone – bem simples e direto, certo? Parece simples, mas, na verdade, existe todo o tipo de coisas: um carregador de sistema é acionado, no qual pega o respectivo arquivo do disco, carrega-o na memória e executa-o. E esse processo padrão é controlado por monitores antivírus, que verificam a segurança do aplicativo em tempo real.

Agora, quando há uma “reflexão”, o código é carregado ignorando o carregador do sistema (e, portanto, também ignorando o monitor antivírus). O código é colocado diretamente na memória de um processo confiável, criando um “reflexo” do módulo executável original. Essa reflexão pode ser executada como um módulo real carregado por um método padrão, mas não estará registrado na lista de módulos e, como mencionado acima, não possui um arquivo em disco.

Além disso, diferentemente de outras técnicas para injetar código (por exemplo, via shellcode), uma injeção de reflexão permite criar códigos funcionalmente avançados em linguagens de programação de alto nível e estruturas de desenvolvimento padrão sem praticamente nenhuma limitação. Então, o que você tem é: (i) nenhum arquivo, (ii) ocultação por trás de processos confiáveis, (iii) invisibilidade às tecnologias de proteção tradicionais e (iv) caminho livre para causar estragos.

Então, naturalmente, as injeções reflexivas foram um mega sucesso entre os desenvolvedores de códigos maliciosos: primeiro eles apareceram em pacotes de exploração, depois ciberespiões entraram no jogo (por exemplo, Lazarus e Turla) e depois cibercriminosos avançados (como uma forma prática e legítima de executar códigos complexos!), e depois pequenos cibercriminosos.

Agora, do outro lado das barricadas, encontrar uma infecção sem arquivos não é um passeio em um ciberparque. Portanto, não é de se admirar que a maioria das marcas de cibersegurança não estejam muito entusiasmadas. Algumas dificilmente conseguem fazer isso.

Nosso ‘paradigma’ de proteção multinível tem essa ameaça coberta por várias tecnologias, que controlam todos os estágios e vetores de ataque: análise comportamental, verificações especiais de áreas críticas, proteção automática contra explorações. Mas o principal é o seguinte: nossas tecnologias patenteadas (US 10691800, RU 2665910, RU 2659738) de análise de memória para descobrir atividades suspeitas que podem ser usadas por malwares sem arquivos.

Exemplo: nosso System Watcher (que protege proativamente os usuários contra o WannaCry e outros ciberataques), que monitora constantemente a atividade dos aplicativos em um computador, encontra um certo processo confiável executando ações incomuns ou críticas à segurança. Nesse caso, examinamos o evento com muito cuidado, em particular descobrindo em qual memória o código que causou o evento está localizado. Se virmos um endereço suspeito – analisamos mais profundamente para ver se há algum código reflexivo presente. Portanto, não procuramos uma agulha no palheiro – vasculhando cegamente toda a memória. Em vez disso, conduzimos uma análise direcionada deliberada de endereços suspeitos, de acordo com um conjunto de regras. E é assim que descobrimos de maneira rápida e confiável o pequeno e astuto malware sem arquivo.

LEIA COMENTÁRIOS 0
Deixe um comentário.