
Investigación y PoC práctica de la Variante 2 de Spectre (CVE-2017-5715), una vulnerabilidad de canal lateral de hardware que explota la ejecución especulativa de la CPU y la predicción de saltos. Incluye configuración de laboratorio, identificación de vulnerabilidades, recorrido del exploit, análisis de tiempos de caché, video de demostración y estrategias de mitigación.
Un documento de investigación en profundidad y una Prueba de Concepto (PoC) práctica que explora ataques de ejecución especulativa en CPUs modernas.
Este proyecto es una exploración de investigación y laboratorio de Spectre Variant 2 (CVE-2017-5715), también conocido como Branch Target Injection — una vulnerabilidad de canal lateral a nivel de hardware que afecta a CPUs que implementan ejecución especulativa y predicción de ramas.
El objetivo de este proyecto fue:
⚠️ Aviso legal: Este trabajo se realizó estrictamente en una máquina virtual controlada y aislada con fines académicos y educativos. No apunta ni afecta a ningún sistema de producción, y no se redactó código de explotación propietario; se utilizó el repositorio público SpectrePoC para la demostración.
CVE-2017-5715 es una vulnerabilidad de microprocesador que permite a un atacante engañar al predictor de ramas de una CPU para que ejecute instrucciones en una ruta incorrecta ("especulativa"). Aunque la CPU descarta correctamente los resultados de esta predicción errónea, no logra borrar por completo los efectos secundarios — más notablemente, los cambios en el estado de la caché de la CPU. Estos cambios residuales en la caché pueden medirse mediante análisis de temporización, lo que permite a un atacante inferir datos secretos que nunca deberían haber sido accesibles.
A diferencia de los errores de software tradicionales, Spectre explota el diseño de hardware de las CPUs modernas, lo que hace que sea extremadamente difícil de parchear por completo y requiere una combinación de mitigaciones a nivel de microcódigo, sistema operativo y compilador.
| Componente | Detalles |
|---|---|
| Sistema Operativo | Ubuntu 14.04 LTS |
| Versión del Kernel | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| Virtualización | VMware Workstation |
| Repositorio PoC | crozone/SpectrePoC |
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linux expone el estado de vulnerabilidad/mitigación de la CPU directamente a través de sysfs:
grep . /sys/devices/system/cpu/vulnerabilities/*
Esto confirmó que la CPU de prueba era vulnerable a spectre_v2, mientras que otras vulnerabilidades relacionadas (Meltdown, L1TF, MDS) estaban mitigadas o no afectaban.
./spectre.out
La herramienta reporta repetidamente resultados Success junto con una "puntuación" de confianza, derivada de las diferencias de temporización de caché — cada lectura exitosa representa un byte filtrado de memoria que de otro modo sería inaccesible, reconstruido completamente a través del canal lateral especulativo.
En este repositorio se incluye un video grabado que recorre toda la PoC, desde la configuración del entorno hasta la exfiltración exitosa de datos, para validar visualmente el ataque.
📁 Actualiza la ruta anterior una vez que el archivo de video se haya añadido a tu repositorio (por ejemplo, colócalo en una carpeta
demo/omedia/y ajusta el enlace en consecuencia).
Indirect Branch Restricted Speculation (IBRS) y mitigaciones similares reducen la fuga de información entre límites..
├── README.md
├── Research_Paper_-_CVE-2017-5715_Spectre_by_Shivam_Bhatt.pdf
└── demo/
└── spectre-poc-demo.mp4
Shivam Bhatt Diplomado de Posgrado en Ciberseguridad (Honores) — NAIT 🔗 No dudes en conectar en LinkedIn o contactarme para colaborar en investigación de ciberseguridad.
⭐ Si encontraste útil esta investigación, ¡considera darle una estrella al repositorio!