
Ricerca e PoC pratica di Spectre Variant 2 (CVE-2017-5715), una vulnerabilità hardware side-channel che sfrutta l'esecuzione speculativa della CPU e la predizione dei rami. Include configurazione del laboratorio, identificazione della vulnerabilità, analisi dettagliata dell'exploit, analisi dei tempi di cache, video dimostrativo e strategie di mitigazione.
Un documento di ricerca approfondito e una Proof-of-Concept (PoC) pratica che esplorano gli attacchi a esecuzione speculativa sulle CPU moderne.
Questo progetto è un'esplorazione teorica e di laboratorio di Spectre Variant 2 (CVE-2017-5715), nota anche come Branch Target Injection — una vulnerabilità hardware di tipo side-channel che colpisce le CPU che implementano esecuzione speculativa e predizione dei salti (branch prediction).
Gli obiettivi di questo progetto erano:
⚠️ Disclaimer: Questo lavoro è stato condotto esclusivamente in una macchina virtuale controllata e isolata per scopi accademici ed educativi. Non prende di mira né influisce su alcun sistema di produzione e non è stato scritto alcun codice exploit proprietario — per la dimostrazione è stato utilizzato il repository pubblico SpectrePoC.
CVE-2017-5715 è una vulnerabilità dei microprocessori che consente a un attaccante di ingannare il predittore di salti (branch predictor) della CPU, spingendola a eseguire istruzioni lungo un percorso errato ("speculativo"). Sebbene la CPU scarti correttamente i risultati di questa previsione errata, non riesce a cancellare completamente gli effetti collaterali — in particolare, le modifiche allo stato della cache della CPU. Questi residui nella cache possono essere misurati tramite analisi dei tempi (timing analysis), consentendo a un attaccante di dedurre dati segreti che non avrebbero mai dovuto essere accessibili.
A differenza dei tradizionali bug software, Spectre sfrutta la progettazione hardware delle CPU moderne, rendendola estremamente difficile da correggere completamente e richiedendo una combinazione di mitigazioni a livello di microcodice, sistema operativo e compilatore.
| Componente | Dettagli |
|---|---|
| Sistema Operativo | Ubuntu 14.04 LTS |
| Versione del Kernel | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| Virtualizzazione | VMware Workstation |
| Repository PoC | crozone/SpectrePoC |
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linux espone lo stato di vulnerabilità/mitigazione della CPU direttamente tramite sysfs:
grep . /sys/devices/system/cpu/vulnerabilities/*
Ciò ha confermato che la CPU di test era vulnerabile a spectre_v2, mentre le altre vulnerabilità correlate (Meltdown, L1TF, MDS) erano mitigate o non applicabili.
./spectre.out
Lo strumento riporta ripetutamente risultati Success insieme a un "punteggio" di confidenza, derivato dalle differenze nei tempi di accesso alla cache — ogni lettura riuscita rappresenta un byte divulgato di memoria altrimenti inaccessibile, ricostruito interamente tramite il canale laterale speculativo.
Una registrazione dell'intera procedura PoC — dalla configurazione dell'ambiente all'esfiltrazione riuscita dei dati — è inclusa in questo repository per validare visivamente l'attacco.
📁 Aggiorna il percorso sopra una volta aggiunto il file video al tuo repository (ad es. posizionalo in una cartella
demo/omedia/e modifica il link di conseguenza).
Indirect Branch Restricted Speculation (IBRS) e mitigazioni simili riducono le fughe di dati tra domini di sicurezza..
├── README.md
├── Research_Paper_-_CVE-2017-5715_Spectre_by_Shivam_Bhatt.pdf
└── demo/
└── spectre-poc-demo.mp4
Shivam Bhatt Diploma Post-Laurea in Cybersecurity (con Lode) — NAIT 🔗 Sentiti libero di connetterti su LinkedIn o di contattarmi per collaborazioni sulla ricerca in cybersecurity.
⭐ Se hai trovato utile questa ricerca, valuta di mettere una stella al repository!