Aug 19
Génération automatique de tests de détection de la virtualisation
Pouvoir détecter si un système est virtualisé ou non est utilisé pour deux raisons majeurs: tout d’abord pour détecter si un malware accéléré hardware de type BluePill est installé sur la machine mais aussi pour les programmeurs de malware de vérifier que leur programme ne tournent pas dans un environnement virtualisé. Mais pourquoi ce deuxième point est important ? Parce que la plupart des personnes analysant les malwares pour générer des signatures qui vont permettre aux antivirus de détecter le malware utilisent des outils d’analyse comportementale qui sont inclus dans des logiciels de virtualisation. En pouvant détecter la virtualisation, les malwares peuvent donc rester plus longtemps sans être détecter.
La proposition des auteurs (R. Paleari, L. Martignoni, G. F. Roglia et D. Bruschi) du papier “A fistful of red-pills: How to automatically generate procedures to detect CPU emulators” publié à USENIX Security 2009 est de lancer une série d’instructions dans l’environement virtualisé et les mêmes dans un environement normal. En analysant la différence, ils sont capable de générer automatiquement des outils de détection de la virtualisation (i.e. les fameux redpill). Ils ont réussi à générer automatiquement près de 21 000 redpils pour QEMU et 3000 pour BOCHS.
La découverte automatique d’instructions n’ayant pas les même retour entre un CPU réel et un CPU virtualisé est fait en se basant sur le programme EmuFuzzer.
