Spectre et Meltdown - Décryptualité du 14 janvier 2018

Luc - Nico - Manu

Titre : Décryptualité du 14 janvier 2018
Intervenants : Luc - Nico - Manu
Lieu : Studio d'enregistrement April
Date : janvier 2018
Durée : 14 min
Écouter ou télécharger le podcast
Revue de presse de l'April pour la semaine 2 de l'année 2018
Licence de la transcription : Verbatim
NB : transcription réalisée par nos soins.
Les positions exprimées sont celles des intervenants et ne rejoignent pas forcément celles de l'April.

Transcription

Luc : Décryptualité.

Nicolas : Le podcast qui décrypte l’actualité des libertés numériques.

Luc : Semaine 2, année 2018. Salut Manu.

Manu : Salut Nico.

Nico : Salut Luc.

Luc : Eh bien le retour de Nicolas, mais pas de Mag qui étant en balade. Est-ce que tu peux nous donner la revue de presse, s’il te plaît ?

Manu : On va aller vite, mais il y a six articles sympas. Six sujets principaux.

Luc : EconomieMatin, « Une année 2018 sous le signe de l’ouverture pour l’informatique d’entreprise », un article de Thomas Di Giacomo.

Manu : Un article très intéressant qui reparle un petit peu de prédiction, classique dans notre période, et qui met en avant le côté ouverture, justement, mais l’ouverture notamment du logiciel libre, du code open source, des choses pas mal.

Luc : ZDNet France, « Barcelone éjecte Microsoft au profit de Linux et de l’Open Source », un article de la rédaction.

Manu : Super nouvelle ! Barcelone, grosse ville. Ils sont en plein bouleversement politique. Eh bien, dans tous ces bouleversements, ils se proposent de passer au logiciel libre de manière majeure, un peu comme Munich et on espère qu’ils ne vont pas faire comme Munich !

Luc : On se dit que Microsoft va avoir du mal à mettre son siège dans toutes les villes européennes, ça va être compliqué. PhonAndroid, « Android : comment ne plus être pisté par Google ? », un article de Robin Pomian Bonnemaison.

Manu : Très intéressant, parce que Android c’est du logiciel libre, pur et dur, c’est dans beaucoup de poches dans le monde entier, mais il y a des problèmes qui vont avec, notamment il y a des entreprises qui rajoutent du logiciel, donc Google, forcément, et tout ça c’est embêtant. Il y a des gens qui s’y intéressent de plus en plus dont la communauté Android. Comment faire pour ne pas être tracés par toutes ces entreprises. Il y a des pistes de travail. Allez jeter un œil sur votre Android.

Luc : Sujet intéressant. FIGARO, « LinTO, une enceinte connectée française et open source », un article de Lucie Ronfaut.

Manu : C’est un sujet compliqué, on en a parlé déjà plusieurs fois. Il y a de gens qui achètent des enceintes intelligentes pour mettre chez eux. Eh bien ces petits objets, ces petits assistants électroniques, vous écoutent en permanence et, en plus, c’est du logiciel propriétaire. Eh bien là, il y a une boîte française, associée à Linagora, qui se propose de faire la même chose en Libre mais ça va continuer à vous écouter !

Luc : On m’en a offert une pour Noël et quand je l’ai branchée sur mon téléphone, juste pour passer de la musique, elle m’a dit : « Est-ce que je peux te piquer ton carnet d’adresses et je ne sais plus trop quoi d’autre. » C’est une enceinte ; c’est juste censé passer de la musique ! Donc ça veut dire qu’elle va le renvoyer quelque part sur Internet, je ne sais pas comment elle se connecte. Je ne sais pas ! Je ne sais pas !

Manu : Là, c’est supposé être fait en Libre, c’est-à-dire que même les plans seront libres. Donc on peut imaginer une communauté qui s’emparerait de l’outil et qui en ferait quelque chose d’intéressant. Je pense qu’il y a des choses à creuser, donc il y a de l’espoir. Il y a quelque chose d’intéressant.

Luc : Métro, « Nadine Boulianne, la concierge du premier fablab dans le Bas-Saint-Laurent », un article Chloé Freslon. Ça c’est un truc au Québec ?

Manu : Exactement, tu as bien compris le truc. Et concierge, eh bien c’est une façon de présenter la responsable du fablab. C’est assez intéressant, c’est une approche originale ; la traiter de concierge c’est marrant. Elle prend son boulot à cœur, elle y travaille de manière assez intéressante. Allez jeter un œil, vraiment les fablabs, c’est quand même super fun !

