Partilhar via


Ameaças sem ficheiros

O que são exatamente ameaças sem ficheiros? O termo "sem ficheiros" sugere que uma ameaça não vem num ficheiro, como uma backdoor que reside apenas na memória de uma máquina. No entanto, não existe uma definição para software maligno sem ficheiros. O termo é utilizado amplamente e, por vezes, para descrever famílias de software maligno que dependem de ficheiros para operar.

Os ataques envolvem várias fases para funcionalidades como execução, persistência ou roubo de informações. Algumas partes da cadeia de ataques podem não ter ficheiros, enquanto outras podem envolver o sistema de ficheiros de alguma forma.

Para maior clareza, as ameaças sem ficheiros são agrupadas em diferentes categorias.

Diagrama abrangente de software maligno sem ficheiros.
Figura 1. Diagrama abrangente de software maligno sem ficheiros

As ameaças sem ficheiros podem ser classificadas pelo respetivo ponto de entrada, o que indica como o software maligno sem ficheiros pode ser recebido num computador. Podem chegar através de uma exploração, através de hardware comprometido ou através da execução regular de aplicações e scripts.

Em seguida, liste a forma de ponto de entrada. Por exemplo, as explorações podem basear-se em ficheiros ou dados de rede, os periféricos PCI são um tipo de vetor de hardware e os scripts e executáveis são subcategorias do vetor de execução.

Por fim, classifique o anfitrião da infecção. Por exemplo, uma aplicação Flash pode conter uma variedade de ameaças, como uma exploração, um firmware simples executável e malicioso de um dispositivo de hardware.

Classificar ajuda-o a dividir e categorizar os vários tipos de ameaças sem ficheiros. Alguns são mais perigosos, mas também mais difíceis de implementar, enquanto outros são mais utilizados apesar (ou precisamente por) não serem muito avançados.

A partir desta categorização, pode recolher três tipos principais de ameaças sem ficheiros com base na quantidade de impressões digitais que podem deixar em computadores infetados.

Tipo I: nenhuma atividade de ficheiro realizada

Um software maligno totalmente sem ficheiros pode ser considerado um que nunca requer a escrita de um ficheiro no disco. Como é que esse software maligno infetaria uma máquina? Um exemplo é o local onde uma máquina de destino recebe pacotes de rede maliciosos que exploram a vulnerabilidade EternalBlue. A vulnerabilidade permite a instalação da backdoor DoublePulsar, que acaba por residir apenas na memória do kernel. Neste caso, não existe nenhum ficheiro ou dados escritos num ficheiro.

Um dispositivo comprometido também pode ter código malicioso oculto no firmware do dispositivo (como um BIOS), um periférico USB (como o ataque BadUSB) ou no firmware de uma placa de rede. Todos estes exemplos não requerem a execução de um ficheiro no disco e, teoricamente, só podem estar na memória. O código malicioso sobreviveria a reinícios, reformatas de discos e reinstalações do SO.

As infecções deste tipo podem ser particularmente difíceis de detetar porque a maioria dos produtos antivírus não tem a capacidade de inspecionar o firmware. Nos casos em que um produto tem a capacidade de inspecionar e detetar firmware malicioso, ainda existem desafios significativos associados à remediação de ameaças a este nível. Este tipo de software maligno sem ficheiros requer níveis elevados de sofisticação e, muitas vezes, depende de uma configuração específica de hardware ou software. Não é um vetor de ataque que pode ser explorado de forma fácil e fiável. Embora sejam perigosas, as ameaças deste tipo são invulgares e não práticas para a maioria dos ataques.

Tipo II: atividade de ficheiro indireto

Existem outras formas de o software maligno alcançar a presença sem ficheiros num computador sem precisar de um esforço de engenharia significativo. O software maligno sem ficheiros deste tipo não escreve diretamente ficheiros no sistema de ficheiros, mas pode acabar por utilizar ficheiros indiretamente. Por exemplo, com os atacantes de backdoor Poshspy instalados um comando malicioso do PowerShell no repositório WMI e configurado um filtro WMI para executar o comando periodicamente.

É possível efetuar essa instalação através da linha de comandos sem precisar que uma backdoor já esteja no ficheiro. O software maligno pode ser instalado e executado teoricamente sem nunca tocar no sistema de ficheiros. No entanto, o repositório WMI é armazenado num ficheiro físico numa área de armazenamento central gerida pelo Gestor de Objetos CIM e, normalmente, contém dados legítimos. Embora a cadeia de infeções utilize tecnicamente um ficheiro físico, é considerada um ataque sem ficheiros porque o repositório WMI é um contentor de dados multiusos que não pode ser detetado e removido.

