Le bon code peut se retourner contre la machine

Par 30 octobre 2008

La prise de contrôle via la technique de return-oriented programming pourrait être bien plus aisée et concernerait plus d'architectures qu'on ne le pensait.

Alors qu'on pensait la technique cantonnée aux ordinateurs x86 (Intel ou AMD), il s'avère que la programmation "return-oriented" fait également des merveilles sur les machines bâties sur des processeurs RISC. Et si auparavant cette technique de piratage nécessitait de longues et fastidieuses heures de codage, elle peut dorénavant être automatisée. Telle est la joyeuse découverte de deux chercheurs de l'université de Californie à San Diego, qui nécessite un petit retour en arrière. Classiquement, les hackers utilisent du code malveillant pour essayer de prendre contrôle de la machine qu'ils convoitent.
Code malveillant = contrôle
Ce, en mettant au point des chaînes de caractère - shellcode - capables de donner accès aux lignes de commande du PC. Heureusement, les éditeurs et les fondeurs ont travaillé sur des techniques à même d'empêcher l’exécution de code malveillant. La rédaction de SecuObs.com cite ainsi le système W^X mis au point pour OpenBSD, et le Data Execution Prevention dédié à Windows. Pour contourner cette défense, il est possible - la description a été faite l'année dernière au sein de cette même université - d'utiliser cette fameuses "return-oriented programmation" (ROP).
Code bienveillant = contrôle
Les chercheurs décrivent cela parfaitement : imaginez que vous prenez un livre de sept cent pages, que vous choisissez des mots et des phrases en ne suivant aucun ordre particulier et que vous les assembliez ensuite pour bâtir une histoire de cinquante pages sans rapport avec celle du livre original. "Les sept cent pages étant, dans le cas qui nous intéresse, le code qui fait fonctionner le système et l'histoire le programme malicieux que le hacker veut exécuter", résument-ils. Heureusement, les chercheurs proposent des solutions à cette extension et à cette automatisation du ROP. Solutions que l'on peut retrouver dans leur rapport "When Good Instructions Go Bad: Generalizing Return-Oriented Programming to RISC

Mentions légales © L’Atelier BNP Paribas