Quando capitano situazioni simili, cioè quando la propria credibilità potrebbe raggiungere i minimi storici da 25 anni a questa parte, l'unico modo per evitare una debacle irreparabile, è quello di puntare sulla disinformazione parziale. In cosa consiste questa strategia? Semplicemente nel confondere la pubblica opinione. Non si dicono bugie vere e proprie (Pratica punibile severamente negli USA), ma si cerca di mescolare più argomenti in uno solo, al fine di creare un'unica grande notizia difficilmente comprensibile e razionalizzabile, cercando inoltre di generare FUD anche nei confronti dei concorrenti diretti, i quali potrebbero approfittare della situazione (In questo caso ARM e AMD).

Cerchiamo di capire quello che sta accandendo, anche perché il tutto ha una valenza pedagogica per il consumatore.

Attualmente esistono due tipologie di gravi bug (Flaws) che affliggono le CPU contemporanee, uno chiamato Spectre (In due varianti) ed uno chiamato Meltdown (Qui il link al Project Zero di Google). Il primo bug affligge gran parte delle CPU attualmente in commercio (La stragrande maggioranza delle CPU Intel, alcune CPU AMD, le CPU SPARC, le CPU ARM), mentre il secondo, Meltdown, affligge le sole CPU Intel. Le ultime CPU AMD sembrano essere immuni ad entrambi questi bug. Come riporta anche Google, sembrerebbe che le CPU basate su uArch Bulldozer e Zen siano afflitte da Spectre, ma solo in una variante delle due. Spectre inoltre deve essere Fixato direttamente dal produtture del Software (Cioè del Programma), mentre Meltdown richiede una aggiornamento del Sistema Operativo. In ultimo, le CPU AMD per essere vulnerabili a Spectre in GNU/Linux, devono far girare un Kernel compilato dall'utente, con un'opzione opportunatamente "flaggata". Di default, su GNU/Linux, le CPU AMD non sembrano affette da nessuno dei 3 bug. N.B. V'è poi da menzionare il fatto che Spectre colpisce un'intera tipologia di processori, caratterizzati da un design (Speculative execution) comune a tutti i processori OoO (Out-of-Order) oggi in commercio (Perfino gli immotali IBM Z-series!). Per rendere immuni i processori ordierni a Spectre servirebbe ripensare completamente il loro design, buttando nel cesso ogni software fino ad oggi realizzato.

Qui una tabella riassuntiva dei Bug, e della loro possibile soluzione:

  • Variant 1 (Spectre1): bounds check bypass (CVE-2017-5753)
  • Variant 2 (Spectre2): branch target injection (CVE-2017-5715)
  • Variant 3 (Meltdown): rogue data cache load (CVE-2017-5754)

AMD ha direttamente affermato, tramite un proprio dipendente (Tom Lendacky, SMTS Software Engineer) che Zen non è afflitto da Meltdown (Al 99,9% ... è sempre meglio stare sul sicuro, con tutti gli avvocati che girano!): "AMD processors are not subject to the types of attacks that the kernel page table isolation feature protects against. The AMD microarchitecture does not allow memory references, including speculative references, that access higher privileged data when running in a lesser privileged mode when that access would result in a page fault".

