CPU 보안 취약점(Meltdown/Spectre)이 뭐예요?
Meltdown과 Spectre 같은 CPU 보안 취약점을 미리 짐작해서 몰래 일하다 생긴 흔적 이야기로 풀어봤어요.
일꾼이 일을 하나씩 순서대로만 하면 너무 느려요.그동안 손님이 한참 기다려요.
일꾼이 다음 일을 미리 짐작해서 몰래 준비해 둬요.일꾼은 CPU예요. 짐작이 맞으면 순서대로 할 때보다 훨씬 빨라요 — 그런데…
짐작이 틀려도 엿본 흔적이 선반에 남아요.공격자는 이 흔적을 재서 금고 속 비밀을 알아내요 — 이 공격이 Meltdown과 Spectre예요.
Meltdown과 Spectre는 엿보는 대상이 달라요.Meltdown은 원래 못 들어가는 방(커널)까지 엿보고, Spectre는 프로그램을 속여서 짐작을 유도해 다른 방을 엿봐요.
패치하면 CPU가 느려질 수 있고, 짐작에서 생기는 틈을 완전히 없애긴 어려워요.판자(패치)는 흔적을 줄이지만, CPU가 빠른 이유가 바로 짐작이라서 틈을 완전히 없애진 못해요.
CPU 보안 취약점(Meltdown/Spectre) = CPU가 미리 짐작해서 몰래 일하다가, 짐작이 틀려도 선반(캐시)에 흔적을 남겨서, 공격자가 그 흔적을 재 정보를 빼낼 수 있는 틈.
Meltdown과 Spectre(2018년 공개)는 현대 CPU의 투기적 실행(speculative execution) 최적화 기법을 악용하는 하드웨어 취약점이에요. CPU는 다음 명령을 미리 실행해 두고(Spectre는 분기 예측, Meltdown은 권한 검사보다 먼저 읽는 비순차 실행을 악용), 예측이 틀렸거나 권한이 없으면 결과를 폐기하지만 그 과정에서 접근한 메모리가 캐시에 남아요. 공격자는 캐시 접근 시간 차이를 측정하는 사이드채널 공격으로 커널 메모리(Meltdown)나 다른 프로세스의 메모리(Spectre)를 간접적으로 읽어낼 수 있어요. 마이크로코드·OS 패치로 완화하지만 성능 저하가 따를 수 있어요. Meltdown은 이후 나온 CPU에서 하드웨어로 막았지만, Spectre 계열은 설계 자체의 트레이드오프라 완전한 제거가 어려워요.
어른들은 이렇게 불러요
- 투기적 실행
Speculative execution - 미리 짐작해서 일하기. CPU를 빠르게 만드는 핵심 기법이에요. 짐작이 틀리면 결과만 버려요.
- 캐시 타이밍
Cache timing - 선반(캐시)에 남은 흔적. 엿본 메모리가 캐시에 올라가 있으면 다시 읽을 때 더 빨라요 — 그 속도 차이로 흔적을 알아내요.
- 사이드채널 공격
Side-channel attack - 흔적을 재서 알아내기. 직접 훔치는 게 아니라 시간차 같은 간접 신호로 알아내요.
- Meltdown
Meltdown - 금고(커널)까지 엿보기. 원래 접근이 전혀 안 되는 영역까지 짐작으로 들여다봐요.
- Spectre
Spectre - 다른 손님 방을 엿보도록 속이기. 프로그램 자체를 속여 짐작을 유도해요. Meltdown보다 막기 어려워요.
- 마이크로코드 패치
Microcode/OS patch - 선반에 덧댄 판자. 제조사·OS가 함께 막아요. → 목수가 보낸 판자
- 성능 저하
Performance cost - CPU가 짐작을 줄이면 느려져요. 안전과 속도를 맞바꾸는 트레이드오프예요.
- 하드웨어 취약점
Hardware vulnerability - CPU 설계 자체의 틈. 소프트웨어 패치만으론 완전히 못 막는 틈이에요.