vendredi 12 janvier 2018

Spectre et Meltdown

Nous allons aujourd'hui aborder un sujet qui défraie la chronique depuis quelques jours, à savoir les failles Spectre et Meltdown. Le but n'est pas d'expliciter dans le détail la façon dont fonctionnent ces failles. D'autres sites le feront bien mieux que moi. Il s'agit ici de tenter une explication qui se veut compréhensible sans avoir de connaissances particulières en informatique. Au vu de la complexité de la chose, ce sera une vraie satisfaction pour moi de réussir cet exposé.




Afin de mieux comprendre comment ces failles peuvent être exploitées, il faut se pencher sur l'architecture des processeurs modernes. J'entends par "modernes" les processeurs sortis depuis 1995, ce qui est très conséquent, malheureusement. Ces deux failles font appel à la mémoire cache et à l'exécution spéculative.


Le fonctionnement des processeurs

Je vais commencer par expliquer à quoi sert la mémoire cache. Le processeur fait une suite d'opérations relativement simples, telles que des additions, des soustractions, des multiplications, il va aussi aller chercher des informations dans la mémoire vive et en réécrire après une fois les calculs effectués. Sauf que la mémoire vive est bien plus lente que la vitesse à laquelle fonctionne le processeur. Ce dernier intègre donc une mémoire intermédiaire que l'on appelle mémoire cache. Elle n'est pas très grande, mais elle garde les données qui sont les plus susceptibles d'être utiles et le processeur pourra aller y piocher les informations nécessaires plutôt que d'aller voir ce qu'il y a dans la RAM. Le noyau de nos systèmes d'exploitation est en partie présent dans cette mémoire cache.

Les concepteurs des processeurs se sont vite rendu compte qu'il n'était pas très efficace de faire faire au processeur une série d'instructions à la chaîne et ils se sont penchés sur la façon d'optimiser l'efficacité du matériel. C'est ainsi qu'est née l'exécution spéculative. Le processeur étant capable de faire les choses très vite et même plusieurs choses simultanément, il a été décidé que l'on pouvait mettre sa puissance de calcul à profit pour traiter des instructions avant même de savoir si elle allaient être ou non nécessaires pour la suite. Au fil des ans, ce système a été amélioré et il est aujourd'hui devenu très efficace.  Il existe encore toutefois certains scénarios dans lesquels le processeur aura fait des calculs pour rien. Ces données qui ne servent pas sont dites rétractées et sont mises de côté.


Les failles

Et c'est là que nous rentrons dans le vif du sujet. Les attaques Spectre et Meltdown sont imaginées pour exploiter ces données qui sont en mémoire cache et les données rétractées après une exécution spéculative :
  • Meltdown va pour sa part tenter d'accéder aux informations qui sont dans la mémoire cache du processeur (ces informations y sont placées de telle sorte qu'elles peuvent être vues car elles ne sont pas protégées des regards extérieurs). Pour simplifier, on peut dire que ces données, dont certaines appartiennent au noyau du système d'exploitation sont présentes pèle-mêle, en n'étant pas cloisonnées. L'attaque fait en quelque sorte fondre le peu de barrières qui isole les données les unes des autres. C'est d'ailleurs la raison pour laquelle le logo de l'attaque représente un bouclier façon camembert coulant !
  • Spectre va quant à lui tenter de forcer le processeur à effectuer des actions spéculatives pour récupérer leur résultat dont il reste des traces qui s'avèrent elles aussi exploitables. La conceptrice du logo, Natascha Eibl, a imaginé un petit fantôme pour représenter l'attaque, car il n'y a pour le moment aucun moyen de s'en protéger et nous risquons d'être encore hantés par ce problème pendant quelques temps. La feuille de route d'Intel (la fameuse roadmap) est déjà toute tracée pour les deux ans à venir et les premiers processeurs parfaitement immunisés contre Spectre ne devraient pas voir le jour avant cela.

Les protections

Il est possible de se protéger de Meltdown. Cette attaque va tenter d'accéder à des informations présentes dans le noyau du système d'exploitation. Les éditeurs des systèmes sortent donc en catastrophe des mises à jour pour se prémunir d'une éventuelle attaque. C'est plus compliqué pour Spectre, car l'attaque (dont il existe deux variantes) va exploiter le mode de fonctionnement du processeur. Le seul moyen de s'en prémunir est donc de changer de processeur. Pas de panique toutefois. Il n'y a pour le moment aucune preuve d'une attaque à ce jour ayant exploité les failles. Ces attaques en sont au stade de P.O.C. (Proof Of Concept – preuve de concept) actuellement, ce qui signifie qu'elles ont été tentées en laboratoire et sont dont encore « théoriques ».