Luc : Le Temps, « Spectre et Meltdown vous souhaitent une bonne année 2018 ! », un article de Solange Ghernaouti.

Manu : Eh bien on peut aborder le sujet puisque c’est justement le sujet.

Luc : On en a parlé la semaine dernière, on avait promis qu’on attendrait le retour de Nicolas pour en parler parce que c’est quand même lui le spécialiste de la sécurité.

Manu : C’est un bon article, pour le coup, mais on va essayer d’aborder le sujet de manière un peu plus globale. On a un peu de temps.

Luc : Donc le truc c’est Spectre et Meltdown. Donc ce n’est pas une faille majeure. Ce sont deux failles majeures pour le prix d’une !

Manu : Et qui arrivent quasiment à Noël !

Nico : C’est ça. C’est gros buzz, là, sur décembre.

Manu : Je crois même qu’ils en ont parlé dans les journaux télévisés, dans les journaux papier, partout dans le monde quoi !

Nico : C’est passé sur France 2 aux 20 heures. Ça a fait vraiment le buzz partout parce qu’effectivement c’est assez problématique ce qui s’est passé. En fait, depuis très longtemps, les fabricants ont eu besoin d’accélérer de plus en plus les performances de vos machines parce que vous n’aimez pas avoir une machine qui passe son temps à ne rien faire ou à ramer. Ils ont essayé de prendre des raccourcis ou d’optimiser les processeurs le plus possible. En fait ils ont été un peu trop loin et des chercheurs en sécurité ont réussi à démontrer que les choix qu’ils avaient faits permettaient plein d’attaques assez efficaces et qui touchaient du coup tous les CPU [central processing unit] modernes, en particulier les Intel, et qui permettaient de récupérer toutes les données de votre machine.

Luc : On dit que c’est la pire faille informatique de l’histoire de l’informatique. Est-ce que tu dis que oui ?

Nico : C’est à peu près ça parce que aujourd’hui, le bug est vraiment au niveau du matériel et donc il faudra remplacer tous les CPU existants pour vraiment patcher.

Luc : CPU, ce sont les processeurs ?

Nico : Les processeurs, voilà, la puce au milieu. Il faudra peut-être dix ans avant qu’on l’extermine et qu’on l’éradique de toutes les machines.

Manu : Il y a deux noms. Ça correspond à deux particularités ? C’est quoi ? Pourquoi ? Il y en a un c’est Spectre et l’autre c’est Meltdown.

Nico : Ce sont des vecteurs d’attaque différents. Spectre s’attaque vraiment aux problématiques du CPU lui-même, comment les fabricants ont conçu le CPU. Meltdown est plutôt au niveau du logiciel, c’est-à-dire que des optimisations qui ont été faites au niveau du logiciel.

Luc : Quels logiciels ?

Nico : Là ce sont les compilateurs carrément.

Luc : Les compilateurs c’est ?

Nico : Les compilateurs c’est assez bas niveau, c’est ce qui transforme le code qu'on écrit en code lisible par la machine et, en fait, il y a des optimisations aussi qui sont faites, en particulier sur les boucles. Quand les machines voient passer une boucle trop souvent, eh bien elles commencent à apprendre comment cette boucle se comporte et, des fois, elles font des mauvaises choix.

Luc : Une boucle c’est une série d’instructions qui se répètent plusieurs fois.

Nico : Du coup, des fois elles se plantent dans la prédiction de ce que cette boucle va faire et c’est là que l’attaquant va prendre la main et faire plein de choses avec.

Manu : Tu as réussi, toi, à utiliser un petit peu ce truc-là ? Tu as réussi à faire quoi ?

Nico : Moi j’ai réussi, pas moi personnellement, en fait, parce qu’il y a ce qu’on appelle les exploits1, des proof of concept qui ont été publiés.

Manu : Des exploitations.

Nico : Des exploitations de la faille. Les chercheurs qui ont trouvé cette faille ont aussi publié des morceaux de code qui permettent de l’exploiter et, en fait, en le lançant, on arrive, au choix, à récupérer l’intégralité de la mémoire sur laquelle le code est exécuté.

Luc : La mémoire c’est important parce que, en gros, l’ordinateur passe son temps à copier des informations. Donc quand on accède à la mémoire, on accède à tout ce qui se fait sur l’ordinateur.

Nico : Voilà. Tous vos mots de passe, vos bases de données, tous vos fichiers.

Luc : Les nôtres aussi d’ailleurs !