Tipo III: ficheiros necessários para operar

Alguns softwares maligno podem ter uma espécie de persistência sem ficheiros, mas não sem utilizar ficheiros para funcionar. Um exemplo para este cenário é Kovter, que cria um processador de verbos aberto de shell no registo para uma extensão de ficheiro aleatório. Abrir um ficheiro com essa extensão levará à execução de um script através da ferramenta legítima mshta.exe.

Imagem da chave de registo do Kovter.
Figura 2. Chave de registo do Kovter

Quando o verbo aberto é invocado, o comando associado do registo é iniciado, o que resulta na execução de um script pequeno. Este script lê dados de uma chave de registo adicional e executa-os, por sua vez, levando ao carregamento do payload final. No entanto, para acionar o verbo aberto em primeiro lugar, Kovter tem de remover um ficheiro com a mesma extensão visada pelo verbo (no exemplo acima, a extensão é .bbf5590fd). Também tem de definir uma chave de auto-predefinição configurada para abrir esse ficheiro quando o computador é iniciado.

Kovter é considerado uma ameaça sem ficheiros porque o sistema de ficheiros não é prático. Os ficheiros com extensões aleatórias contêm dados de lixo que não são utilizáveis para verificar a presença da ameaça. Os ficheiros que armazenam o registo são contentores que não podem ser detetados e eliminados se estiver presente conteúdo malicioso.

Categorizar ameaças sem ficheiros por anfitrião de infecção

Depois de descrevermos as amplas categorias, podemos agora aprofundar os detalhes e fornecer uma discriminação dos anfitriões de infecção. Esta classificação abrangente abrange o panorama do que é normalmente referido como software maligno sem ficheiros. Impulsiona os nossos esforços para pesquisar e desenvolver novas funcionalidades de proteção que neutralizam classes de ataques e garantem que o malware não fica em vantagem na corrida ao armamento.

Exploits

Baseado em ficheiros (Tipo III: executável, Flash, Java, documentos): um ficheiro inicial pode explorar o sistema operativo, o browser, o motor Java, o motor Flash, etc. para executar um código shell e fornecer um payload na memória. Embora o payload não tenha ficheiros, o vetor de entrada inicial é um ficheiro.

Baseado na rede (Tipo I): uma comunicação de rede que tira partido de uma vulnerabilidade no computador de destino pode alcançar a execução de código no contexto de uma aplicação ou do kernel. Um exemplo é o WannaCry, que explora uma vulnerabilidade anteriormente corrigida no protocolo SMB para fornecer uma backdoor dentro da memória de kernel.

Hardware

Baseado no dispositivo (Tipo I: placa de rede, disco rígido): dispositivos como discos rígidos e cartões de rede necessitam de chipsets e software dedicado para funcionar. O software que reside e está em execução no chipset de um dispositivo chama-se firmware. Embora seja uma tarefa complexa, o firmware pode ser infetado por software maligno.

Baseado na CPU (Tipo I): as CPUs modernas são complexas e podem incluir subsistemas a executar firmware para fins de gestão. Esse firmware pode ser vulnerável a sequestros e permitir a execução de código malicioso que funcionaria a partir da CPU. Em dezembro de 2017, dois investigadores relataram uma vulnerabilidade que pode permitir que os atacantes executem código dentro do Motor de Gestão (ME) presente em qualquer CPU moderna da Intel. Entretanto, observou-se que o grupo de atacantes PLATINUM tem a capacidade de utilizar a Tecnologia de Gestão Ativa (AMT) da Intel para realizar comunicações de rede invisíveis, ignorando o sistema operativo instalado. A ME e a AMT são essencialmente microcomputadores autónomos que vivem dentro da CPU e que operam a um nível muito baixo. Uma vez que a finalidade destas tecnologias é proporcionar capacidade de gestão remota, têm acesso direto ao hardware, são independentes do sistema operativo e podem ser executadas mesmo que o computador esteja desativado.

Além de serem vulneráveis ao nível do firmware, as CPUs podem ser fabricadas com backdoors inseridos diretamente nos circuitos de hardware. Este ataque foi investigado e provou ser possível no passado. Foi comunicado que determinados modelos de processadores x86 contêm um núcleo de CPU baseado em RISC secundário que pode fornecer efetivamente uma backdoor através da qual as aplicações regulares podem obter execução privilegiada.

Baseado em USB (Tipo I): os dispositivos USB de todos os tipos podem ser reprogramados com firmware malicioso capaz de interagir com o sistema operativo de formas nefastas. Por exemplo, a técnica BadUSB permite que uma pen USB reprogramada atue como um teclado que envia comandos para máquinas através de batimentos de teclas ou como uma placa de rede que pode redirecionar o tráfego à vontade.

