|
|
Un exemple de PinTool pour empêcher automatiquement la détection SMM par le code Red Pill
Par Xavier Poli,
secuobs.com
Le 17/04/2009
Résumé : Un PinTool vient d'être publié afin de bloquer automatiquement la détection SMM par le code Red Pill. Les PinTools utilisent le moteur Pin pour analyser des programmes en cours d'exécution et cela par le biais d'une injection dynamique de code au sein de leur espace d'adressage mémoire.
- Lire l'article
Les outils d'instrumentation sont nécessaires pour automatiser des tâches (profilage, évaluation de performance, détection de dysfonctionnements) qui permettent d'effectuer l'analyse d'un programme. Développé par Intel, Pin vise à fournir gratuitement un tel outil qui soit à la fois portable, transparent et « facile » à utiliser. Pour étudier ses performances et sa structure, Pin n'instrumente pas un programme exécutable de façon statique en le réécrivant, au contraire d'ATOM ( lien ), mais injecte arbitrairement et dynamiquement du code au sein de l'espace d'adressage mémoire de l'exécutable dès lors qu'il est déjà lancé.
Les instructions sous-jacentes de n'importe quel processus peuvent ainsi être analysées sans que cela nécessite pour l'auditeur de les connaitre en détails. A noter que Pin n'est pas seulement destiné à surveiller les implications logicielles d'un exécutable, mais aussi la façon dont le programme affecte la plateforme matérielle. Le fait que Pin alloue de la mémoire au sein de l'espace d'adressage d'une application déjà exécutée peut concrètement provoquer des dysfonctionnements vis-à-vis des librairies applicatives partagées et des données allouées dynamiquement. En utilisant l'option mémoire séparée, Pin va alors essayer d'allouer ses données dans des adresses qui ne sont pas utilisées.
Pin offre de plus une API pour faciliter les observations comportementales de ces instructions face aux éléments extérieurs, elle permet le passage en paramètres d'informations contextuelles vers le code injecté, le contenu des registres par exemple. Les outils (PinTools) fournis sont en C/C++ et utilisent notamment cette API qui a été développée de façon à offrir le plus d'indépendance possible vis à vis de l'architecture matérielle utilisée. Pin permet par ailleurs de sauvegarder et de restaurer de façon automatique les registres qui ont été écrasés lors de l'injection afin que l'application puisse continuer normalement. Un accès limité aux symboles et aux informations de debug est également inclus.
Pour optimiser ses performances automatiquement, Pin utilise par ailleurs différentes techniques comme le Inlining ( lien ) et l'analyse temps réel des variables ( lien ). En comparaison, des outils comme Valgrind ( lien ) ou DynamoRIO ( lien ) seraient deux à trois fois moins performants que Pin pour certaines opérations. A noter que le moteur n'est pas Open Source, alors que les PinTools fournis peuvent eux être modifiés et redistribués sans restriction à la seule condition que la licence soit conservée. Les codes source des PinTools fournis de base peuvent ainsi servir de modèle pour dériver de nouveaux outils.
Pin supporte l'analyse des binaires GNU/Linux sur les architectures IA-32, Intel64 (64 bit x86), Itanium et XScale ARM, mais aussi les exécutables Win32 pour IA-32 et Intel64 et les Mac OS pour IA-32. Pin est utilisable sur toutes distributions GNU/Linux et sur les systèmes Microsoft Windows XP, Microsoft Windows Server 2003 et Mac Os Tiger. Un exemple de PinTools est par ailleurs disponible sur Indefinite Studies (voir la source de l'article), il implémente une technique permettant de prévenir la détection VMM en surveillant l'instruction SIDT que le code Red Pill ( lien & lien ) utilise pour écraser arbitrairement en mémoire la valeur du registre IDTR.
Le site PinTool ( lien )
Présentation « Pin: building customized program analysis tools with dynamic instrumentation » ( lien )
Source : Indefinite Studies ( lien )
- Article suivant : SCS, un scanner pour déterminer si un poste est contaminé par Conficker
- Article précédent : Heyoka allie furtivité et rapidiité pour des tunnels DNS avec 60 pour-cents de données en plus par paquet
- Article suivant dans la catégorie Outils : Webshag, un outil d'audit de serveur web
- Article précédent dans la catégorie Outils : Heyoka allie furtivité et rapidiité pour des tunnels DNS avec 60 pour-cents de données en plus par paquet
| Mini-Tagwall des articles publiés sur SecuObs : | | | | sécurité, exploit, windows, microsoft, attaque, réseau, outil, vulnérabilité, audit, système, virus, internet, données, metasploit, présentation, linux, bluetooth, protocol, source, vista, scanner, réseaux, shell, rootkit, engineering, conférence, trames, paquet, téléphone, wishmaster, sysun, mobile, noyau, mémoire, botnet, https, rapport, libre, téléphones, google, patch, reverse, scapy, security, navigateur |
| Mini-Tagwall de l'annuaire video : | | | | security, vmware, biometric, virus, metasploit, windows, password, botnet, lockpicking, tutorial, attack, exploit, network, linux, source, crypt, iphone, server, secconf, shmoocon, conficker, engineering, virtual, ettercap, wimax, rootkit, wireshark, reverse, hackitoergosum, cisco, internet, hacker, systm, openssh, firewall, wireless, openbsd, openvpn, meterpreter, access, conference, arduino, knoppix, backtrack, brucon |
| Mini-Tagwall des articles de la revue de presse : | | | | security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone, server, inject, patch, apple, twitter, mobile, virus, ebook, facebook, vulnérabilité, crypt, source, linux, password, intel, research, virtual, phish, access, tutorial, trojan, social, privacy, firefox, adobe, overflow, office, cisco, conficker, botnet, pirate, sécurité |
| Mini-Tagwall des Tweets de la revue Twitter : | | | | security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall, network, twitter, vmware, windows, microsoft, compliance, vulnerability, python, engineering, source, kernel, crypt, social, overflow, nessus, crack, hacker, virus, iphone, patch, virtual, javascript, malware, conficker, pentest, research, email, password, adobe, apache, proxy, backtrack |
|
|
|
|
|