Bootkit revisitedSamuel Chevet

La première preuve de concept de Bootkit a été présentée à BlackHat en 2005 par Derek Soeder. C’était un simple infecteur de Master Boot Record (MBR) permettant de s’authentifier sur une machine sans en connaitre le mot de passe. En 2007, les auteurs de malwares ont décidé d’utiliser cette technique sur les plateformes Windows x64 pour outrepasser le mécanisme de signature des drivers. Depuis 2005 plusieurs projets ont vu le jour, mais les techniques utilisées pour reproduire ce genre d’attaque sont restées les mêmes : mise en place de Hook et utilisation de signature pour patcher en mémoire les binaires. Cet article va décrire une nouvelle technique, ne se basant pas sur les anciens projets connus. La technique présentée nous permet de contrôler le processus de boot de toutes les versions de Windows, avec ou sans systèmes de chiffrement de disques, car nous ne nous ne réalisons aucune modification du code de démarrage en mémoire. Il est à noter que cette solution ne fonctionne pas avec Secureboot ou équivalent. Les techniques décrites dans cet article reposent sur des fonctionnalités offertes par le processeur comme le mode v8086, les breakpoints de type matériel et l’isolation de privilèges, technique qui fût utilisée par VMware pour faire de la virtualisation dans les années 2000. L’intérêt de cette techniques est qu’aucune signature mémoire est nécessaire, ni la mise en place de Hook. Nous proposons un exemple qui se trouve sous la forme d’une image ISO bootable sur clef USB permettant de charger n’importe quel driver non signé.