Fileless malware: o que é e como funciona o malware que não utiliza arquivos

Explicamos o que são ataques de fileless malware, em que consiste a técnica “Living off the Land”, como detetar uma infeção deste tipo de malware e, sobre todo, como se pode proteger.

É comum associar ao malware algum arquivo que descarregamos e executamos sem percebermos o que estamos a fazer. Embora esse conceito não seja completamente errado, a realidade é que também podemos encontrar malware que não requer nenhum artigo no sistema para executar a sua atividade maliciosa. Este tipo de ameaça é conhecido como fileless malware, um conceito que não é novo e que está em uso desde o início da década de 2000.

Os ataques de fileless malware fazem uso de ferramentas e processos próprios do sistema operativo através de uma técnica conhecida como “Living off the Land”, que permite levar adiante a sua atividade maliciosa utilizando elementos pré-instalados e sem instalar executáveis adicionais no sistema da vítima. Dito de outra forma, utiliza funcionalidades do sistema operativo contra o próprio utilizador. Isto dificulta a sua deteção, já que o código malicioso é executado através de processos legítimos.

Em que consiste a técnica “living off the land”?

Trata-se de uma técnica usada por hackers com conhecimentos mais avançados para que as suas atividades sejam mais difíceis de detetar no equipamento ou rede da vítima, já que lhes permite, entre outras coisas, escapar de uma série de controlos de segurança.

Consiste em fazer o upload e executar um código malicioso inteiramente da memória do computador sem afetar o sistema de arquivos. Consequentemente, gera zero ou poucos dispositivos forenses que podem ser analisados posteriormente.

É importante deixar claro que esta é uma técnica de pós-exploração, ou seja, que a vítima primeiro tem de ter desejado introduzir o código malicioso no seu sistema de algum modo. Por exemplo, ao abrir um arquivo de Microsoft Office com uma macro maliciosa embebida ou um documento PDF que inclua código javascript malicioso. Estes são vetores de infeção muito comuns, mas existem muitos outros.

Existe também a possibilidade de a ameaça ser 100% fileless se o hacker aproveitar alguma vulnerabilidade grave no sistema e o malware for carregado na memória unicamente através de pacotes de rede. Isto foi observado, por exemplo, com a backdoor SMB/Exploit.DoublePulsar, que aproveita uma vulnerabilidade no protocolo SMB 1.0. Uma ameaça continua ativa na América Latina atualmente.

A dificuldade em estabelecer persistência

Agora, os atacantes têm um problema. A memória RAM é volátil e é removida, por exemplo, quando o computador é reiniciado. Isso força, na maioria dos casos, os hackers a estabelecer algum mecanismo de persistência para os seus malwares. Embora alguns sejam mais sofisticados que outros, em todos os casos, podemos encontrar algum vestígio dessa atividade que nos permita determinar a sua presença na equipa.

Para além do caso mencionado de DoublePulsar, vimos recentemente esta técnica na campanha de malware “Operation Ghost” desenvolvida pelo grupo “The Dukes”, também conhecidos como ATP #29. Esta investigação foi publicada por investigadores da ESET em outubro deste ano. As backdoors fileless utilizadas por esta organização dedicada à espionagem informática são as RegDuke e POSHPY.

Mais à frente veremos como podemos utilizar as mesmas ferramentas que utilizam os hackers para auditar a nossa rede e nos defendermos deste tipo de ameaças.

Quais as ferramentas utilizadas para realizar ataques de fileless malware?

Como referimos antes, os hackers “vivem no terreno”, já que as ferramentas que veremos abaixo são instaladas e ativadas por defeito em qualquer computador que use o Windows como sistema operativo. Por este motivo, não precisam de usar as suas próprias ferramentas. Cada uma das ferramentas mencionadas abaixo permite executar uma variedade de tarefas legítimas, como seja a configuração e administração de computadores ou redes inteiras

  • Powershell: é uma poderosa linguagem de scripting, para além de um shell de linha de comando. Permite executar comandos e realizar um sem fim de atividades, como fazer o download de arquivos da Internet, enviar e-mails, modificar praticamente qualquer configuração do equipamento, seja local ou remotamente, manipular aplicações de Windows ou utilizar qualquer das ferramentas detalhadas abaixo nesta lista. Para além disso, permite-nos desenvolver os nossos próprios módulos ou instalar módulos de terceiro. É por esta enorme versatilidade que se trata de uma ferramenta muito atrativa tanto para administradores de rede como para hackers.
  • Windows Management Instrumentation (WMI) ou Common Information Model (CIM): para explicar de forma sucinta, CIM é um esquema desenvolvido por DMTF que os desenvolvedores de software podem seguir para favorecer a interoperabilidade entre qualquer sistema, rede, aplicação ou serviço. O WMI é a versão da Microsoft do esquema CIM e a sua maior diferença é que é proprietária e apenas pode ser utilizado em sistemas operativos Windows. O que cabe destacar é o Windows suporta ambos os esquemas e o seu uso pode ser intercambiável. A principal função de ambos é de criar, controlar, modificar ou eliminar objetos que representam tanto software como hardware e seus estados e configurações.
  • .NET Framework ou .NET Core: é a plataforma sobre a qual está construído o Powershell. Facilita a interação com objetos WMI, CIM, COM e DCOM e outros através das suas bibliotecas.
  • Registo de Windows: base de dados com configuração do sistema e das aplicações.

