Malwares que se utilizam de tecnologia fileless não são novidade, mas eles estão crescendo ano após ano. De acordo com relatório do Instituto Ponemon, 77% dos ciberataques de sucesso contra as empresas fazem uso de tecnologia fileless. Eles não são tão visíveis quando comparados com malwares tradicionais, empregam uma variedade de técnicas para se manterem persistentes e podem afetar negativamente a integridade dos processos de negócio de uma empresa e da infraestrutura da qual eles dependem.

Nesse artigo, vamos mostrar como as ameaças fileless funcionam e o que pode ser feito para evitá-las:

 

Liberando malwares via exploit de documentos

Ameaças Fileless podem entrar por caminhos tradicionais. Esses podem ser códigos macro maliciosos na forma de JavaScript ou VisualBasic scripts, contidos dentro de documentos do Office, PDFs, arquivos ou arquivos que pareçam legítimos. Uma vez abertos esses macros vão executar os scripts e em geral abusar de ferramentas legítimas como PowerShell para lançar, baixar e executar mais códigos, scripts ou payloads. Esses scripts são tipicamente executados por ferramentas como o PowerShell e escondidos, tornando desafiador o monitoramento de software para detectar as palavras-chave óbvias que trigam a execução.

Esses scripts podem abusar tanto do PowerShell para recuperar e lançar um executável no disco do sistema local ou lançar o código diretamente na memória. Nesse último caso, o ataque não é inteiramente fileless, já que requer o emprego de um arquivo propriamente dito e emprega os macros para ganhar uma ponta de lança inicial no sistema.

Fileless Malware 1

Fileless Malware 1

Usuários podem reduzir a exposição a essas ameaças ao praticar a higiene de segurança e propiciar um ambiente de trabalho mais consciente da cibersegurança. Isso inclui ser mais cauteloso com emails não solicitados ou arquivos, especialmente os que fazem os usuários permitir macros ou scripts.

 

Liberando as ameaças via exploits in-memory

Ameaças fileless podem ser carregadas e executadas diretamente na memória. Isso torna a detecção do antimalware mais difícil se comparada com outras formas de malware. Diversas técnicas podem ser empregadas para que essa ameaça se execute na memória. A mais usada é a injeção de código maliciosa, muitas vezes empregada em um processo legítimo para evitar a detecção. Eles também podem abusar das ferramentas de administração do sistema e APIs como PowerShell, PsExec, WMI e outros para tomar para si o privilégio do processo legítimo na memória.

Reflective DLL injection é a forma mais prevalente dessa técnica usada para exploits in-memory. Isso envolve o lançamento de código malicioso em um DLL para um processo no host, assim eliminando a necessidade do DLL ser escrito no sistema.

O Eternal Blue é um exemplo real de um exploit in-memory. O Eternal Blue toma vantagem de uma vulnerabilidade no protocolo SMB 1, que leva os atacantes a ler as aplicações, acessar serviços e escrever arquivos. Os atacantes podem injetar seu código no lsass.exe local. um arquivo de sistema legítimo e crucial que gerencia credenciais, logins e tokens de acesso. Os atacantes podem usar isso como trampolim para outros ataques futuros.

Fileless Malware 2

Fileless Malware 2

Não existe bala de prata para detectar e prevenir ataques que usam exploit in-memory. Contar com uma defesa profunda, em camadas, é importante. Mantenha o sistema e suas aplicações atualizadas, garanta a segurança das ferramentas de administração de sistema, implemente camadas adicionais de segurança como monitoramento, sandbox, firewalls e IPS. Também monitore de forma proativa endpoints e a rede.

 

Instalando malwares via ataques baseados em script

Ameaças fileless dependem de scripts os quais os shellcodes ou binários são escondidos, compilados ou integrados de forma que não criam arquivos no disco. Isso deixa-os interagir ou afetar o sistema operacional ou aplicações ao mesmo tempo em que torna a detecção tradicional de antimalware mais difícil. Ataques baseados em script também são versáteis, uma vez que eles podem ser lançados de um arquivo ou diretamente da linha de comando (via PowerShell, WScript, JavaScript, VBScript, mshta, etc.). Essa flexibilidade também é o que torna essas ameaças mais evasivas. Por exemplo, uma ameaça fileless pode dividir como os scripts são feitos, ou se espalhar por diferentes processos.

Ataques baseados em scripts usam a interpretação de scripts para levar a uma execução de código. Também existem scripts maliciosos desenhados para explorar vulnerabilidades ou falhas de design em aplicações como Office. Os atacantes podem executar scripts remotamente na memória para bypassar o endpoint. Essa tem sido a técnica escolhida por diversos malwares fileless, como KOVTER, POWMET e FAREIT.

Fileless Malware 3

Fileless Malware 3

