{"id":11315,"date":"2019-01-11T10:04:21","date_gmt":"2019-01-11T10:04:21","guid":{"rendered":"https:\/\/www.kaspersky.fr\/blog\/?p=11315"},"modified":"2019-11-22T08:54:53","modified_gmt":"2019-11-22T08:54:53","slug":"35c3-spectre-meltdown-2019","status":"publish","type":"post","link":"https:\/\/www.kaspersky.fr\/blog\/35c3-spectre-meltdown-2019\/11315\/","title":{"rendered":"\u00c9tude de Spectre : vuln\u00e9rabilit\u00e9s hardware des processeurs en 2019"},"content":{"rendered":"<p>Lors du <a href=\"https:\/\/www.kaspersky.fr\/blog\/tag\/35c3\/\" target=\"_blank\" rel=\"noopener\">35<sup>\u00e8me<\/sup> Chaos Communications Congress<\/a>, soit pr\u00e8s d\u2019un an apr\u00e8s la premi\u00e8re publication sur les vuln\u00e9rabilit\u00e9s hardware des processeurs, appel\u00e9es Meltdown et Spectre, un groupe de chercheurs de l\u2019Universit\u00e9 de Technologie de Graz, en Autriche, a parl\u00e9 de l\u2019\u00e9tat actuel des vuln\u00e9rabilit\u00e9s hardware connues dans les processeurs. Spoiler\u00a0: l\u2019ann\u00e9e qui vient de s\u2019\u00e9couler nous a amen\u00e9 beaucoup plus de vuln\u00e9rabilit\u00e9s \u00e0 comprendre.<\/p>\n<p><strong>L\u2019essentiel sur Meltdown et Spectre<\/strong><\/p>\n<p>Nous allons tout d\u2019abord vous rappeler la nature de Meltdown et Spectre, et en quoi ils diff\u00e8rent.<\/p>\n<p>C\u2019est parce que les processeurs modernes peuvent ex\u00e9cuter des instructions dans le d\u00e9sordre que la vuln\u00e9rabilit\u00e9 Meltdown est apparue. Cette caract\u00e9ristique est particuli\u00e8rement utile puisqu\u2019elle acc\u00e9l\u00e8re le traitement du code, mais dans certains cas, le processeur traite un code vuln\u00e9rable aux erreurs qui ne devrait pas \u00eatre ex\u00e9cut\u00e9. Autrement dit, le code est d\u2019abord ex\u00e9cut\u00e9 par le processeur, et ce n\u2019est qu\u2019ensuite qu\u2019il s\u2019av\u00e8re que l\u2019op\u00e9ration ne peut pas \u00eatre termin\u00e9e. Ce genre de situations se produisent pr\u00e9cis\u00e9ment parce que les instructions sont ex\u00e9cut\u00e9es dans le d\u00e9sordre.<\/p>\n<p>Il est \u00e9vident que les r\u00e9sultats de ces op\u00e9rations ne seront pas transmis ou utilis\u00e9s n\u2019importe o\u00f9, et pourtant ils laissent des traces au niveau de la micro architecture, dans la m\u00e9moire cache du processeur. De plus, ils peuvent en \u00eatre extraits. Par cons\u00e9quent, le cache peut \u00eatre utilis\u00e9 pour mettre la main sur des donn\u00e9es qui ne seraient pas accessibles normalement, comme un mot de passe par exemple. Voici son fonctionnement\u00a0: un programme peut demander l\u2019acc\u00e8s aux donn\u00e9es stock\u00e9es, et le syst\u00e8me va r\u00e9pondre de fa\u00e7on raisonnable que l\u2019acc\u00e8s est refus\u00e9 pour manque d\u2019autorisation d\u2019acc\u00e8s. Cependant, \u00e0 cause de l\u2019ex\u00e9cution dans le d\u00e9sordre des op\u00e9rations, le mot de passe va tout de m\u00eame se retrouver dans le cache, et il peut facilement \u00eatre r\u00e9cup\u00e9r\u00e9. En r\u00e9sum\u00e9, Meltdown peut arriver lorsque vous essayez d\u2019ex\u00e9cuter une action injustifi\u00e9e.<\/p>\n<p>La vuln\u00e9rabilit\u00e9 Spectre ressemble \u00e0 Meltdown, mais m\u00eame si elle est li\u00e9e \u00e0 l\u2019acc\u00e9l\u00e9ration du calcul du processeur, elle vient de la fonction moderne de pr\u00e9diction du branchement du processeur. En g\u00e9n\u00e9ral, le cache peut anticiper, avec une certaine pr\u00e9cision, que comme l\u2019action B arrive g\u00e9n\u00e9ralement apr\u00e8s l\u2019action A, il peut ex\u00e9cuter l\u2019action B avant que les r\u00e9sultats de A ne soient clairs. S\u2019il a vu juste, et que l\u2019action B a bien lieu, alors tout va bien\u00a0; mais si les r\u00e9sultats de A montrent que le processeur aurait d\u00fb ex\u00e9cuter l\u2019action C au lieu de B, alors le processeur va tout simplement abandonner le branchement B, et passer \u00e0 un autre o\u00f9 il doit achever l\u2019action C.<\/p>\n<p>La pr\u00e9diction de branchement peut \u00eatre form\u00e9e, puisque dans la plupart des cas elle retient les mod\u00e8les des s\u00e9quences d\u2019action, et par cons\u00e9quent elle am\u00e9liore les performances du processeur de fa\u00e7on significative\u00a0; si B a eu lieu plusieurs fois apr\u00e8s A, le processeur va consid\u00e9rer en toute logique que dans une situation similaire il devra \u00e9galement ex\u00e9cuter B apr\u00e8s A. Et pourtant il commet des erreurs\u00a0; parfois C arrive au lieu de B, m\u00eame si la pr\u00e9diction de branchement se souvient parfaitement que l\u2019action A est g\u00e9n\u00e9ralement suivie de B.<\/p>\n<p>Si vous pr\u00e9parez le syst\u00e8me assez longtemps, en lui montrant qu\u2019un branchement en particulier est le bon, qu\u2019il est toujours ex\u00e9cut\u00e9, puis modifiez un param\u00e8tre pour qu\u2019il devienne incorrect, le processeur va tout de m\u00eame l\u2019ex\u00e9cuter pour ensuite le r\u00e9voquer, apr\u00e8s avoir d\u00e9tect\u00e9 qu\u2019il aurait d\u00fb ex\u00e9cuter un autre branchement. Cependant, tout comme avec Meltdown, le r\u00e9sultat de cette action peut persister, dans le cache par exemple, d\u2019o\u00f9 les informations peuvent \u00eatre extraites.<\/p>\n<p>Les cons\u00e9quences sont assez similaires\u00a0: Spectre ouvre une trappe pour un acc\u00e8s non autoris\u00e9 aux donn\u00e9es. Cet acc\u00e8s ne serait donn\u00e9 que lorsque la pr\u00e9diction de branchement se tromperait, mais l\u2019existence de cette simple probabilit\u00e9 nous indique que cela va arriver.<\/p>\n<p><strong>Un an plus tard\u00a0: plus d\u2019une vingtaine de nouvelles variantes de Spectre et Meltdown<\/strong><\/p>\n<p>Apr\u00e8s avoir d\u00e9couvert les premi\u00e8res vuln\u00e9rabilit\u00e9s Meltdown et Spectre, les chercheurs ont commenc\u00e9 \u00e0 faire des recherches plus actives \u00e0 ce sujet, et ils ont rapidement trouv\u00e9 des probl\u00e8mes similaires que seuls quelques petits d\u00e9tails diff\u00e9renciaient. Les d\u00e9veloppeurs de processeur ont \u00e9galement utilis\u00e9 d\u2019autres optimisations qui ont engendr\u00e9 des vuln\u00e9rabilit\u00e9s similaires \u00e0 Meltdown et Spectre. L\u2019\u00e9quipe de l\u2019Universit\u00e9 de Graz parle de 14 vuln\u00e9rabilit\u00e9s similaires \u00e0 Meltdown, et de 13 similaires \u00e0 Spectre, soit un total de 27 vuln\u00e9rabilit\u00e9s hardware du processeur, alors qu\u2019au d\u00e9but de 2018 il n\u2019y en avait que deux qui appartenaient \u00e0 ces groupes.<\/p>\n<div id=\"attachment_11317\" style=\"width: 1910px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11317\" class=\"wp-image-11317 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/93\/2019\/01\/11095627\/35c3-spectre-meltdown-2019-species.jpg\" alt=\"\" width=\"1900\" height=\"1080\"><p id=\"caption-attachment-11317\" class=\"wp-caption-text\">Classification des variantes de Meltdown et Spectre d\u00e9tect\u00e9es cette ann\u00e9e<\/p><\/div>\n<p>\u00a0<\/p>\n<p>De plus, m\u00eame si AMD a rapidement d\u00e9clar\u00e9 que ses processeurs n\u2019\u00e9taient pas menac\u00e9s par les vuln\u00e9rabilit\u00e9s du groupe Meltdown, les chercheurs ont rapidement d\u00e9tect\u00e9 une variante de Meltdown, appel\u00e9e Meltdown-BR, qui fonctionnait parfaitement sur les processeurs AMD. \u00c0 ce stade, les processeurs des trois plus grands fournisseurs internationaux (AMD, AMR et Intel) sont susceptibles d\u2019\u00eatre touch\u00e9s par Meltdown et Spectre, ou du moins par une des variantes de ces deux groupes.<\/p>\n<p>Heureusement, une bonne partie des diff\u00e9rentes versions existantes ne fonctionne avec aucun d\u2019entre eux (pas ARM, ni AMD ou encore Intel), ou du moins les testeurs n\u2019ont pas r\u00e9ussi \u00e0 les faire fonctionner. Et pourtant la plupart de ces vuln\u00e9rabilit\u00e9s fonctionne au moins quelque part.<\/p>\n<p>Les entreprises ont commenc\u00e9 \u00e0 fournir des <a href=\"https:\/\/encyclopedia.kaspersky.com\/glossary\/patch\/?utm_source=kdaily&amp;utm_medium=blog&amp;utm_campaign=termin-explanation\" target=\"_blank\" rel=\"noopener\">patchs<\/a> pour les microcodes du processeur, les syst\u00e8mes d\u2019exploitation, et les programmes individuels en janvier 2018, dans l\u2019objectif de mettre un terme \u00e0 ces parasites. Malheureusement, Spectre et Meltdown sont des vuln\u00e9rabilit\u00e9s hardware. Elles existent au niveau hardware, et il est donc impossible de les \u00e9liminer compl\u00e8tement \u00e0 l\u2019aide de correctifs logiciel.<\/p>\n<p>Ainsi, un des patchs a \u00e9t\u00e9 mis en place dans le noyau de Linux OS, mais il ralentissait trop le syst\u00e8me, et a d\u00fb \u00eatre supprim\u00e9 du code apr\u00e8s un certain temps.<\/p>\n<p>Spectre est probl\u00e9matique puisqu\u2019il cible diff\u00e9rents composants de la micro architecture, et il faut donc concevoir un patch s\u00e9par\u00e9 pour chacun d\u2019entre eux. Chaque patch a besoin d\u2019avoir certaines fonctions d\u00e9sactiv\u00e9es, ou d\u2019ex\u00e9cuter certaines actions suppl\u00e9mentaires, et va donc entra\u00eener une baisse de performance encore plus importante.<\/p>\n<p>En r\u00e9alit\u00e9, la performance est souvent et s\u00e9v\u00e8rement affect\u00e9e par les patchs, et c\u2019est pourquoi un syst\u00e8me corrig\u00e9 fonctionne plus lentement qu\u2019un syst\u00e8me o\u00f9 tous les composants vuln\u00e9rables du processeur sont compl\u00e8tement d\u00e9sactiv\u00e9s.<\/p>\n<div id=\"attachment_11318\" style=\"width: 1357px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-11318\" class=\"wp-image-11318 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/93\/2019\/01\/11095820\/35c3-spectre-meltdown-2019-drill.png\" alt=\"\" width=\"1347\" height=\"822\"><p id=\"caption-attachment-11318\" class=\"wp-caption-text\">Solution radicale \u2013 retirer la partie vuln\u00e9rable du processeur en per\u00e7ant l\u00e0 o\u00f9 indiqu\u00e9. Vous vous doutez bien qu\u2019il s\u2019agit d\u2019une blague.<\/p><\/div>\n<p>\u00a0<\/p>\n<p><strong>Le futur de Spectre et Meltdown<\/strong><\/p>\n<p>Intel a annonc\u00e9 en octobre 2018 que ses nouveaux processeurs, c\u2019est-\u00e0-dire la g\u00e9n\u00e9ration qui devrait sortir en 2019, pr\u00e9sente une protection contre Spectre et Meltdown au niveau hardware. Mais ils ont tenu ces m\u00eames propos par rapport aux deux versions \u00ab\u00a0basiques\u00a0\u00bb qui, comme nous l\u2019avons d\u00e9j\u00e0 dit, sont en r\u00e9alit\u00e9 beaucoup plus nombreuses. AMD envisage \u00e9galement de corriger une des variations de Spectre dans la nouvelle version de l\u2019architecture Zen 2 de ses processeurs, qui devrait \u00eatre lanc\u00e9e en 2019. ARM a \u00e9galement promis de mettre \u00e0 jour son hardware, affirmant que \u00ab\u00a0tous ses prochains processeurs pourront r\u00e9sister aux attaques similaires \u00e0 Spectre\u00a0\u00bb.<\/p>\n<p>C\u2019est \u00e9videmment une bonne nouvelle, mais seulement pour les personnes qui vont acheter de nouveaux appareils. Toutes les personnes ayant achet\u00e9 un ordinateur, un smartphone, ou tout autre appareil \u00e9quip\u00e9 d\u2019un processeur Intel, AMD ou ARM en 2018, ou plus t\u00f4t, devront installer des patchs pour pratiquement tout, et donc r\u00e9duire leur performance de fa\u00e7on significative. Il est fort probable que les gens ne prennent pas le temps de le faire.<\/p>\n<p>Les fabricants de processeurs ont trop longtemps ignor\u00e9 les vuln\u00e9rabilit\u00e9s au niveau hardware, puisqu\u2019ils n\u2019optimisaient leurs processeurs que pour avoir une meilleure performance. Toutes ces optimisations ont un co\u00fbt\u00a0: certains aspects ont bel et bien \u00e9t\u00e9 am\u00e9lior\u00e9s, mais d\u2019autres ont engendr\u00e9 plus de probl\u00e8mes. \u00c9liminer ces vuln\u00e9rabilit\u00e9s est d\u00e9sormais un v\u00e9ritable d\u00e9fi puisqu\u2019elles sont profond\u00e9ment enterr\u00e9es. Il convient toutefois de dire qu\u2019exploiter ces vuln\u00e9rabilit\u00e9s n\u2019est pas si facile, ce qui nous laisse un peu d\u2019espoir, du moins jusqu\u2019\u00e0 ce que la nouvelle g\u00e9n\u00e9ration de processeurs soit obsol\u00e8te.<\/p>\n<p><span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe class=\"youtube-player\" type=\"text\/html\" width=\"640\" height=\"390\" src=\"https:\/\/www.youtube.com\/embed\/r5wtQBpRFsM?version=3&amp;rel=1&amp;fs=1&amp;showsearch=0&amp;showinfo=1&amp;iv_load_policy=1&amp;wmode=transparent\" frameborder=\"0\" allowfullscreen=\"true\"><\/iframe><\/span><\/p>\n<p>\u00a0<\/p>\n","protected":false},"excerpt":{"rendered":"<p>2018 a \u00e9t\u00e9 marqu\u00e9e par la d\u00e9couverte des vuln\u00e9rabilit\u00e9s hardware Spectre et Meltdown. Qu\u2019est-ce qui nous attendons en 2019 ?<\/p>\n","protected":false},"author":675,"featured_media":11316,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[686,1869],"tags":[3313,2679,2680,2672,3317,2673,322],"class_list":{"0":"post-11315","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-threats","8":"category-technology","9":"tag-35c3","10":"tag-ccc","11":"tag-chaos-communication-congress","12":"tag-meltdown","13":"tag-processeur","14":"tag-spectre","15":"tag-vulnerabilites"},"hreflang":[{"hreflang":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/35c3-spectre-meltdown-2019\/11315\/"},{"hreflang":"en-in","url":"https:\/\/www.kaspersky.co.in\/blog\/35c3-spectre-meltdown-2019\/14998\/"},{"hreflang":"en-ae","url":"https:\/\/me-en.kaspersky.com\/blog\/35c3-spectre-meltdown-2019\/12580\/"},{"hreflang":"en-us","url":"https:\/\/usa.kaspersky.com\/blog\/35c3-spectre-meltdown-2019\/16929\/"},{"hreflang":"en-gb","url":"https:\/\/www.kaspersky.co.uk\/blog\/35c3-spectre-meltdown-2019\/15128\/"},{"hreflang":"es-mx","url":"https:\/\/latam.kaspersky.com\/blog\/35c3-spectre-meltdown-2019\/13925\/"},{"hreflang":"es","url":"https:\/\/www.kaspersky.es\/blog\/35c3-spectre-meltdown-2019\/17620\/"},{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/35c3-spectre-meltdown-2019\/16756\/"},{"hreflang":"ru","url":"https:\/\/www.kaspersky.ru\/blog\/35c3-spectre-meltdown-2019\/22067\/"},{"hreflang":"tr","url":"https:\/\/www.kaspersky.com.tr\/blog\/35c3-spectre-meltdown-2019\/5552\/"},{"hreflang":"x-default","url":"https:\/\/www.kaspersky.com\/blog\/35c3-spectre-meltdown-2019\/25268\/"},{"hreflang":"pt-br","url":"https:\/\/www.kaspersky.com.br\/blog\/35c3-spectre-meltdown-2019\/11289\/"},{"hreflang":"pl","url":"https:\/\/plblog.kaspersky.com\/35c3-spectre-meltdown-2019\/10213\/"},{"hreflang":"de","url":"https:\/\/www.kaspersky.de\/blog\/35c3-spectre-meltdown-2019\/18332\/"},{"hreflang":"ja","url":"https:\/\/blog.kaspersky.co.jp\/35c3-spectre-meltdown-2019\/22205\/"},{"hreflang":"nl","url":"https:\/\/www.kaspersky.nl\/blog\/35c3-spectre-meltdown-2019\/23600\/"},{"hreflang":"ru-kz","url":"https:\/\/blog.kaspersky.kz\/35c3-spectre-meltdown-2019\/17806\/"},{"hreflang":"en-au","url":"https:\/\/www.kaspersky.com.au\/blog\/35c3-spectre-meltdown-2019\/21886\/"},{"hreflang":"en-za","url":"https:\/\/www.kaspersky.co.za\/blog\/35c3-spectre-meltdown-2019\/21832\/"}],"acf":[],"banners":"","maintag":{"url":"https:\/\/www.kaspersky.fr\/blog\/tag\/35c3\/","name":"35c3"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/posts\/11315","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/users\/675"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/comments?post=11315"}],"version-history":[{"count":2,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/posts\/11315\/revisions"}],"predecessor-version":[{"id":12735,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/posts\/11315\/revisions\/12735"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/media\/11316"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/media?parent=11315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/categories?post=11315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.fr\/blog\/wp-json\/wp\/v2\/tags?post=11315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}