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ível | Onde vive | Dificuldade de deteção e remoção |
|---|---|---|
| Nível de utilizador | Substitui ou interceta programas e bibliotecas comuns que correm com a sua conta | Difícil, mas ferramentas com mais privilégios conseguem muitas vezes detetar a adulteração |
| Nível de kernel | Carrega-se no núcleo do sistema operativo, onde pode mentir a todos os programas | Muito difícil: o próprio sistema reporta informação falsa |
| Nível de arranque e firmware | Arranca antes do sistema operativo, no processo de arranque ou no firmware de um dispositivo | O 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. 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. 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. 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.
- Regras: app, sítio, domínio, IP ou um intervalo, para sempre ou até reiniciar — Escreva uma regra tão precisa como um único endereço ou tão ampla como um domínio inteiro.
- O Mapa-múndi — Veja para onde os seus dados vão de facto, não apenas um nome de anfitrião que teria de procurar você mesmo.
- Listas de ameaças (opcional) — Compare o seu tráfego com dados públicos de ameaças sem o enviar para lado nenhum.
- Investigue uma ligação — Decida com os factos à sua frente, não com um aviso vago.
- Modos de segurança: Casa, Café, Paranoico, Sob ataque — Ajuste o rigor do FireAI ao sítio onde o seu Mac está de facto, com um toque.
- USB Network Protection: nothing from a USB drive goes online unasked — Plug in a drive someone handed you without letting what’s on it phone home.
Fontes
- NIST Computer Security Resource Center Glossary: rootkit
- MITRE ATT&CK T1014: Rootkit
- MITRE ATT&CK T1543.001: Create or Modify System Process: Launch Agent
- Apple Support: About System Integrity Protection on your Mac
- Apple Platform Security: System security overview
- Apple Support: About Lockdown Mode
Ponha em prática no seu Mac
Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.