Google ha rivelato i dettagli completi sulla vulnerabilità EntrySign, che riguarda la validazione delle firme digitali nel microcodice dei processori basati su architettura AMD Zen. La falla di sicurezza, la cui esistenza era stata rivelata a febbraio 2025, potrebbe compromettere l’integrità degli aggiornamenti del microcodice, consentendo la potenziale esecuzione di codice malevolo a livello di CPU.
Nella loro analisi approfondita, i tecnici Google hanno analizzato il funzionamento del microcodice Zen, il processo di verifica delle patch adottato da AMD e il meccanismo crittografico alla base del suo funzionamento, evidenziando alcune debolezze nella sua implementazione.
Cos’è il microcodice e perché è cruciale per la sicurezza
I moderni processori x86, come quelli di AMD e Intel, utilizzano un’architettura ibrida che combina un set di istruzioni complesso (CISC) con un motore microcodice basato su un’architettura RISC interna. Il microcodice gestisce l’interpretazione e l’esecuzione delle istruzioni complesse, permettendo agli sviluppatori hardware di correggere errori critici senza dover riprogettare il silicio.
A partire dal 1995 per Intel (P6) e dal 2003 per AMD (K8), i produttori hanno introdotto la possibilità di aggiornare il microcodice tramite patch caricate in fase di avvio del sistema. Tuttavia, data la loro natura critica, le patch del microcodice devono essere adeguatamente protette per prevenire modifiche non autorizzate.
Il microcodice e le patch sono memorizzati in un’area di memoria dedicata all’interno del processore, con un’area della RAM riservata alle correzioni che possono essere applicate dinamicamente. AMD ha implementato un sistema di verifica della firma per garantire che solo gli aggiornamenti autentici e verificati possano essere effettivamente installati.
Vulnerabilità nella validazione della firma
Gli esperti di Google (Josh Eads, Tavis Ormandy, Matteo Rizzo, Kristoffer Janke ed Eduardo Vela Nava) spiegano che la vulnerabilità EntrySign risiede nel modo in cui AMD implementa il meccanismo di verifica della firma digitale.
La società guidata da Lisa Su utilizza l’algoritmo RSASSA-PKCS1-v1_5 per verificare la firma delle patch, ma invece di affidarsi a funzioni hash standard (come SHA-256), utilizza AES-CMAC, una funzione che, pur essendo crittograficamente sicura per l’integrità dei dati, non è stata progettata per la firma digitale.
AES-CMAC, sebbene robusto in termini di autenticazione dei messaggi, non garantisce le stesse proprietà in termini di resistenza alle collisioni assicurati da SHA-256 o SHA-3. Ciò apre la porta a possibili attacchi in cui un attore malevolo può generare una patch microcodice contraffatta con un hash AES-CMAC valido, permettendo di bypassare la protezione RSA e iniettare codice arbitrario all’interno della CPU.
Possibili attacchi
Se un attaccante riuscisse a sfruttare la vulnerabilità descritta da Google:
- Eseguire codice arbitrario a livello di microcodice, ottenendo il controllo assoluto sul processore.
- Manipolare il comportamento delle istruzioni x86, creando backdoor hardware.
- Alterare i meccanismi di sicurezza del sistema operativo, rendendo impossibile il rilevamento di malware avanzato.
Niente male, vero? E il fatto è che non si tratta di uno studio meramente concettuale. Il team di Google ha infatti condiviso su GitHub un software chiamato Zentool che di fatto permette di iniettare microcodice nei chip AMD Zen.
Zentool: Analisi e manipolazione del microcodice AMD
L’esposizione di una vulnerabilità come EntrySign nei processori AMD Zen 1-4, che permette l’installazione di patch arbitrarie a livello di microcodice, apre la strada a nuove possibilità di ricerca e sviluppo.
Zentool, un insieme di strumenti per l’analisi e la modifica del microcodice AMD, attualmente offre le seguenti possibilità:
- Disassemblaggio del microcodice: Sebbene l’architettura di microcodice AMD non sia completamente documentata, il tool è in grado di decodificare e analizzare alcune istruzioni.
- Creazione di patch personalizzate: È possibile scrivere nuove sequenze di istruzioni.
- Firma e caricamento di patch: Le patch modificate possono essere firmate e caricate nei processori AMD vulnerabili tramite un meccanismo standard.
- Ricerca sulla crittografia del microcodice: Il team dietro Zentool sta studiando le modalità di cifratura e decifratura delle patch per il microcodice.
Per fare un esempio concreto, nella loro analisi i ricercatori Google spiegano come modificare l’istruzione RDRAND
, un’operazione x86 per la generazione di numeri casuali basata su un generatore hardware. Nel test eseguito dai tecnici, il comportamento di RDRAND
è stato alterato in modo tale da restituire sempre il valore 4.