
CPU의 추측 실행(speculative execution)과 분기 예측(branch prediction)을 악용하는 하드웨어 부채널 취약점인 Spectre Variant 2(CVE-2017-5715)에 대한 연구 및 실습형 PoC입니다. 실습 환경 설정, 취약점 식별, 익스플로잇 워크스루, 캐시 타이밍 분석, 데모 영상 및 대응 방안이 포함되어 있습니다.
최신 CPU의 추측 실행 공격을 탐구하는 심층 연구 논문 및 실습형 개념 증명(PoC)
이 프로젝트는 스펙터 변종 2(CVE-2017-5715), 일명 Branch Target Injection에 대한 연구 및 실습 기반 탐구입니다. 이는 추측 실행과 분기 예측을 구현하는 CPU에 영향을 미치는 하드웨어 수준의 부채널 취약점입니다.
이 프로젝트의 목표는 다음과 같습니다:
⚠️ 면책 조항: 이 작업은 학술 및 교육 목적으로 엄격히 통제된 격리된 가상 머신에서 수행되었습니다. 어떤 운영 체제도 대상으로 하거나 영향을 주지 않으며, 독점적인 익스플로잇 코드는 작성되지 않았습니다. 데모를 위해 공개적으로 이용 가능한 SpectrePoC 저장소를 사용했습니다.
CVE-2017-5715는 공격자가 CPU의 분기 예측기를 속여 잘못된 ("추측") 경로를 따라 명령어를 실행하도록 하는 마이크로프로세서 취약점입니다. CPU는 이 잘못된 예측의 결과를 올바르게 폐기하지만, 부작용—특히 CPU 캐시 상태의 변경—을 완전히 지우지는 못합니다. 이러한 잔여 캐시 변경은 타이밍 분석을 통해 측정될 수 있으며, 이를 통해 공격자는 절대 접근할 수 없었어야 할 비밀 데이터를 추론할 수 있습니다.
기존 소프트웨어 버그와 달리, Spectre는 최신 CPU의 하드웨어 설계를 익스플로잇하므로 완전한 패치가 매우 어렵고 마이크로코드, OS, 컴파일러 수준의 완화 조치를 조합해야 합니다.
| 구성 요소 | 세부 사항 |
|---|---|
| 운영 체제 | Ubuntu 14.04 LTS |
| 커널 버전 | 4.4.0-148-generic |
| CPU | 12th Gen Intel® Core™ i5-12450H |
| 가상화 | VMware Workstation |
| PoC 저장소 | crozone/SpectrePoC |
sudo apt update
sudo apt install git
git clone https://github.com/crozone/SpectrePoC
cd SpectrePoC
make
Linux는 sysfs를 통해 CPU 취약점/완화 상태를 직접 노출합니다:
grep . /sys/devices/system/cpu/vulnerabilities/*
이를 통해 테스트 CPU가 spectre_v2에 취약함을 확인했으며, 다른 관련 취약점(Meltdown, L1TF, MDS)은 완화되었거나 영향을 받지 않았습니다.
./spectre.out
이 도구는 캐시 타이밍 차이에서 파생된 신뢰도 "점수"와 함께 Success 결과를 반복 보고합니다. 각 성공적인 읽기는 추측 부채널을 통해 완전히 재구성된, 그렇지 않으면 접근할 수 없는 메모리의 유출된 바이트 하나를 나타냅니다.
전체 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을 통해 연락해 주세요.
⭐ 이 연구가 유용하셨다면 저장소에 별표를 눌러주세요!