Baseado em BIOS (Tipo I): um BIOS é um firmware em execução dentro de um chipset. É executado quando uma máquina é ligada, inicializa o hardware e, em seguida, transfere o controlo para o setor de arranque. O BIOS é um componente importante que opera a um nível baixo e é executado antes do setor de arranque. É possível reprogramar o firmware do BIOS com código malicioso, como aconteceu no passado com o rootkit Mebromi.

Com base no hipervisor (Tipo I): as CPUs modernas fornecem suporte para hipervisores de hardware, permitindo que o sistema operativo crie máquinas virtuais robustas. Uma máquina virtual é executada num ambiente confinado e simulado e, em teoria, desconhece a emulação. Um software maligno que assuma o controlo de uma máquina pode implementar um pequeno hipervisor para se ocultar fora do âmbito do sistema operativo em execução. Software maligno deste tipo foi teorizado no passado e, eventualmente, foram observados rootkits de hipervisores reais, embora poucos sejam conhecidos até à data.

Execução e injeção

Baseado em ficheiros (Tipo III: executáveis, DLLs, ficheiros LNK, tarefas agendadas): este é o vetor de execução padrão. Um executável simples pode ser iniciado como um software maligno de primeira fase para executar um payload adicional na memória ou injetado noutros processos de execução legítimos.

Baseado em macros (Tipo III: documentos do Office): o idioma do VBA é uma ferramenta flexível e poderosa concebida para automatizar tarefas de edição e adicionar funcionalidades dinâmicas a documentos. Como tal, pode ser abusado pelos atacantes para realizar operações maliciosas, como descodificar, executar ou injetar um payload executável, ou até mesmo implementar um ransomware completo, como no caso do qkG. As macros são executadas no contexto de um processo do Office (por exemplo, Winword.exe) e implementadas num idioma de scripting. Não há nenhum executável binário que um antivírus possa inspecionar. Embora as aplicações do Office exijam o consentimento explícito do utilizador para executar macros a partir de um documento, os atacantes utilizam técnicas de engenharia social para enganar os utilizadores a permitir a execução de macros.

Baseado em scripts (Tipo II: ficheiro, serviço, registo, repositório WMI, shell): as linguagens de scripting JavaScript, VBScript e PowerShell estão disponíveis por predefinição nas plataformas do Windows. Os scripts têm as mesmas vantagens que as macros, são ficheiros textuais (não executáveis binários) e são executados no contexto do interpretador (como wscript.exe, powershell.exe), que é um componente limpo e legítimo. Os scripts são versáteis e podem ser executados a partir de um ficheiro (fazendo duplo clique nos mesmos) ou executados diretamente na linha de comandos de um interpretador. A execução na linha de comandos permite que o software maligno codifija scripts maliciosos como serviços de início automático dentro de chaves de registo de autorunidade como subscrições de eventos WMI do repositório WMI. Além disso, um atacante que tenha obtido acesso a uma máquina infetada pode introduzir o script na linha de comandos.

Baseado em disco (Tipo II: Registo de Arranque): o Registo de Arranque é o primeiro setor de um disco ou volume e contém o código executável necessário para iniciar o processo de arranque do sistema operativo. Ameaças como a Petya são capazes de infetar o Registo de Arranque ao substituí-lo com código malicioso. Quando a máquina virtual é iniciada, o software maligno ganha imediatamente controlo. O Registo de Arranque reside fora do sistema de ficheiros, mas é acessível pelo sistema operativo. Os produtos antivírus modernos têm a capacidade de analisá-lo e restaurá-lo.

Derrotar software maligno sem ficheiros

Na Microsoft, monitorizamos ativamente o panorama da segurança para identificar novas tendências de ameaças e desenvolver soluções para mitigar classes de ameaças. Instrumentamos proteções duráveis que são eficazes contra uma vasta gama de ameaças. Através da Interface de Análise AntiMalware (AMSI), monitorização de comportamento, análise de memória e proteção do setor de arranque, Microsoft Defender para Endpoint podem inspecionar ameaças sem ficheiros, mesmo com uma forte obfuscação. As tecnologias de machine learning na cloud permitem-nos dimensionar estas proteções contra ameaças novas e emergentes.

Para saber mais, leia: Fora da vista, mas não invisível: Derrotar software maligno sem ficheiros com monitorização de comportamento, AMSI e AV de próxima geração

Recursos e informações adicionais

Saiba como implementar capacidades de proteção contra ameaças em Microsoft 365 E5.