Nico : Potentiellement, tout est récupérable. Donc ça c’est plutôt sur la partie Spectre et Meltdown fait un peu la même chose, un peu moins intrusif, c’est-à-dire qu’on ne peut pas récupérer toute la mémoire de l’ordinateur, par contre on peut récupérer quelques morceaux de processus, donc le logiciel qui tourne à côté de celui qui est en train de s’exécuter. La démonstration a été faite qu’on est capables de récupérer des données de votre machine à partir de Firefox ou d’Internet Explorer ou de Chrome en exécutant des morceaux de JavaScript dans votre navigateur.

Luc : JavaScript2 c’est un langage qui est utilisé notamment pour faire des fonctions avancées dans les sites web.

Nico : Voilà ! Et les deux sont assez catastrophiques parce que du côté de Spectre, en fait, il faut changer le CPU, il faut changer le matériel, et côté de Meltdown, théoriquement il faudrait bloquer tous les JavaScript sur votre machine, etc., donc ça veut dire perdre l’intégralité de tous les sites internet qui existent aujourd’hui.

Luc : Un bug, normalement, c’est un problème de logiciel. Il y a toujours un bug dans le logiciel ! Comment il peut y avoir du bug sur du matériel! Mes chaussures ne sont pas buguées, tu vois !

Nico : On ne sait jamais ! Le CPU c’est quand même quelque chose de très compliqué. Aujourd’hui, on parle quand même de pas loin de trois milliards de transistors, donc de petits composants élémentaires qui sont dans une puce. Vous imaginez bien que déboguer quelque chose de trois milliards de choses qui communiquent.

Luc : Oui, parce qu’ils sont organisés ensemble pour procéder d’une certaine façon.

Nico : Ensemble pour procéder d’une certaine manière et puis, surtout, qu’ils ont fait des choix justement d’efficacité pour avoir des CPU de plus en plus rapides, d’avoir des fonctions qui sont de plus en plus complexes. Avant on faisait juste des opérations + 1, - 1, on décale à droite, on décale à gauche. Aujourd’hui, on a des opérations qui sont très compliquées.

Luc : La faille vient d’où, en fait ?

Nico : Cette faille-là vient des instructions du processeur qui sont ne sont pas sécurisées et pas fiables à utiliser quand on est dans un mode, ce qu’on appelle le mode prédictif. C’est-à-dire qu’on anticipe ce que le programme va faire pour essayer d’accélérer plutôt que de ne rien faire. On prend de l’avance dans le programme, en fait.

Luc : L’ordinateur, la machine dit : « D’habitude, dans ces circonstances, il me demande ça, ça et ça ; donc je vais le faire en avance, comme ça s’il me demande, je l’aurais déjà fait. » C’est ça ?

Nico : Voilà. C’est ça.

Luc : Du coup par ce biais-là il y a moyen de… ?

Nico : Quand il se trompe, en fait, on n’est pas capable de faire marche arrière. C’est-à-dire que ce qui a déjà été exécuté en anticipation, on n’est pas capable de l’annuler complètement. Donc il reste des petits bouts, d’où le spectre, en fait, il y a des petits fantômes qui se baladent. Si on tombe sur un fantôme dans l’exécution normale de ce qui va se passer derrière, eh bien ça peut faire des problèmes.

Manu : On pourrait donner l’image. C’est une sorte de contre-pied « hop, hop, hop, je t’envoie quelque chose, je t’envoie quelque chose et puis, d’un seul coup, je l’envoie ailleurs », mais, par habitude, on va continuer ce qu’on faisait d’habitude sauf que là ça déclenche toute une tripotée de bêtises.

Luc : Voilà ! Et si on fait exprès de tromper le processeur alors on récupère beaucoup de données.

Nico : Voilà, c’est ça. Du coup en exploitant ces bugs-là ils ont réussi à comprendre comment les diriger, comment les contrôler. Ils arrivent à mettre le processeur exactement dans l’état qui les arrange et, du coup, à récupérer ce qu’ils ont envie.

Luc : Comment ce machin a émergé ? Ça a l’air d’être un peu la grosse panique. C’est quoi l’histoire derrière ?

Nico : L’histoire est un peu compliquée de cette faille. En fait on s’est aperçu, c’était début décembre, il y a eu un patch de Linux, de Linus Torvalds, donc le vrai concepteur de Linux.

Luc : Qui a la réputation d’être un peu une sorte de brute, de patron.

