
Recherche et preuve de concept pratique de la variante 2 de Spectre (CVE-2017-5715), une vulnérabilité matérielle par canal auxiliaire exploitant l'exécution spéculative et la prédiction de branche du CPU. Comprend la configuration du laboratoire, l'identification de la vulnérabilité, la procédure détaillée de l'exploit, l'analyse des temporisations de cache, une vidéo de démonstration et des stratégies d'atténuation.
Un document de recherche approfondi et une preuve de concept (PoC) pratique explorant les attaques par exécution spéculative sur les CPU modernes.
Ce projet est une exploration de recherche et en laboratoire de la Variante 2 de Spectre (CVE-2017-5715), également connue sous le nom d'Injection de cible de branche — une vulnérabilité de canal auxiliaire au niveau matériel affectant les CPU qui implémentent l'exécution spéculative et la prédiction de branche.
L'objectif de ce projet était de :
⚠️ Avertissement : Ce travail a été réalisé strictement dans une machine virtuelle contrôlée et isolée à des fins académiques et éducatives. Il ne cible ni n'affecte aucun système de production, et aucun code d'exploitation propriétaire n'a été écrit — le dépôt SpectrePoC disponible publiquement a été utilisé pour la démonstration.
CVE-2017-5715 est une vulnérabilité de microprocesseur qui permet à un attaquant de tromper le prédicteur de branche d'un CPU pour qu'il exécute des instructions sur un chemin incorrect ("spéculatif"). Alors que le CPU rejette correctement les résultats de cette mauvaise prédiction, il ne parvient pas à effacer complètement les effets secondaires — notamment les modifications de l'état du cache CPU. Ces modifications résiduelles du cache peuvent être mesurées à l'aide d'une analyse temporelle, permettant à un attaquant de déduire des données secrètes qui n'auraient jamais dû être accessibles.
Contrairement aux bogues logiciels traditionnels, Spectre exploite la conception matérielle des CPU modernes, ce qui le rend extrêmement difficile à corriger complètement et nécessite une combinaison d'atténuations au niveau du microcode, du système d'exploitation et du compilateur.
| Composant | Détails |
|---|---|
| Système d'exploitation | Ubuntu 14.04 LTS |
| Version du noyau | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| Virtualisation | VMware Workstation |
| Dépôt PoC | crozone/SpectrePoC |
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linux expose l'état de vulnérabilité/atténuation du CPU directement via sysfs :
grep . /sys/devices/system/cpu/vulnerabilities/*
Cela a confirmé que le CPU testé était vulnérable à spectre_v2, tandis que d'autres vulnérabilités connexes (Meltdown, L1TF, MDS) étaient soit atténuées, soit non concernées.
./spectre.out
L'outil rapporte à plusieurs reprises des résultats Success accompagnés d'un "score" de confiance, dérivé des différences de temporisation du cache — chaque lecture réussie représente un octet divulgué d'une mémoire autrement inaccessible, reconstruit entièrement via le canal auxiliaire spéculatif.
Une procédure pas à pas enregistrée de la PoC complète — de la configuration de l'environnement à l'exfiltration réussie des données — est incluse dans ce dépôt pour valider visuellement l'attaque.
▶️ Regarder la vidéo de démonstration PoC
📁 Mettez à jour le chemin ci-dessus une fois que le fichier vidéo est ajouté à votre dépôt (par exemple, placez-le dans un dossier
demo/oumedia/et ajustez le lien en conséquence).
Indirect Branch Restricted Speculation (IBRS) et des atténuations similaires réduisent les fuites transfrontalières..
├── README.md
├── Research_Paper_-_CVE-2017-5715_Spectre_by_Shivam_Bhatt.pdf
└── demo/
└── spectre-poc-demo.mp4