Saltar para o conteúdo
← O malware e a internet oculta

Lição 4 de 7 · 8 min

Rootkits: software malicioso que se esconde de si

A função de um rootkit é manter-se escondido e manter-se no lugar. Veja como funcionam os rootkits, porque é que quanto mais fundo estão mais perigosos são e como o macOS moderno lhes dificulta muito o trabalho.

A maior parte do software malicioso quer fazer alguma coisa: roubar, cifrar, espiar. Um rootkit quer não ser visto enquanto isso acontece. O NIST define um rootkit como um conjunto de ferramentas usado por um atacante depois de obter acesso de nível root a uma máquina, para esconder as atividades do atacante e manter o acesso privilegiado por meios encobertos. O nome vem do Unix, onde “root” é a conta de administrador todo-poderosa, e um “kit” era o conjunto de ferramentas modificadas que um intruso deixava para manter esse poder discretamente.

Duas tarefas: persistência e dissimulação

Um rootkit combina normalmente duas capacidades. A persistência significa sobreviver a reinícios e atualizações, para que o atacante não perca o acesso. A dissimulação significa esconder ficheiros, processos e ligações de rede das próprias ferramentas que usaria para os procurar. O MITRE ATT&CK descreve o segundo truque diretamente: os rootkits escondem a presença de programas, ficheiros, ligações de rede e serviços intercetando e modificando as chamadas do sistema operativo que os reportam. Se a parte do sistema a que pergunta “o que está a correr?” foi adulterada, pode simplesmente omitir a resposta.

Quanto mais fundo, mais difícil de encontrar

NívelOnde viveDificuldade de deteção e remoção
Nível de utilizadorSubstitui ou interceta programas e bibliotecas comuns que correm com a sua contaDifícil, mas ferramentas com mais privilégios conseguem muitas vezes detetar a adulteração
Nível de kernelCarrega-se no núcleo do sistema operativo, onde pode mentir a todos os programasMuito difícil: o próprio sistema reporta informação falsa
Nível de arranque e firmwareArranca antes do sistema operativo, no processo de arranque ou no firmware de um dispositivoO mais difícil: pode sobreviver a uma reinstalação completa do sistema operativo

A regra geral é que o código que corre num nível mais baixo e mais privilegiado consegue enganar o código que corre acima dele. É por isso que os rootkits apontam o mais baixo possível, e é por isso que os defensores investem tanto esforço em tornar os níveis mais baixos de um computador resistentes a adulterações.

Como o macOS reage

O macOS moderno foi construído para negar aos rootkits os sítios onde costumavam esconder-se. A Apple documenta várias camadas no seu guia de Segurança da Plataforma:

  • A Proteção da Integridade do Sistema (SIP) impede até a conta de administrador de modificar partes protegidas do sistema, como pastas e processos do sistema. A Apple recomenda mantê-la ativa.
  • O volume do sistema é selado e assinado: no arranque, o macOS verifica se os ficheiros do sistema são exatamente os que a Apple distribuiu e recusa usar um sistema modificado.
  • O arranque seguro nos Macs com Apple silicon (e nos Macs com o chip T2) verifica cada etapa do processo de arranque antes de a executar, para que nenhum código se consiga infiltrar antes do sistema operativo.
  • As extensões de kernel de terceiros estão restringidas e exigem aprovação explícita; a Apple passou a maior parte do que faziam para extensões de sistema, que correm fora do kernel.

Em conjunto, estas camadas tornam o rootkit de kernel clássico muito mais difícil de instalar num Mac atual com as definições predefinidas. É também por isso que os atacantes tendem hoje a ficar ao nível do utilizador e a apoiar-se em truques de persistência como elementos de início de sessão e agentes de arranque, que não precisam de quebrar os selos do sistema.

Persistência que pode verificar por si

Como os rootkits profundos são difíceis de instalar, a maior parte da persistência nos Macs de hoje é visível se souber onde procurar. O macOS lista os elementos de início de sessão e os elementos em segundo plano nas Definições do Sistema, em Geral e depois Elementos de início de sessão e extensões, e avisa quando é acrescentado um novo elemento em segundo plano. Tudo o que lá estiver e que não reconheça merece um olhar mais atento. O MITRE ATT&CK cataloga os launch agents e launch daemons como técnicas de persistência comuns no macOS exatamente por esta razão.