Nico : C’est ça. Un gros gourou qui aime bien insulter tous les gens et leur dire qu’ils font de la merde. D’habitude ce n’est pas quelqu’un qui se laisse faire.

Manu : C’est brutal !

Nico : Et là on a vu, en pleine livraison du carnet Linux, en fait il y avait une nouvelle version qui était en train de se préparer, ils étaient en plein dedans, et là on a vu un énorme patch, donc une énorme fonctionnalité qui revoit l’intégralité de toute la gestion mémoire de vos machines.

Luc : Ça veut dire un truc qui touche vraiment à quelque chose d’essentiel.

Nico : Ça touche à des choses assez essentielles. Il y a la problématique de performances qu’on annonce, déjà 25 % de performances en moins sur vos machines. On se dit comment ça se fait que Torvalds n’a pas gueulé, qu’il a laissé passer un truc comme ça. En fait, en analysant le code, on a vu que c’était marqué que les processeurs n’étaient plus considérés comme sûrs ; qu’il fallait absolument patcher certains trucs qui n’étaient pas cool. Donc les gens, la communauté a commencé à enquêter dessus. On s’est rendu qu’il y avait une faille qui était connue à priori depuis assez longtemps ; certains parlent de début 2017, mais ça serait peut-être été ou rentrée 2017, qui était sous ce qu’on appelle embargo, donc personne n’avait le droit d’en parler parce que c’était tellement monstrueux qu’il fallait coordonner tout le monde.

Luc : Pour boucher les trous avant d’en parler !

Nico : Pour boucher les trous avant de publier tout ça. Du coup, la communauté a commencé à fouiller. Elle s’est rendu compte que des papiers avaient été publiés, etc.

Manu : Par erreur, si je comprends bien !

Nico : Par erreur ! Les scientifiques ont publié trop tôt ou mal. On ne sait pas trop ce qui s’est passé.

Luc : Ils ont créé des sites web, c’est ça non ?

Nico : Ils ont créé des sites web où ils affichaient déjà le nom des failles, les logos, les PDF des attaques et autres.

Luc : Ils n’avaient pas communiqué sur le site web, mais le site web était déjà en place.

Nico : Il existait.

Luc : Et du coup, il y a des gens qui ont fini par le trouver.

Nico : Et du coup Intel, Amazon et tout ce monde-là a dû anticiper pour dire « voilà ce qui s’est passé et arrêtez les spéculations quoi ! »

Manu : On peut rajouter que ça a été publié pour le coup, enfin ça s’est connu quand ?

Nico : Le gros est arrivé le 8 janvier, je crois, quelque chose comme ça.

Manu : Et le 25 novembre c’était quoi ?

Nico : Le 25 novembre c’étaient les premières communications, en fait, en interne, entre Intel, Amazon et tous les gros du secteur pour essayer de se coordonner et, en particulier aussi, le PDG d’Intel qui a vendu toutes ses actions ce jour-là.

Manu : Coïncidence !

Luc : Coïncidence, oui parce qu’il avait prévu…

Nico : De s’acheter un yacht, je crois.

Manu : Donc là il a vraiment vendu toutes ses actions, c’est ça ?

Nico : Il a vendu l’intégralité de ce qu’il pouvait vendre. En tant que PDG d’Intel il n’a pas le choix, il doit en garder un certain nombre, mais tout ce qu’il a pu vendre il l’a vendu.

Manu : Ça donne super confiance !

Luc : Évidemment il nie, il dit que c’est une coïncidence. Mais on imagine le patron de ce truc-là, qui se retrouve probablement face à la plus grosse faille de l’histoire de l’informatique, et le mec se dit « tiens, j’ai une urgence. J’avais quand même prévu de vendre mes actions ! » En tout cas moi ce que je note, à cause de ce truc qui a été révélé trop tôt, ça veut dire que toutes les corrections qui sont possibles ont été faites dans l’urgence et en mode panique. Déjà on est face à un truc très problématique d’un point de vue sécurité, mais, en plus de ça, on colmate les fuites en mode panique !

Nico : Il y en a même qui n’étaient pas du tout prêts. Par exemple FreeBSD3 n’était pas du tout dans la bouche de ce truc-là.

Luc : Personne ne les avait prévenus.

Nico : Personne ne les avait prévenus donc ils n’ont pas de patch. Après, les patchs n'ont pas été effectivement super bien testés ou autres, donc Microsoft, Apple, ont déjà patché deux, trois, quatre fois en disant « mais ça ne marche pas si bien ! »

