
Исследование и практический PoC Spectre Variant 2 (CVE-2017-5715), аппаратной уязвимости по побочному каналу, эксплуатирующей спекулятивное выполнение и предсказание ветвлений в CPU. Включает настройку лабораторной среды, идентификацию уязвимости, разбор эксплуатации, анализ таймингов кэша, демонстрационное видео и стратегии смягчения последствий.
Глубокое исследование и практический Proof-of-Concept (PoC), изучающий атаки на спекулятивное исполнение в современных CPU.
Этот проект — исследовательская и лабораторная работа, посвящённая Spectre Variant 2 (CVE-2017-5715), также известной как Branch Target Injection (инъекция цели перехода) — аппаратной side-channel уязвимости, затрагивающей CPU с поддержкой спекулятивного исполнения и предсказания переходов.
Цели проекта:
⚠️ Предупреждение: данная работа проводилась строго в контролируемой изолированной виртуальной машине в академических и образовательных целях. Она не направлена на производственные системы и не затрагивает их, а также не содержит собственного эксплойт-кода — для демонстрации использовался публично доступный репозиторий SpectrePoC.
CVE-2017-5715 — это уязвимость микропроцессоров, которая позволяет атакующему обмануть предсказатель переходов CPU и заставить его исполнять инструкции по неверному («спекулятивному») пути. Хотя CPU корректно отбрасывает результаты этого неверного предсказания, он не полностью стирает побочные эффекты — прежде всего, изменения состояния кэша CPU. Эти остаточные изменения в кэше можно измерить с помощью анализа времени доступа, что позволяет атакующему восстановить секретные данные, которые никогда не должны были стать доступными.
В отличие от традиционных программных ошибок, Spectre эксплуатирует аппаратную архитектуру современных CPU, что делает её крайне сложной для полного исправления и требует комбинации смягчений на уровне микрокода, ОС и компилятора.
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linux предоставляет статус уязвимостей/смягчений CPU напрямую через sysfs:
grep . /sys/devices/system/cpu/vulnerabilities/*
Это подтвердило, что тестовый CPU был уязвим к spectre_v2, тогда как другие связанные уязвимости (Meltdown, L1TF, MDS) были либо смягчены, либо не затрагивали систему.
./spectre.out
Инструмент многократно выводит результат Success вместе с показателем уверенности («score»), полученным на основе различий во времени доступа к кэшу — каждое успешное чтение представляет собой один утёкший байт недоступной иным образом памяти, восстановленный полностью через спекулятивный побочный канал.
Записанный разбор полного PoC — от настройки окружения до успешной эксфильтрации данных — включён в этот репозиторий для наглядного подтверждения работы атаки.
📁 Обновите указанный путь после добавления видеофайла в репозиторий (например, поместите его в папку
demo/илиmedia/и скорректируйте ссылку).
Indirect Branch Restricted Speculation (IBRS) и аналогичные меры снижают утечки между границами доверия..
├── README.md
├── Research_Paper_-_CVE-2017-5715_Spectre_by_Shivam_Bhatt.pdf
└── demo/
└── spectre-poc-demo.mp4
Shivam Bhatt Диплом последипломного образования по кибербезопасности (с отличием) — NAIT 🔗 Свяжитесь со мной в LinkedIn или обращайтесь для сотрудничества в области исследований кибербезопасности.
⭐ Если это исследование было полезным, поставьте звёздочку репозиторию!
| Компонент | Детали |
|---|
| Операционная система | Ubuntu 14.04 LTS |
| Версия ядра | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| Виртуализация | VMware Workstation |
| Репозиторий PoC | crozone/SpectrePoC |