토픽 28 / 111·CPU (Central Processing Unit)
투기적 실행 & 보안 취약점 (Speculative Execution: Spectre/Meltdown)
투기적 실행 & 보안 취약점 (Speculative Execution: Spectre/Meltdown)
CPU가 분기 결과를 예측하여 미리 명령어를 실행하는 최적화 기법으로, 예측 실패 시 롤백하지만 캐시 사이드 채널을 통한 정보 유출(Spectre/Meltdown) 취약점 발생
목적: 파이프라인 효율, 분기 지연 감소, ILP 향상
특징: 분기 예측 기반, 롤백 가능, 캐시 부작용, 사이드 채널 공격
투기적 실행 과정: 분기 예측 → 예측 경로 실행 → 예측 성공 시 커밋 → 실패 시 롤백(캐시 상태는 유지)
Spectre 취약점
- •Variant 1(Bounds Check Bypass): 배열 경계 검사 우회하여 메모리 읽기
- •Variant 2(Branch Target Injection): 간접 분기 조작하여 악성 코드 실행
- •사이드 채널로 캐시 타이밍 분석하여 데이터 유출
Meltdown 취약점: 권한 검사 전 투기적 실행으로 커널 메모리 읽기, 캐시에 흔적 남김
캐시 사이드 채널: Flush+Reload, Prime+Probe 등으로 캐시 접근 시간 측정하여 데이터 추론
완화 기법
- •KPTI(Kernel Page Table Isolation): 커널/사용자 페이지 테이블 분리(Meltdown)
- •Retpoline: 간접 분기를 리턴 기반으로 변환(Spectre V2)
- •IBRS/IBPB: 간접 분기 예측 제한(Intel)
- •배열 인덱스 마스킹: 배열 경계 외 접근 방지
성능 영향: KPTI 5-30% 성능 저하, Retpoline 10-20% 저하
장점: 투기적 실행 자체는 높은 성능 제공
단점: 보안 취약점, 완화 기법으로 인한 성능 저하, 하드웨어 수정 필요
적용사례: Intel/AMD/ARM CPU(2018년 발표), 클라우드 보안, 커널 패치
비교: Spectre(모든 CPU/응용프로그램) vs Meltdown(주로 Intel 및 일부 ARM·IBM/커널메모리)
연관: 분기 예측, 캐시, 사이드 채널, KPTI, CPU 보안