Non solo. Secondo diversi studi, le patch relative a Spectre - rilasciate già da tempo - impatterebbero sì sulle prestazioni delle CPU (In maniera molto leggera, visto che è una patch di sicurezza che va applicata al singolo software a discrezione della Software House), ma non quanto la patch relativa al bug Meltdown. Inoltre Spectre è di più difficile exploit rispetto a Meltdown, ed al contempo garantisce meno vantaggi (Ad esempio, non è possibile prendere l'intero controllo di un PC, ma solo di una porzione di questo).

Intel, con il proprio comunicato ufficiale, cerca invece di mettere tutti questi bug sul medesimo piano, non citandoli singolarmente, così da far credere che sia le CPU ARM sia le CPU AMD sarebbero afflitte dai medesimi problemi: "Intel is committed to product and customer security and is working closely with many other technology companies, including AMD, ARM Holdings and several operating system vendors, to develop an industry-wide approach to resolve this issue promptly and constructively".

La frase appena citata fa implicitamente credere, ad un lettore che conosce poco il problema, che Intel, AMD ed ARM abbiano i medesimi problemi, e che quindi debbano risolverli con la medesima patch, che porterà ai medesimi cali prestazionali (Cosa non vera, come abbiamo constatato: Intel è afflitta da 3 bug su 3, mentre AMD da 1 su 3 per Bulldozer, e sempre 1 su 3 per Zen. Nel caso di AMD la variante 1 di Spectre). Un'altra cosa interessante da notare, è come si affermi che le CPU Intel siano oggi più sicure di quelle di AMD ed di ARM perché il Bug è stato scoperto, e una patch l'ha risolto, mentre le CPU delle altre case potrebbero essere afflitte dal medesimo bug, o da uno simile, e gli utenti sarebbero ancora esposti al problema credendo invece di essere al sicuro (Psicologia del terrore?).

Tra l'altro diversi utenti, anche molto esperti, stanno tentando di ricrerare il medesimo Bug Meltdown che affligge le CPU Intel anche su CPU AMD ed ARM, senza però alcun successo. Dal sito Meltdownattack è possibile leggere: "The Meltdown paper showed they got passwords from an Intel i7 6700K. But, We also tried to reproduce the Meltdown bug on several ARM and AMD CPUs. However, we did not manage to successfully leak kernel memory with the attack described in Section 5, neither on ARM nor on AMD".

Alcuni utenti hanno ricreato, in maniera molto semplice, la modalità d'attacco sulle CPU Intel (Ma non su AMD, e solo su alcune di ARM). Qui di seguito due esempi che stanno facendo il giro del mondo attraverso Twitter:

Il fatto che attualmente le patch relative al Bug Meltdown colpiscano indiscriminatamente ogni CPU, e non solo quelle realmente afflitte dal problema, in parte favorisce questa visione di Intel. D'altra parte Microsoft e la Linux Foundation hanno deciso saggiamente di chiudere il prima possibile la falla, rilasciando poi in un secondo momento patch più mirate, escludendo con calma le CPU immuni dal Bug (Anche per questo, non è detto che la lista delle CPU afflitte dal Bug Meltdown si possa fermare alle sole CPU Intel in un prossimo futuro).

Nel mentre Linus Torvalds, padre-padrone di Linux, prende posizione nel suo solito stile, al contempo appoggiando la posizione di AMD: "Exclude AMD from the PTI enforcement. Not necessarily a fix, but if AMD is so confident that they are not affected, then we should not burden users with the overhead".

 

Sarà interessante capire nei prossimi giorni quanto queste patch inficieranno le CPU afflitte dal bug Meltdown, e se la lista delle CPU che ne sono afflitte si allargherà. Nel mentre il comunicato di Intel ha avuto successo, in quanto ha fermato l'ascesa del titolo di AMD, che da un +10,5% è sceso ad un +7,5% finale, ed al contempo ha limitato la caduta del titolo Intel, passato da un -7% ad un -4,5%.

Un ragazzo su Twitter, nick "Jonathan Morton", ci ha linkato un suo sunto tecnico della questione, pubblicato su Reddit. Qui le parti più interessanti, riguardo ogni singolo bug:

  • Spectre v1: "Bounds-Check Bypass". Vulnerable CPUs: Potentially anything with branch-prediction and a sufficiently deep pipeline. This is not an x86-specific exploit. The newer the CPU, the more likely it is vulnerable. In particular on the AMD side, Piledriver, Excavator and Ryzen are confirmed to be vulnerable - but this is nothing special. Potentially even K6 and Pentium Pro are vulnerable, but early Atoms and the Pentium-MMX are not.
  • Spectre v2: "Branch Target Injection". Vulnerable CPUs: This attack requires poisoning the CPU's BTB. This is easy on at least Intel Haswell CPUs (and probably some other Intel CPUs), because BTB entries are aliased in a very predictable way. Some recent ARM Cortex-A series CPU cores are reportedly vulnerable too, for the same reason. It is much more difficult on all AMD CPUs, because BTB entries are not aliased - the attacker must know (and be able to execute arbitrary code at) the exact address of the targeted branch instruction.
  • Meltdown: "Rogue Data Cache Load". Vulnerable CPUs: This attack requires that the CPU fails to promptly check security flags while performing L1 D-cache loads for a speculatively-executed instruction. Various Intel CPUs (the full extent is not yet clear) are vulnerable. AMD CPUs are not vulnerable.