Manu : À chaque fois il y a des effets secondaires.

Nico : Il y a des effets secondaires. Il y a des problèmes de performance, effectivement. Certains parlent entre 5 et 10 % ; il y en a d’autres entre 15, 20 %, 30 %. Si vous utilisez des bases de données, c’est presque l’apocalypse et, du coup, ils réfléchissent encore, effectivement, à comment patcher sans perte de performances. Comment est-ce qu’on fait ?

Luc : L’idée, en gros, c’est de limiter ces fonctions avancées et foireuses par du code en disant « on va s’interdire de faire telle et telle chose. »

Nico : C’est ça. Ou en protégeant. Par exemple sur Linux, en fait, ils ont séparé mieux la mémoire pour que, même en cas d’exploitation de la faille, c’est-à-dire qu’on ne patche pas la faille directement, mais on empêche une exploitation efficace derrière.

Manu : Ils disent qu’ils mitigent le problème.

Nico : Ils mitigent, voilà !

Manu : Parce qu’ils ne pourront pas le corriger, tel qu’on voit les choses aujourd’hui ce n’est pas « correctible ».

Nico : Ce n’est pas corrigible.

Manu : Corrigeable ?

Nico : Corrigeable, ou corrigible.

Manu : On va chercher !

Nico : On trouvera ! On a des patchs. C’est effectivement de la mitigation, c’est-à-dire qu’on ne sait pas complètement corriger le problème, mais on va essayer de corriger les effets de bord trop nuisibles. La vraie correction passera par une refonte complète de nos processeurs modernes et peut-être, justement, en faisant aussi une croix aussi sur les performances en disant « l’anticipation on ne sait pas la gérer proprement ». Donc on va avoir des processeurs peut-être moins performants, mais qui n’auront pas de failles comme ça.

Manu : On peut peut-être recommander d’installer un Firefox récent parce qu’ils ont commencé, eux aussi, à mettre des protections qui font une partie du boulot. Et donc, en installant le dernier Firefox, on va peut-être éviter de se faire attaquer par du code JavaScript sur Internet.

Nico : Mettez à jour vos machines, surtout. Effectivement, il y a peut-être des pertes de performance mais le problème est trop énorme pour qu’on ne mette pas à jour nos machines. Le problème existe aussi sur certains Android et là c’est problématique s’il n’y a pas de mise à jour existante. Voyez aussi si vous avez des serveurs ou si vous utilisez du cloud.

Manu : Des serveurs partagés surtout !

Nico : Partagés surtout !

Manu : Parce que si ce sont juste des serveurs, tout seul, il n’y a pas des problèmes.

Nico : Si ce sont des serveurs avec vous tout seul dessus, il y a moins de risques, mais en tout cas, si vous utilisez du cloud, vérifiez que votre prestataire a bien fait les mises à jour et rebooté les machines, etc.

Manu : Moi je suis bien embêté avec ça !

Nico : Il y a Gandi, online, OVH, Amazon, enfin tous ceux-là ont commencé déjà à faire le boulot.

Luc : Est-ce qu’il y a des virus connus, pour l’instant, qui exploitent ça ?

Nico : Pour l’instant il n’y a pas de virus connu. Les exploits sont disponibles, donc le code source est disponible pour exploiter ces bugs-là. Les morceaux de code en JavaScript, en particulier, et autres.

Manu : Ça fait peur ça !

Nico : On n’a pas encore d’exploitation connue de ça. La NSA aussi a été contactée et a dit : « Non, non, on n’était pas au courant. »

Manu : Et on a super confiance !

Luc : Potentiellement il y en a d’autres, en plus. On a trouvé celui-là mais, potentiellement, il y a d’autres bugs de matériel de ce type-là ?

Nico : C’est surtout que le bug est énorme. Le principe fondamental d’exécution anticipée fait qu’on peut potentiellement détourner de plein de manières différentes, et que là c’est juste un exploit particulier qui est assez agressif et assez efficace. Mais effectivement, je pense que les chercheurs vont s’en donner à cœur joie pour faire mumuse avec tous ces trucs-là.

Manu : On peut peut-être arrêter là-dessus. Je pense que, de toutes façons, c’est un sujet qui va revenir.

Luc : De toutes manières tu es blême, donc je pense qu’il faut qu’on s’arrête. Je commence à craindre pour ta santé ! Nicolas merci beaucoup pour tout ce cours. On se retrouve la semaine prochaine.

Manu : À la semaine prochaine !

Nico : Bonne semaine à tous.