211service.com
Un logiciel qui se répare
Martin Rinard , professeur d'informatique au MIT, n'a pas honte de l'objectif ultime des recherches de son groupe : fournir un programme immortel et invulnérable. Dans les travaux présentés ce mois-ci au Symposium ACM sur les principes des systèmes d'exploitation à Big Sky, MT, un groupe de chercheurs du MIT, dirigé par Rinard et Michael Ernst, qui est maintenant professeur agrégé à l'Université de Washington, a développé un logiciel qui peut trouver et corrigez certains types de bogues logiciels en quelques minutes.
Selon un rapport publié par la société de sécurité Symantec en 2006, lorsqu'une vulnérabilité potentiellement dangereuse est découverte dans un logiciel, il faut en moyenne près d'un mois aux ingénieurs humains pour trouver un correctif et l'appliquer aux systèmes concernés. Les chercheurs, qui ont collaboré avec une startup appelée Determina sur les travaux, espèrent que le nouveau logiciel, appelé ClearView, accélérera ce processus, rendant le logiciel considérablement plus résistant aux pannes ou aux attaques.
ClearView fonctionne sans l'aide de l'homme et sans accès au code source sous-jacent d'un programme (un ensemble d'instructions souvent propriétaire qui définit le comportement d'un logiciel). Au lieu de cela, le système surveille le comportement d'un binaire : la forme que prend le programme pour exécuter des instructions sur le matériel d'un ordinateur.
En observant le comportement normal d'un programme et en attribuant un ensemble de règles, ClearView détecte certains types d'erreurs, en particulier celles causées lorsqu'un attaquant injecte une entrée malveillante dans un programme. Lorsque quelque chose ne va pas, ClearView détecte l'anomalie et identifie les règles qui ont été violées. Il propose ensuite plusieurs correctifs potentiels conçus pour forcer le logiciel à suivre les règles violées. (Les correctifs sont appliqués directement au binaire, en contournant le code source.) ClearView analyse ces possibilités pour décider lesquelles sont les plus susceptibles de fonctionner, puis installe les meilleurs candidats et teste leur efficacité. Si des règles supplémentaires sont violées ou si un correctif provoque le blocage du système, ClearView le rejette et en essaie un autre.
ClearView est particulièrement efficace lorsqu'il est installé sur un groupe de machines exécutant le même logiciel. Dans ce cas, ce que ClearView apprend des erreurs sur une machine est utilisé pour corriger toutes les autres. Parce qu'il ne nécessite pas d'accès au code source, Rinard dit que ClearView pourrait être utilisé pour réparer des programmes sans nécessiter la coopération de la société qui a créé le logiciel, ou pour réparer des programmes qui ne sont plus maintenus. Il espère que le système pourrait prolonger la durée de vie des anciennes versions de logiciels, créées par des entreprises qui ont fait faillite, en plus de protéger les logiciels actuels.
Pour tester le système, les chercheurs ont installé ClearView sur un groupe d'ordinateurs exécutant Firefox et ont engagé une équipe indépendante pour attaquer le navigateur Web. L'équipe hostile a utilisé 10 méthodes d'attaque différentes, chacune impliquant l'injection de code malveillant dans Firefox. ClearView a réussi à bloquer toutes les attaques potentielles en détectant les mauvais comportements et en mettant fin à l'application avant que l'attaque puisse avoir l'effet escompté. La toute première fois que ClearView rencontre un exploit, il ferme le programme et commence à analyser le binaire, à la recherche d'un correctif qui aurait pu arrêter l'erreur.
Pour sept des approches de l'équipe attaquante, ClearView a créé des correctifs qui ont corrigé les erreurs sous-jacentes. Dans tous les cas, il a rejeté les corrections qui ont eu des effets secondaires négatifs. En moyenne, ClearView a proposé un correctif réussi dans les cinq minutes environ suivant sa première exposition à une attaque.
Ce que cette recherche nous amène à croire, c'est que le logiciel n'est pas en soi intrinsèquement fragile et cassant à cause des erreurs, dit Rinard. C'est fragile et cassant parce que les gens ont peur de laisser le logiciel continuer s'ils pensent qu'il y a quelque chose qui ne va pas. Certaines approches de génie logiciel, telles que l'informatique sans défaillance ou l'informatique acceptable, partagent cette philosophie.
ClearView est un très bon point de départ, dit Yuanyuan Zhou , professeur d'informatique à l'Université de Californie à San Diego, qui étudie également la fiabilité des logiciels. Zhou fait l'éloge du processus d'évaluation utilisé par les chercheurs pour le projet, mais dit qu'elle souhaite voir ClearView testé sur une plus grande variété d'applications.
Maintenir le système à tout prix semble avoir du mérite, ajoute David Pearce , maître de conférences en informatique à l'Université Victoria de Wellington, en Nouvelle-Zélande. Il souligne que ClearView est conçu pour appliquer des correctifs chaque fois qu'il détecte que quelque chose ne va pas. Certains systèmes sont conçus pour s'arrêter lorsqu'une erreur est détectée, mais si l'objectif d'un attaquant est le sabotage, explique Pearce, cette approche fait tout son possible.
Mais l'approche de ClearView pourrait entraîner des problèmes pour l'utilisateur, ajoute Pearce. Par exemple, si un navigateur Web avait un bogue qui l'empêchait de gérer les URL au-delà d'une certaine longueur, le correctif de ClearView pourrait protéger le système en coupant les extrémités des URL trop longues, empêchant le programme d'échouer, mais aussi l'empêchant de travailler pleinement. Cependant, de tels problèmes ne seraient probablement pas directement nuisibles. Ce sont généralement les pirates qui tentent d'exploiter de telles failles, dit Pearce, et ce sont eux qui en ont souffert.