Créée en 2009 par le Collège de France avec le soutien de l’Institut National de Recherche en Informatique et en Automatique (INRIA), la chaire « Informatique et sciences numériques » accueille chaque année un nouveau titulaire spécialiste reconnu d’un domaine (langages de programmation, sécurité et analyse de protocole, robotique, …). Pour l’année académique 2010-2011, c’est Martin Abadi qui a été nommé.
Né en 1963 à Buenos Aires, il a fait ses études à Stanford University où il obtint son doctorat en informatique en 1987. Chercheur, le plus souvent dans des laboratoires industriels, il est depuis 2006 « principal researcher » à Microsoft Research Silicon Valley. Il a aussi enseigné à Berkeley, à Stanford et à l’University of California, Santa Cruz, où il est actuellement professeur. Sa recherche porte principalement sur la sécurité informatique, sur les langages de programmation et sur les méthodes de spécification et preuve formelle. Il s’est intéressé, par exemple, au développement de la théorie des langages de programmation orientés objet et à la conception et l’analyse des protocoles de communication sécurisés sur Internet.
Le 10 mars dernier, en prélude à l’enseignement sur la sécurité informatique qui démarrera la semaine suivante, le Professeur Martin Abadi a, dans le cadre de la « Leçon inaugurale », donné une conférence sur le thème « L’assaut des bots » dont voici de larges extraits.
Bot et botnets
« Une partie considérable du spam provient de vastes réseaux d’ordinateurs contrôlés par des attaquants, presque toujours à l’insu de leurs propriétaires. Ces réseaux sont appelés botnets, et chacun des ordinateurs est un bot (pour robot). Les botnets sont utilisés aussi dans d’autres buts criminels ou politiques, comme l’attaque massive par déni de service (denial of service) contre l’Estonie en 2007. L’usage des botnets amplifie le pouvoir des attaquants et leur permet de mieux masquer leur identité.
Un botnet peut compter des dizaines de milliers de bots, voire plus. Au total, on a estimé qu’il y aurait des dizaines de millions de bots, peut-être 100 millions ou 150 millions, déjà en 2007. Même si on ne peut pas trop faire confiance à de tels chiffres, ils donnent une idée de l’énormité du problème, ou du moins de l’inquiétude qu’il suscite. Souvent les membres du botnet communiquent par des messages chiffrés, en utilisant des méthodes cryptographiques analogues à celles qui protègent les réseaux militaires et les réseaux bancaires, que nous étudierons plus en détail pendant le cours. Par ce biais, le spam et les botnets nous fournissent une application inattendue de la cryptographie moderne.
Cet aspect des botnets nous permet déjà de présenter certains des personnages de notre drame. En cryptographie, nous parlons souvent de deux personnes fictives, Alice et Bob, qui souhaitent communiquer. Nous parlons aussi d’Eve, qui veut écouter leurs messages (eavesdrop), et de Mallory, qui est prête à tout, même à se faire passer pour Alice ou Bob. Ces prénoms humains peuvent nous faire ressentir une certaine sympathie envers Alice et Bob, et en tout cas servent à motiver les problèmes de communication mieux que les lettres A, B, E et M.
On suppose parfois qu’Alice et Bob sont honnêtes et bienveillants, et qu’ils se font mutuellement confiance. Ce n’est pas nécessairement le cas. Les mécanismes de sécurité ne sont pas toujours là pour protéger les bons des méchants. Ainsi, dans les communications au sein d’un botnet, Alice et Bob sont des bots qui conspirent pour envoyer du spam, ou pire.
Le travail des bots est typiquement coordonné par des ordinateurs, maîtres ou relais, qui se chargent de commander le réseau (Command & Control). Ce ne sont pas toujours les mêmes qui commandent, ou ils ne restent pas toujours aux mêmes adresses sur Internet, sinon il serait trop facile de décapiter un botnet. Parfois, une partie du contrôle des botnets est décentralisée, en utilisant les techniques pair-à-pair (P2P). Il a même été suggéré de monter des botnets sur Skype, un système P2P bien connu de téléphonie chiffrée par Internet.
Quand l’ordinateur devient aussi un bot
Contre ces astuces et subterfuges des botnets, nous disposons de techniques de plus en plus puissantes pour détecter et comprendre leurs activités, pour les bloquer et parfois pour les détruire. Par exemple, nous pouvons déceler des similarités et des régularités dans les actions des bots, pour ainsi les reconnaître, en déduire leurs alliances, et mieux dépister et comprendre leurs attaques. Cela exige des calculs de grande échelle, qui analysent des milliards d’événements sur Internet, en traitant des téraoctets (1012 octets) de données. Cela s’accompagne aussi d’efforts juridiques qui visent à démanteler les structures de contrôle de botnets, mais qui restent généralement inefficaces contre la formation de nouveaux botnets, quelquefois à partir des mêmes bots.
Chacun des bots est un ordinateur dont la sécurité a été compromise, grâce à des failles dans son logiciel, à des erreurs de ses usagers, ou aux deux. Les moyens de réduire un ordinateur à l’esclavage sont assez variés, parfois bêtes et méchants, parfois spectaculaires.
Par exemple, un usager peut recevoir une carte postale électronique avec des voeux de Noël ou une proposition amoureuse tentante. Si cette carte postale porte le nom de fichier ILoveYou.exe, elle contient un programme plutôt qu’une image, et ce programme se lance quand l’usager clique dessus. Le programme peut alors contacter les maîtres d’un botnet, puis suivre leurs ordres. L’ordinateur devient ainsi un bot.
Une image JPEG ou un fichier PDF peut être corrompu
Mais l’ordinateur reste vulnérable, même si le nom de fichier est ILoveYou.jpg ou ILoveYou.pdf, indiquant de traiter la carte postale comme une image de type JPEG ou PDF. En effet, des erreurs dans le logiciel d’affichage des images peuvent permettre à l’attaquant de contourner les mécanismes de défense de l’ordinateur. Même des erreurs apparemment minuscules et anodines peuvent s’avérer catastrophiques. Nous verrons comment plus tard. Par exemple, en 2004, une image JPEG corrompue pouvait lancer des programmes sur Windows. Plus récemment, en 2010, des failles dans la gestion des fichiers PDF sur les IPhones et les IPads permettaient de prendre le contrôle de ces téléphones et de ces tablettes. Parfois, de telles failles sont de vieilles erreurs, réparées dans des versions plus récentes du logiciel que l’usager n’a pas encore installées. Peut-être l’attaquant a-t-il même découvert ces erreurs en comparant les différentes versions du logiciel !
Pour l’instant, retenons qu’un problème relativement modeste et banal, comme celui du spam, mène non seulement à des questions d’apprentissage automatique et de cryptographie, mais aussi au problème plus général de la correction des programmes (le logiciel se comporte-t-il conformément à ses spécifications ?). Ce problème, auquel Turing s’attaquait déjà en 1949 dans son article « Checking a large routine », a été traité avec ténacité depuis, souvent en suivant des approches à base de logique formelle ; même s’il n’est pas encore résolu, nous avons beaucoup avancé.
Retenons aussi que les usagers jouent un rôle délicat et essentiel en sécurité. Ces usagers constituent souvent le maillon le plus faible de la chaîne. Par exemple, ils choisissent souvent des mots de passe faciles à deviner. Dans une étude récente, on constatait qu’un usager sur cent se servait tout simplement du mot de passe « 123456 », ce qui est déjà mieux que « 12345 », un autre choix très fréquent. De même, les usagers semblent enclins à lancer à peu près n’importe quel programme, surtout si ce programme est gratuit et amusant.
La sécurité, un problème social
Pourtant, nous ne devons pas trop blâmer ces usagers, car la donne actuelle ne les incite pas nécessairement à prendre les bonnes précautions. Par exemple, revenons à l’usager qui reçoit un fichier ILoveYou.jpg, ILoveYou.pdf ou ILoveYou.exe. Supposons qu’il puisse se procurer un logiciel sûr qui, entre autres choses, traite correctement les fichiers JPEG et PDF, et aussi cloisonne l’exécution des fichiers EXE pour en limiter les effets fâcheux. Il lui faut d’abord faire l’effort d’installer ce logiciel, qui peut d’ailleurs être moins plaisant à utiliser que le précédent . Il lui faut parfois aussi payer l’auteur de ce logiciel. Tout ceci ne l’encourage pas à se donner du mal. De plus, la sécurité accrue du nouveau logiciel est difficile à prouver et ne présente pas nécessairement un bénéfice direct évident pour l’usager.
Son ordinateur n’enverra pas de spam à d’autres, mais lui-même en recevra tout autant. Est-ce motivant ? Il semblerait que non.
En somme, il ne suffit pas d’inventer des techniques astucieuses. Il faut que ces techniques soient faciles à utiliser correctement. Il faut aussi que, du point de vue de ceux qui peuvent les mettre en place, elles en valent la peine.
La sécurité ne doit pas être envisagée seulement comme un problème individuel, mais aussi comme un problème social. En ceci, elle ressemble assez à la santé. Les maladies de chaque individu (ou de chaque ordinateur) créent un danger pour les autres. »