De plus, la mise en place de telles attaques requiert un niveau de compétences particulièrement élevé. Il est donc peu probable que nous soyons rapidement confrontés à des soucis. Ce qui ne doit pas empêcher de faire les mises à jour, quitte à voir les performances de ses appareils se dégrader.

Pour ne prendre que l'exemple de Microsoft, il communique sur les solutions mises en place sur les systèmes dont le plus ancien est Windows 7. Encore un preuve qu'il est décidément temps de donner un repos bien mérité aux systèmes précédents, dont Windows XP qui, malheureusement, est encore trop implanté (si encore il ne l'était que sur du monoposte n'ayant pas accès au net, mais ce n'est pas le cas et se connecter avec un tel système frise la folie aujourd'hui si l'on tient un tant soit peu à bénéficier d'un semblant de sécurité).

L'occasion de rappeler aussi que Windows 7 est en phase de support étendu depuis le 13 janvier 2015, que Windows 8 y est passé en janvier 2016 et que Windows 8.1 vient tout juste lui aussi de passer en support étendu (le 9 janvier 2018, soit il y a trois jours).


Quel impact sur les performances ?

A propos des performances, justement, j'ai beaucoup lu et entendu des personnes dire que s'ils mettaient à jour leur système, les performances allaient baisser de manière drastique. Les grands médias ont également tenu ce genre de discours, pour ne pas arranger les choses. Pas si vite ! Il faut bien considérer que les usages des ordinateurs sont multiples et que la mémoire cache et l'exécution spéculative ne sont pas exploitées systématiquement ni de la même manière. Il est donc important de considérer qu'il faut parler de cette baisse de performances d'une part au conditionnel et d'autre part ne pas la généraliser. Pour les usages domestiques, les mises à jour ne devraient pas trop impacter les performances. Dans le monde professionnel, c'est plus problématique. Les fournisseurs de service de Cloud ou les datacenter risquent de pâtir de ces mises  à jour. Pour reprendre une image bien connue, Madame Michu qui lit ses mails et qui fait de temps à autres une partie de Candy Crush sur Facebook ne devrait pas avoir à s'offrir le dernier processeur octocore pour pallier les éventuelles baisses de performances. :)

Aux dernières nouvelles, Microsoft a commencé à faire quelques tests et en a tiré quelques premières conclusions :
  • les machines dotées de processeurs récents (2016 et après) et sur lesquelles est installé Windows 10 ne verraient quasiment aucune perte de performances ;
  • les machines dotées de processeurs plus anciens sous Windows 10 (2015 et moins) auraient des baisses de performances visibles mais non handicapantes ;
  • les machines dotées de systèmes d'exploitation plus anciens (Windows 8.x et Windows 7) amèneraient des pertes de performances plus conséquentes et parfois handicapantes ;
  • les machines dotées de systèmes serveur sont les plus impactées, quelle que soit leur génération.

Mon processeur est-il affecté ?

Des outils sont développés pour vérifier la vulnérabilité des processeurs de nos machines aux failles Spectre et Meltdown, l'éditeur AShampoo en propose un qui est téléchargeable sur son site : Spectre Meltdown CPU Checker.

Il existe également SpecuCheck sur Github, en ligne de commande :
Le site Techarp dresse pour sa part des listes des processeurs vulnérables, mais le suspense sera de courte durée sachant que la quasi-intégralité des processeurs en circulation sont dans une des listes.


Dernière minute

Il semble que de fausses mises à jour circulent déjà. Ainsi, en Allemagne, un site usurpe celui du B.S.I. (Bundesamt für Sicherheit in der Informationstechnik ou German Federal Office for Information Security en bon français) et propose un fichier nommé Intel-AMD-SecurityPatch.exe qui installe un logiciel malveillant. J'en profite donc pour rappeler que pour Windows, la mise à jour est proposée via Windows Update. Tout se passe donc directement au sein du système d'exploitation et il n'est nul besoin de télécharger quoi que ce soit qui protégerait possiblement des failles. Si pour le moment la menace n'a pas passé le Rhin, nous ne sommes pas à l'abri d'une tentative et ce n'est pas la ligne Maginot – ou plutôt ce qu'il en reste qui nous protégera bien longtemps. :)

Aucun commentaire:

Enregistrer un commentaire