{"id":16756,"date":"2019-01-07T16:58:11","date_gmt":"2019-01-07T14:58:11","guid":{"rendered":"https:\/\/www.kaspersky.it\/blog\/?p=16756"},"modified":"2019-11-22T10:57:54","modified_gmt":"2019-11-22T08:57:54","slug":"35c3-spectre-meltdown-2019","status":"publish","type":"post","link":"https:\/\/www.kaspersky.it\/blog\/35c3-spectre-meltdown-2019\/16756\/","title":{"rendered":"Spectrologia: vulnerabilit\u00e0 hardware delle CPU nel 2019"},"content":{"rendered":"<p>Durante il <a href=\"https:\/\/www.kaspersky.com\/blog\/tag\/35c3\/\" target=\"_blank\" rel=\"noopener nofollow\">35-esimo Chaos Communication Congress<\/a>, circa un anno dopo la prima pubblicazione relativa alle vulnerabilit\u00e0 hardware delle CPU taggate <a href=\"https:\/\/www.kaspersky.it\/blog\/two-severe-vulnerabilities-found-in-intels-hardware\/14880\/\" target=\"_blank\" rel=\"noopener\">Meltdown e Spectre<\/a>, un gruppo di ricercatori del dipartimento di tecnologia dell\u2019universit\u00e0 austriaca di Graz, ha parlato dello stato attuale delle vulnerabilit\u00e0 dei processori fino ad oggi conosciute. Spoiler: lo scorso anno ne sono venute alla luce parecchie.<\/p>\n<input type=\"hidden\" class=\"category_for_banner\" value=\"kis-difenditi-attacchi-informatici\">\n<h2><strong>Meltdown e Spectre in breve<\/strong><\/h2>\n<p>Innanzitutto, ricordiamo cosa sono Meltdown e Spectre e in cosa si differenziano.<\/p>\n<p>La vulnerabilit\u00e0 Meltdown \u00e8 apparsa in quanto i moderni processori possono eseguire istruzioni \u201cnon in ordine\u201d (out-of-order). Si tratta di una funzione molto pratica che accelera l\u2019elaborazione dei codici; tuttavia, in alcuni casi, pu\u00f2 capitare che il processore elabori un codice incline all\u2019errore, ossia un codice che non dovrebbe essere assolutamente eseguito. In altre parole, il codice viene eseguito dal processore e soltanto dopo l\u2019esecuzione diventa palese che l\u2019operazione non possa essere completata; ci\u00f2 accade proprio perch\u00e9 le istruzioni sono eseguite out-of-order.<\/p>\n<p>Naturalmente, i risultati di tali operazioni non saranno n\u00e9 trasmessi n\u00e9 utilizzati da nessuna parte; tuttavia, lasciano delle tracce a livello della microarchitettura, ossia nella memoria cache del processore. E da l\u00ec possono essere estratti. Con il risultato che la cache pu\u00f2 essere utilizzata per arrivare a dati che altrimenti non sarebbero accessibili, come una password ad esempio. Ecco come funziona: un programma pu\u00f2 richiedere l\u2019accesso ai dati nello storage, ai quali il sistema giustamente risponder\u00e0 che l\u2019accesso \u00e8 vietato in quanto manca l\u2019autorizzazione. Tuttavia, a causa dell\u2019esecuzione out-of-order delle operazioni, la password finir\u00e0 comunque nella cache e da l\u00ec potr\u00e0 essere facilmente recuperata.<\/p>\n<p>La vulnerabilit\u00e0 Spectre \u00e8 simile a Meltdown; tuttavia, sebbene sia anch\u2019essa legata all\u2019accelerazione di computing del processore, \u00e8 originata dalla funzione di predizione di branch dei processori moderni. In sostanza, un processore \u00e8 in grado di predire, con un certo grado di accuratezza, che, siccome l\u2019azione B normalmente segue l\u2019azione A, pu\u00f2 eseguire l\u2019azione B ancora prima di ricevere i risultati di A. Se l\u2019ipotesi si \u00e8 rivelata corretta e l\u2019azione B ha effettivamente seguito A, non ci sono problemi. Se i risultati di A indicano che il processore avrebbe dovuto completare l\u2019azione C invece della B, il processore abbandoner\u00e0 il branch B per spostarsi verso un altro dove completer\u00e0 l\u2019azione C.<\/p>\n<p>Dato che la funzione di predizione di salto pu\u00f2 essere istruita, nella maggior parte dei casi si ricorder\u00e0 i pattern della sequenza delle azioni, migliorando notevolmente le performance del processore (se B ha seguito A per molte volte, il processore parte dal presupposto che B dovr\u00e0 seguire sempre A in una determinata situazione). Eppure, le previsioni talvolta sbagliano (a volte arriva C invece di B, sebbene la predizione di branch si ricordi molto bene che normalmente A \u00e8 seguita da B).<\/p>\n<p>Se istruite a lungo il sistema dimostrando che una certa scelta \u00e8 quella corretta e viene sempre eseguita e successivamente modificate un parametro in modo tale che diventi errata, il processore la eseguir\u00e0 comunque per prima, per poi richiamarla dopo aver scoperto che avrebbe dovuto eseguirne un\u2019altra. Ma, analogamente a quanto accade con Meltdown, il risultato di tale azione rester\u00e0, per esempio, nella cache, da dove sar\u00e0 nuovamente estraibile.<\/p>\n<p>Le conseguenze sono circa le stesse: Spectre apre una porticina all\u2019accesso non autorizzato ai dati. Tale accesso pu\u00f2 avvenire solo nel caso in cui la predizione del branch sia errata \u00a0\u0336 \u00a0ma il semplice calcolo delle probabilit\u00e0 ci insegna che ci\u00f2 accadr\u00e0.<\/p>\n<h3><strong>Un anno dopo: circa venti nuove varianti Spectre e Meltdown<\/strong><\/h3>\n<p>Dopo la scoperta delle prime vulnerabilit\u00e0 Spectre e Meltdown, i ricercatori hanno iniziato a indagare in modo pi\u00f9 approfondito, scoprendo problemi analoghi con differenze minime. Hanno verificato che gli sviluppatori di processori utilizzano, inoltre, diverse ottimizzazioni che portano a vulnerabilit\u00e0 simili a Meltdown e Spectre. Il team dell\u2019universit\u00e0 di Graz ha identificato 14 vulnerabilit\u00e0 simili a Meltdown e 13 simili a Spectre, per un totale di 27 vulnerabilit\u00e0 hardware contro le due originali gi\u00e0 all\u2019inizio del 2018.<\/p>\n<div id=\"attachment_16758\" style=\"width: 1910px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16758\" class=\"wp-image-16758 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2019\/01\/09151751\/35c3-spectre-meltdown-2019-species.jpg\" alt=\"Durante l'anno, i ricercatori hanno individuato 14 varianti Meltdown e 13 Spectre\" width=\"1900\" height=\"1080\"><p id=\"caption-attachment-16758\" class=\"wp-caption-text\">Classificazione delle varianti Meltdown e Spectre identificate quest\u2019anno<\/p><\/div>\n<p>Inoltre, sebbene AMD avesse affermato gi\u00e0 in precedenza che i suoi processori non fossero esposti ad alcun tipo di vulnerabilit\u00e0 Meltdown, i ricercatori hanno scoperto una variante Meltdown (chiamata Meltdown-BR), perfettamente operativa con i processori di AMD. A questo punto, i processori di tre dei maggiori fornitori \u00a0\u00a0\u0336 \u00a0\u00a0AMD, ARM e Intel \u00a0\u00a0\u0336 \u00a0\u00a0sono soggetti sia a Meltdown che Spectre. O, comunque, ad alcune delle varianti di entrambi.<\/p>\n<p>Fortunatamente, una buona parte di queste numerose varianti non funziona con nessuna delle tre \u00a0\u00a0\u0336 \u00a0\u00a0o meglio, i tester non sono riusciti a farle funzionare. Tuttavia, la maggior parte riesce a funzionare altrove.<\/p>\n<p>Le societ\u00e0 hanno iniziato a rilasciare delle <a href=\"https:\/\/encyclopedia.kaspersky.com\/glossary\/patch\/?utm_source=kdaily&amp;utm_medium=blog&amp;utm_campaign=termin-explanation\" target=\"_blank\" rel=\"noopener\">patch<\/a> per i microcodici dei processori, per i sistemi operativi e per i programmi individuali gi\u00e0 a partire da gennaio 2018, allo scopo di mettere fine a questo tipo di seccature. Sfortunatamente, Spectre e Meltdown sono delle vulnerabilit\u00e0 hardware: esistono a livello hardware e non possono quindi essere completamente risolte con delle patch software.<\/p>\n<p>Una di queste patch \u00e8 stata implementata nel core di Linux OS, ma rallentava talmente il sistema che dopo poco tempo \u00e8 stata rimossa dal codice.<\/p>\n<p>Spectre \u00e8 piuttosto problematico in quanto ha come target diversi componenti della microarchitettura e pertanto deve essere sviluppata una patch diversa per ognuno di essi. E ognuna di queste patch necessita che determinate funzioni siano disattivate o che vengano effettuate azioni aggiuntive, riducendo ulteriormente la performance.<\/p>\n<p>Infatti, in alcuni casi le patch influiscono in modo talmente rigido sulle performance da far s\u00ec che un sistema con patch funzioni molto pi\u00f9 lentamente rispetto a uno in cui i componenti vulnerabili del processore vengano completamente disattivati.<\/p>\n<div id=\"attachment_16759\" style=\"width: 1357px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16759\" class=\"wp-image-16759 size-full\" src=\"https:\/\/media.kasperskydaily.com\/wp-content\/uploads\/sites\/89\/2019\/01\/09151901\/35c3-spectre-meltdown-2019-drill.png\" alt=\"Una simpatica immagine che rappresenta l'unico modo in cui ci si pu\u00f2 liberare completamente dei problemi legati a Meltdown e Spectre\" width=\"1347\" height=\"822\"><p id=\"caption-attachment-16759\" class=\"wp-caption-text\">Una soluzione radicale \u2014 rimuovere la parte vulnerabile del processore forando dove indicato (\u00e8 uno scherzo!)<\/p><\/div>\n<h3><strong>Il futuro di Spectre e Meltdown<\/strong><\/h3>\n<p>Nell\u2019ottobre 2018, Intel <a href=\"https:\/\/www.anandtech.com\/show\/13301\/spectre-and-meltdown-in-hardware-intel-clarifies-whiskey-lake-and-amber-lake\" target=\"_blank\" rel=\"noopener nofollow\">ha annunciato<\/a> che i suoi nuovi processori (la generazione che dovrebbe essere lanciata nel 2019) disporr\u00e0 di funzioni di protezione hardware Spectre e Meltdown. Tuttavia, ci\u00f2 \u00e8 stato previsto solo per le due versioni \u201cbase\u201d, delle quali per\u00f2 esistono molte pi\u00f9 varianti, come abbiamo spiegato in precedenza. Anche AMD sta elaborando una patch per le varianti Spectre per i processori di nuova generazione dall\u2019architettura Zen 2 che saranno rilasciati nel 2019. ARM, a sua volta, promette degli update dell\u2019hardware, <a href=\"https:\/\/developer.arm.com\/support\/arm-security-updates\/speculative-processor-vulnerability\" target=\"_blank\" rel=\"noopener nofollow\">affermando<\/a> che \u201ctutti i futuri processori saranno resistenti agli attacchi in stile Spectre\u201d.<\/p>\n<p>Buone notizie, certamente, per tutti coloro che acquisteranno i nuovi dispositivi in un prossimo futuro. Invece, tutti coloro che hanno acquistato un computer, uno smartphone o un altro dispositivo costruito intorno a un processore Intel, AMD o ARM nel 2018 o anche prima, dovranno installare praticamente delle patch per ogni cosa, riducendo le performance in maniera consistente. Molti sicuramente non avranno il tempo di farlo:<\/p>\n<p>I produttori di processori hanno ignorato le vulnerabilit\u00e0 hardware per troppo tempo, ottimizzando i processori solo a livello di performance. Ma tali ottimizzazioni presentano il rovescio della medaglia: se, da un lato, alcune cose sono state effettivamente migliorate, altre, invece, hanno creato ancora pi\u00f9 problemi. Sar\u00e0 una bella sfida liberarci di queste vulnerabilit\u00e0, vista la loro capacit\u00e0 di starsene ben nascoste. Tuttavia, bisogna dirlo, non \u00e8 poi cos\u00ec facile sfruttarle e trarne dei vantaggi e ci\u00f2 \u00e8 motivo di speranza \u00a0\u0336 \u00a0quantomeno fino all\u2019arrivo della nuova generazione di processori.<\/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","protected":false},"excerpt":{"rendered":"<p>Il 2018 \u00e8 trascorso all\u2019insegna delle vulnerabilit\u00e0 hardware Spectre e Meltdown. Cosa ci riserver\u00e0 il 2019?<\/p>\n","protected":false},"author":675,"featured_media":16757,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2641,2195],"tags":[3024,3028,3026,3027,2695,2697,435,1416,2694,3025,2693,584],"class_list":{"0":"post-16756","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-3028","11":"tag-amd","12":"tag-arm","13":"tag-ccc","14":"tag-chaos-communication-congress","15":"tag-cpu","16":"tag-intel","17":"tag-meltdown","18":"tag-processori","19":"tag-spectre","20":"tag-vulnerabilita"},"hreflang":[{"hreflang":"it","url":"https:\/\/www.kaspersky.it\/blog\/35c3-spectre-meltdown-2019\/16756\/"},{"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":"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":"fr","url":"https:\/\/www.kaspersky.fr\/blog\/35c3-spectre-meltdown-2019\/11315\/"},{"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.it\/blog\/tag\/35%d1%813\/","name":"35\u04413"},"_links":{"self":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/16756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/users\/675"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/comments?post=16756"}],"version-history":[{"count":7,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/16756\/revisions"}],"predecessor-version":[{"id":18530,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/posts\/16756\/revisions\/18530"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/media\/16757"}],"wp:attachment":[{"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/media?parent=16756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/categories?post=16756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kaspersky.it\/blog\/wp-json\/wp\/v2\/tags?post=16756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}