Rootkits na MBR

Na época "áurea" dos virus, em meados dos anos 90, eram relativamente comuns os chamados "virus de boot". Estes virus se inseriam no chamado master boot record (MBR) do disco rígido, que é o primeiro local a ser carregado quando o computador é inicializado a partir desse disco, e infectavam o computador antes mesmo do sistema operacional ser carregado.

Esta estratégia fazia com que os "virus de boot" tivesse algumas vantagens sobre os seus irmãos, os "virus de executável" que se inseriam em aplicativos. A principal era que o virus era carregado sempre antes do sistema operacional (e dos antivirus), ao invés de esperar que o usuário executasse um aplicativo. A desvantagem, no entanto, era que era relativamente fácil remover um virus de boot: bastava colocar uma MBR nova no seu disco rígido, o que os usuários do DOS e Windows 9x podiam fazer simplesmente digitando FDISK /MBR.

Virus de boot se replicavam e contaminavam outros computadores infectando o setor de boot de diskettes, que da mesma forma que o MBR nos discos rígidos é o primeiro local a ser carregado quando o computador é inicializado a partir desses discos. Com o fim dos diskettes (e antes disso, o fim do boot por diskette) essa forma de transmissão deixou de existir e os virus de boot viraram parte da história.

A MBR voltou no entanto a tona recentemente com a descoberta de um rootkit in the wild  (i.e. fora dos laboratórios) que utiliza a MBR como forma de se carregar em memória e assim se persistir após um boot. O conceito é semelhante ao dos virus de boot, e a própria técnica de injetar código no kernel do Windows a partir da MBR não é nova, tendo sido apresentada na Black Hat 2005 pela Eeye.

O rootkit, chamado pela Symantec de Trojan.Mebroot, é utilizado para proteger trojans como o Win32/Sinowal. Parte do seu código é uma cópia da própria prova de conceito da Eeye. No blog do time de antimalware da Microsoft existe uma extensa análise do rootkit, e uma confirmação que somente é possível que a infecção seja feita com privilégios administrativos.

Estes rootkits também tem a mesma fraqueza dos virus de boot, i.e. podem ser removidos simplesmente reescrevendo-se uma nova cópia da MBR. O rootkit impede que isso seja feito quando ele está em memória, mas no Windows você pode utilizar o comando "fixmbr" a partir do Recovery Console para fazer essa operação.

Qual o impacto da descoberta deste rookit na vida do usuário? Praticamente nenhum. A técnica já era conhecida e os antivirus já fazem a verificação do MBR durante as suas varreduras. Apenas a ameaça passa a ser um pouco menos teórica e mais real.