Vejamos um exemplo

Este exemplo teórico utiliza Powershell como mecanismo de pós-exploração e execução de código remotamente, e subscrições WMI como mecanismo de persistência.

O objetivo deste exemplo, que não se baseia em nenhum malware em particular, apesar dos exemplos serem abundantes, é ver-se claramente como funciona. Essa é uma prova do conceito do que um invasor pode executar no sistema usando essas técnicas. Por razões de simplicidade, o código não é ofuscado, embora, se se tratasse de um cenário real, certamente que seria.

  1. A vítima executa um documento de Office com uma macro incoporada. A macro chama a execução de duas instâncias do CMD da seguinte forma:

Flieless

  1. Neste caso, esta é a única instância em que o hacker necessita de utilizar arquivos. A partir de agora, tudo o que se segue passará da memória. Esses dois comandos criam duas novas instâncias do cmd.exe. O segundo, faz uma consulta ao conteúdo descarregado do servidor do hacker e executa-o no Powershell diretamente da memória. Se analisados com o ProcMon, esses dois processos não serão relacionados entre si.
  2. O código descarregado a partir da Internet poderia ser algo como o seguinte:

fileless

  1. O código cria um filtro de eventos WMI (uma condição): é muito mais específico que a agenda de tarefas do Windows. O evento pode ser: o início do sistema, o login de um utilizador específico, a execução de um arquivo ou praticamente qualquer coisa que se possa imaginar, uma vez que a maioria das ações executadas no Windows gera eventos WMI.

O código também cria um Consumidor de Evento (o que se executa): isto é o que efetivamente se vai realizar quando se cumpra uma condição, a aplicação que determinemos vai “consumir” o evento e atuar como consequência. Pode incluir o código de um script de Powershell malicioso ofuscado que, por sua vez, descarregue mais código a partir da Internet diretamente para a memória do equipamento.

Para além disso, cria uma União (relaciona um Filtro de Evento com um Consumidor de Evento): é o último passo necessário para que a tarefa se realize. Especifica qual o filtro de eventos que aciona qual o consumidor de evento.

  1. Feito isso, o hacker tem agora um mecanismo de persistência. A subscrição WMI poderia incluir código que, por sua vez, descarregue mais código a partir de um servidor que controla e este se executará periodicamente. Para além disso, terá a possibilidade de modificá-lo oportunamente, sem a necessidade de fazer alterações no equipamento da vítima.
  2. Portanto, se também usar o payload para eliminar o arquivo do Office que deu início ao ataque (ou se nos esquecemos por um segundo da sua existência) o único dispositivo forense que resta no equipamento são as subscrições WMI.

Como detetar uma infeção de fileless malware?

A resposta depende do tipo de malware e da política de logs e auditoria que se tenha adotado inicialmente. De um modo geral, se o malware se encarregou de gerar persistência no equipamento, o mais provável é que tenha criado entradas no registo, tarefas programadas ou subscrições WMI que podem ser identificáveis. Mas, se o malware não estabeleceu persistência pode acontecer não ser possível detetá-lo, salvo se se tenha contado com uma geração de logs correspondentes ao período antes do incidente.

Para casos de malware mais avançado como DoublePulsar, mesmo gerando logs a deteção pode ser difícil, já que a memória afetada pertence ao kernel do Windows e as aplicações não serão capazes de detetar esta atividade. Por este motivo, a análise do tráfego de rede e a prevenção da infeção seguindo os passos que mencionaremos mais à frente é fundamental.

As recomendações gerais são:

  • Gerar logs exaustivos da utilização de Powershell. Esta funcionalidade está ativada por defeito na versão 5 e posteriores. Procurar entradas suspeitas como a seguinte:
fileless
Exemplo de un log de evento malicioso
  • Controlar o repositório WMI para encontrar subscrições suspeitas utilizando Powershell. Exemplo:

fileless
Subscrição WMI maliciosa

Podemos inclusive criar as nossas próprias subscrições WMI defensivas que nos alertem sempre que são criadas novas subscrições.

  • Muitas destas tarefas podem-se automatizar. Sysmon da Sysinternals é uma boa opção para uso pessoal. Organizações de maior dimensão deveriam considerar a utilização de um sistema EDR dado o volume da informação gerada. Em ambos os casos, a chave será uma boa política de geração de logs e auditoria.

Como evitar a infeção de fileless malware?

  • Não abrir anexos que nos tenham chegado por e-mail se a fonte não for de confiança.
  • Desabilitar a execução de macros de forma automática no Office, já que é um mecanismo comum de propagação. As macros podem ser desabilitadas globalmente via Group Policy.
  • Utilizar soluções de segurança que analisem o tráfego de rede como a ESET Network Attack Prevention.
  • Utilizar soluções de segurança que analisem o comportamento suspeito na memória como a ESET Advanced Memory Scanner. Estas soluções são capazes de identificar malware que reside na memória.
  • Manter atualizado o sistema operativo e as aplicações instaladas.
  • Utilizar defesa em camadas (Anti-Spam e NIDS são algumas recomendações).

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here

*