Dans le numéro précédent [1], nous avons détaillé le code de BluePill et montré qu'il y avait plusieurs incohérences au niveau des arguments avancés par les auteurs. C'est-à-dire qu'il ne possédait en aucun cas les caractéristiques classiques d'un rootkit. Nous allons voir dans cet article comment finalement il est possible d'avoir une détection simple de ces rootkits HVM, et ainsi mettre fin à ce buzz qui n'a eu aucun sens.
1. Méthodes de détection
Nous savons qu'il est impossible de détecter un rootkit comme Bluepill par des prises d'empreintes mémoire, car il n'altère en rien des structures ou des fonctions du noyau, et utilise la mémoire de façon tout à fait conforme à un autre driver. La recherche de signatures de Bluepill en mémoire est possible, mais n'aurait qu'un impact limité jusqu'à la prochaine version (puisque celui-ci n'implémente pas encore d'altération de la mémoire).
Nous nous sommes donc appuyés sur un fait simple : un hyperviseur augmente le temps d'exécution de certaines instructions, et un rootkit HVM augmentera significativement ce temps. Il suffit donc d'obtenir le temps d'exécution d'une instruction. Un hyperviseur augmentera le temps d'exécution d'une instruction interceptée, puisque le code de commutation machine virtuelle vers hyperviseur sera automatiquement ajouté, et ce temps sera encore augmenté si une charge virale est présente. Cela revient...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première