Porque é que a rede continua a dizer a verdade

Um rootkit pode mentir aos programas da mesma máquina, mas normalmente continua a precisar de falar com o seu operador. Esse tráfego tem de atravessar a rede. Uma firewall por app que está na própria camada de filtragem do sistema operativo vê as ligações à medida que o sistema as trata, e um router ou outro dispositivo na rede vê-as de fora, onde o rootkit não tem controlo. O filtro de rede da FireAI é uma extensão de sistema da Apple; mostra que app está por trás de cada ligação e pergunta antes de novas apps se ligarem. Não é um detetor de rootkits e não consegue ver através de um kernel comprometido, mas tráfego inexplicado de um processo que não consegue justificar é um dos sinais clássicos de que algo se está a esconder.

Não só computadores: routers e outros dispositivos

Os implantes ao estilo rootkit não se limitam aos portáteis. Os routers domésticos, as caixas de armazenamento em rede e outros dispositivos sempre ligados correm os seus próprios pequenos sistemas operativos, muitas vezes atualizados raramente ou nunca. Os atacantes visaram-nos repetidamente porque estão em cada ligação e poucas pessoas alguma vez os verificam. Manter o firmware do router atualizado, mudar a palavra-passe de administrador predefinida e desativar a administração remota que não usa fecha as portas mais comuns. Isto também explica porque é valioso olhar para o tráfego a partir de mais do que um sítio: um problema que vive no router não aparece em nenhuma análise do Mac.

Se suspeitar de um rootkit

  • Parta do princípio de que as ferramentas do próprio sistema podem não dizer a verdade; examine-o de fora sempre que possível.
  • Confirme que a Proteção da Integridade do Sistema está ativa (a Apple documenta como) e mantenha o macOS atualizado.
  • Reveja Elementos de início de sessão e extensões à procura de entradas desconhecidas.
  • Perante uma suspeita séria, a solução fiável é fazer cópia de segurança dos seus documentos (não das apps nem dos ficheiros do sistema), apagar o Mac, reinstalar o macOS a partir da Apple e restaurar apenas os seus dados.
  • Se a ameaça for dirigida, por exemplo contra um jornalista ou ativista, procure ajuda especializada e considere o Modo de bloqueio.

A reter

  • O propósito de um rootkit é esconder a presença de um atacante e manter o acesso privilegiado.
  • Quanto mais baixo estiver um rootkit (utilizador, kernel, arranque, firmware), mais difícil é detetá-lo e removê-lo.
  • A Proteção da Integridade do Sistema, o volume do sistema assinado e o arranque seguro tornam os rootkits de kernel clássicos muito mais difíceis nos Macs modernos.
  • Um rootkit pode mentir ao computador, mas o seu tráfego de rede continua a poder ser visto de fora.

Teste-se

  1. 1. Quais são as duas principais tarefas de um rootkit?

    • Cifrar ficheiros e exigir pagamento
    • Manter o acesso privilegiado (persistência) e esconder a atividade do atacante (dissimulação) — Certo.
    • Enviar spam e minerar criptomoedas
    • Mostrar anúncios e mudar a página inicial

    O NIST define os rootkits como ferramentas que escondem a atividade de um atacante e mantêm o acesso privilegiado de forma encoberta.

  2. 2. Porque é que os rootkits de kernel são tão difíceis de detetar?

    • São ficheiros muito pequenos
    • Correm no núcleo do sistema operativo e podem fazer o sistema reportar informação falsa a todos os programas — Certo.
    • Só correm à noite
    • Apagam-se a si próprios a cada reinício

    O código num nível mais privilegiado pode enganar os programas acima dele, incluindo as ferramentas que usaria para o procurar.

  3. 3. Que funcionalidade do macOS impede até um administrador de modificar ficheiros protegidos do sistema?

    • FileVault
    • Proteção da Integridade do Sistema — Certo.
    • AirDrop
    • Time Machine

    A SIP protege pastas e processos do sistema contra modificações, mesmo pela conta de administrador, o que bloqueia uma técnica clássica de rootkit.

Praticar com o FireAI

Ponha esta lição em prática no seu próprio Mac.

Fontes

Ponha em prática no seu Mac

Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.

Transferir para Mac Docs