Muitas ameaças fileless abusam do PowerShell em particular porque ele oferece flexibilidade e acessibilidade. É uma feature presente em muitos sistemas operacionais Windows, e, no caso da versão open-source (PowerShell Core), multiplataforma. O PowerShell também é capaz de acessar APIs que executam importantes sistemas e aplicações, assim como objetivos do sistema operacional. Ele não possui execução nativa no disco, de forma que pode ser abusado para, de forma fileless, buscar e entregar arquivos ou executar outros comandos maliciosos.

Usuários e empresas podem reduzir a exposição a ataques baseados em script ao adotar o princípio do menor privilégio possível. Restrinja, dificulte e garanta a segurança das ferramentas de administração de sistema. Por exemplo, o PowerShell possui mecanismos de segurança que podem auxiliar na análise de comportamento anômalo, também pode ser configurado para detectar comandos tipicamente usados por malwares. Desabilite ou delete plugins desatualizados e componentes que podem ser usados como portas de entrada ao sistema.

 

Instalando malware pelo abuso de ferramentas de TI e sysadmin

Ameaças fileless abusam de features e de ferramentas de administração de sistema, muitas dessas construídas dentro do sistema operacional. Um exemplo recente é como os atacantes usam uma combinação de WMIC e CertUtil – ambos são legítimos para o sistema, para instalar um malware de roubo de informações.

Profit, e ataques de ciberespionagem costumam abusar de utilitários de linhas de comando como o Microsoft Register Server (regsvr32) para carregar e executar DLLs maliciosas, ou instalar e modificar versões de ferramentas de pentest (como Cobalt Strike) para comprometer ainda mais os sistemas.

Fileless Malware 4

Fileless Malware 4

Abusar dessas ferramentas provê às ameaças fileless pontos de trampolim na cadeia de ataques ao invés de usar executáveis complicados. Eles podem utilizar de forma inadequada essas ferramentas para buscar payloads, baixar arquivos, lançar malwares adicionais, roubar e vazar dados e se mover lateralmente. E, como essas ameaças residem em ferramentas legítimas, elas tornam-se difíceis de detectar.

 

Persistindo no sistema com técnicas de fileless

Uma vez que o malware consegue algum ponto de entrada no endpoint, rede ou servidor, ele tipicamente tenta permanecer ali o máximo possível de tempo. Ameaças fileless usam diferentes e únicas técnicas para se estabelecerem e persistirem no sistema, muitas vezes criando diversos pontos diferentes onde os payloads podem ser reiniciados. Essas técnicas também são abusadas em ferramentas e utilitários integrantes do Windows.

Um mecanismo comum de persistência é armazenar código malicioso ou arquivos no registro de sistema, que é na maior parte das vezes usado no armazenamento de dados e configurações assim como associações entre arquivos e aplicações. Ao armazenar código malicioso nas chaves de registro, ameaças podem ser executadas de forma fileless, ou quando o sistema se inicia, ou apenas se alguns arquivos específicos são clicados. Um exemplo real é a versão fileless do malware KOVTER. Ele cria uma entrada de registro contendo código malicioso que será injetado pelo PowerShell em um processo legítimo.

Fileless Malware 5

Fileless Malware 5

Outra técnica para manter a persistência é abusar de ferramentas como o Windows Task Scheduler, que permite programas e scripts serem lançados em um período pré-determinado. No caso de malware fileless, tarefas programadas são criadas em ordem para iniciar a execução do malware. Essa técnica também é utilizada por outros tipos de malware, como certos trojans de roubo de informações e malware de PoS, evitando ser detectado por técnicas de sandbox. Adicionalmente, os atacantes podem setar essas tarefas agendadas para de forma recorrente criar registros e automaticamente reinfectar o sistema.

Mais recentemente, atacantes estão abusando do WMI para manter a persistência.O WMI é usado para gerenciar dispositivos e sistemas conectados à rede. Nas mãos dos criminosos, ele pode ser usado para movimento lateral, execução de códigos e persistência. Tipicamente, malwares fileless vão usar o repositório do WMI para armazenar scripts maliciosos que entram em jogo usando as próprias funções do WMI. Isso inclui: WmiPrvSE, que provê informação de gerenciamento; Scrcons, uma aplicação usada para executar scripts de WMI; e Wmic, um utilitário de linha de comando usado para permitir que objetos interajam com o WMI.

Monitorar proativamente redes e endpoints que estão conectados ajuda a diminuir a superfície de exposição e o problema de reinfecção. Por exemplo, administradores de sistema, assim como as equipes de segurança podem usar a ferramenta Microsoft Autoruns para examinar registros chave e identificar entradas maliciosas. O WMI por sua vez possui funções próprias que podem ser usadas para detectar e prevenir esse tipo de problema. Por fim, o PowerShell também tem capacidades similares de endurecer as proteções ou detectar rotinas relacionadas a malwares.