부채널 공격 (Side-channel Attack, Meltdown/Spectre) 마이크로아키텍처 취약점 대응 소프트웨어 패치(KPTI, Retpoline)

핵심 인사이트 (3줄 요약)

  1. 본질: Meltdown과 Spectre는 소프트웨어의 버그가 아니라, 현대 CPU가 성능을 극대화하기 위해 도입한 **비순차적 실행(Out-of-Order Execution)**과 **분기 예측(Branch Prediction)**이라는 하드웨어 '마이크로아키텍처'의 근본적 취약점을 찌르는 최악의 부채널 공격(Side-channel Attack)이다.
  2. KPTI (Meltdown 방어): 멜트다운은 유저 모드에서 커널 메모리를 훔쳐보는 공격이다. 이를 막기 위해 리눅스 커널은 KPTI (Kernel Page Table Isolation) 패치를 도입하여, 유저 모드일 때는 커널 메모리 페이지 테이블을 아예 매핑에서 분리(격리)해 버림으로써 하드웨어가 커널 메모리를 캐시에 올리는 것 자체를 원천 차단했다.
  3. Retpoline (Spectre 방어): 스펙터는 CPU의 분기 예측기를 속여 엉뚱한 코드를 미리 실행(추측 실행)하게 한 뒤 캐시에 흔적을 남기는 공격이다. 구글은 **Retpoline(Return Trampoline)**이라는 소프트웨어 컴파일러 기법을 고안하여, 간접 분기(Indirect Branch)를 무한 루프에 빠지는 '트램펄린'으로 우회시킴으로써 CPU의 추측 실행을 고의로 교란하고 방어했다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

  • 개념:

    • 부채널 공격 (Side-channel Attack): 암호 알고리즘 자체의 수학적 결함을 찾는 것이 아니라, 알고리즘이 물리적 하드웨어(CPU)에서 돌아갈 때 발생하는 전력 소모량, 연산 시간(Timing), 캐시 상태 등의 '물리적 흔적(Side-channel)'을 측정하여 비밀 정보를 유추해 내는 해킹 기법.
    • Meltdown & Spectre (2018년 발표): 1995년 이후 생산된 거의 모든 인텔, AMD, ARM 프로세서에 내재된 하드웨어 설계상의 결함을 이용해, 격리되어야 할 커널 메모리나 다른 앱의 메모리를 훔쳐보는 사상 초유의 부채널 공격.
  • 필요성 (격리(Isolation)의 붕괴):

    • 운영체제의 가장 기본 원칙은 "유저 프로세스는 커널 메모리를 볼 수 없고, 프로세스 A는 프로세스 B의 메모리를 볼 수 없다"는 것이다(가상 메모리 보호).
    • 하지만 해커들은 CPU가 너무 똑똑해진 나머지, 권한 검사가 끝나기도 전에 미리 명령어를 실행(추측 실행)해 보고, 권한이 없으면 결과를 취소(Rollback)하지만 캐시(Cache)에는 그 흔적을 남긴다는 사실을 알아냈다.
    • 해커는 내가 읽을 수 있는 메모리 읽기 속도(Cache Hit/Miss)의 미세한 시간 차이를 재어, 커널 메모리에 저장된 관리자의 비밀번호를 바이트 단위로 유추(추출)해 냈다.
    • 해결책: 하드웨어를 전부 리콜할 수 없으니, 운영체제(커널)와 컴파일러가 스스로를 망가뜨리면서까지(성능 저하 감수) CPU의 똑똑한 기능을 바보로 만드는 소프트웨어 패치(KPTI, Retpoline)를 긴급히 적용해야만 했다.
  • 💡 비유:

    • 비순차적 실행/분기 예측 (CPU): 식당 종업원(CPU)이 손님이 "짜장면 하나랑, 돈 있으면 탕수육도..."라고 말하는 순간, 돈이 있는지 확인도 안 하고 주방에 "탕수육 만들어!"라고 미리 소리친다(추측 실행). 나중에 손님이 "돈 없네"라고 하면 주방에 "탕수육 취소!"라고 한다(롤백).
    • 부채널 공격: 도둑(해커)은 손님이 돈이 있는지 없는지 모른다. 하지만 주방에서 탕수육 냄새(캐시 흔적)가 났다가 멈추는 것을 코로 맡고(Side-channel), "아, 저 손님이 돈이 없구나"라는 비밀 정보를 완벽하게 유추해 낸다.
    • KPTI / Retpoline (방어): OS가 종업원에게 "절대 미리 예측해서 요리 시키지 마! 손님 지갑 확인하기 전엔 주방 문도 열지 마!"라고 규칙을 바꾼다. 속도는 느려지지만 냄새(캐시)가 새어나갈 일은 없어진다.
  • 발전 과정:

    1. 사건 발생 전: CPU 아키텍트들은 보안보다 성능(IPC 향상)을 위해 공격적인 분기 예측을 극한으로 발전시킴.
    2. Meltdown/Spectre 발각 (2018.01): 전 세계 클라우드(AWS, Azure)에 초비상이 걸리며 며칠 만에 긴급 커널 패치 배포.
    3. 소프트웨어 워크어라운드: KPTI(Meltdown), Retpoline(Spectre v2), IBPB/STIBP(마이크로코드 패치) 도입. 서버 성능 10~30% 폭락 사태 발생.
    4. 하드웨어 수정 (현재): 최신 세대 CPU(Intel 10세대 이후)는 실리콘 설계 자체를 고쳐 하드웨어적으로 방어됨.
  • 📢 섹션 요약 비유: 금고 문(권한 검사)이 닫혀 있는데도, 투시 안경(추측 실행)을 쓰고 금고 안의 돈다발을 미리 세어보던 도둑의 눈을 멀게 하기 위해, 아예 금고 주변에 아무것도 안 보이는 연막탄(소프트웨어 패치)을 터뜨린 처절한 방어전입니다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

Meltdown과 KPTI (Kernel Page Table Isolation)

**Meltdown (CVE-2017-5754)**은 인텔 CPU의 비순차적 실행(Out-of-Order Execution) 결함을 이용해 유저 모드에서 커널 메모리를 읽는 공격이다.

  • 기존 아키텍처의 허점: 기존 리눅스는 유저 프로세스가 돌고 있을 때, 프로세스의 페이지 테이블(CR3) 안에 '유저 공간 주소'와 '커널 공간 주소'를 동시에 매핑해 두었다. 단, 커널 공간은 Supervisor 권한 비트가 설정되어 있어 유저가 접근하면 CPU가 예외(Page Fault)를 발생시켜 막는 구조였다.
  • 공격: 해커가 커널 주소를 읽는 명령을 내린다. CPU는 권한 검사를 하기도 전에 비순차적 실행으로 일단 커널 메모리를 읽어 캐시에 올린다. 0.001초 뒤에 "어? 권한 없네" 하고 예외를 발생(Rollback)시킨다. 하지만 해커는 예외 처리를 무시(Catch)하고, 방금 캐시에 올라간 흔적을 타이밍 공격으로 읽어낸다.

KPTI 방어 원리 (과거 KAISER 패치)

  ┌───────────────────────────────────────────────────────────────────┐
  │                 KPTI (Kernel Page Table Isolation) 방어 구조           │
  ├───────────────────────────────────────────────────────────────────┤
  │                                                                   │
  │  [KPTI 적용 전 (Meltdown 취약)]                                       │
  │   - User Mode 실행 중일 때의 Page Table:                             │
  │     [ 유저 메모리 영역 ] + [ 커널 메모리 영역 통째로 매핑 (권한으로만 통제) ]   │
  │     (CPU가 몰래 커널 영역을 읽어서 캐시에 올릴 수 있음)                     │
  │                                                                   │
  │  [KPTI 적용 후 (Meltdown 방어 성공)]                                  │
  │   - 리눅스는 프로세스당 2개의 세트(Shadow Page Table)를 운영한다.          │
  │                                                                   │
  │   1. User Mode 실행 중일 때의 Page Table:                            │
  │      [ 유저 메모리 영역 ] + [ 텅 빈 커널 영역 (인터럽트 진입점 등 극히 일부만 남김)]│
  │      (해커가 비순차적 실행을 시도해도 아예 매핑된 주소가 없으므로 캐시에 못 올림) │
  │                                                                   │
  │   2. 시스템 콜 호출 -> Kernel Mode 진입 시 (Tramp 과정):                 │
  │      - CR3 레지스터를 조작하여 [진짜 커널 페이지 테이블]로 스위칭(Swap)함.    │
  │      - 작업이 끝나고 User Mode로 돌아갈 때 다시 [유저용 빈 테이블]로 스위칭. │
  └───────────────────────────────────────────────────────────────────┘

결과 및 대가: 멜트다운은 완벽히 막혔지만, 시스템 콜이나 인터럽트가 발생할 때마다 무거운 CR3 스위칭(TLB Flush 유발)이 발생하므로 I/O가 잦은 시스템(DB, 파일서버)에서 성능이 최대 30% 폭락했다. (최신 CPU에서는 하드웨어로 고쳐서 KPTI를 끌 수 있다: pti=off)


Spectre와 Retpoline (Return Trampoline)

**Spectre (CVE-2017-5715)**는 모든 CPU(Intel, AMD, ARM)의 **분기 예측기(Branch Predictor)**를 훈련시켜 엉뚱한 코드를 추측 실행(Speculative Execution)하게 만드는 더 악랄한 공격이다.

  • 간접 분기(Indirect Branch): 포인터나 가상 함수를 통해 점프할 때(jmp *%rax), CPU는 계산이 끝나기 전에 과거 통계를 바탕으로 "여기로 가겠지" 하고 미리 점프해서 실행(추측)한다.
  • 공격: 해커는 악성 스크립트를 수만 번 돌려 CPU의 분기 예측기를 "항상 악성 코드가 있는 주소로 점프해라"라고 세뇌(Poisoning)시킨다. 이후 피해자 프로세스가 간접 분기를 할 때, CPU는 세뇌된 대로 해커가 원하는 메모리를 몰래 읽는 코드를 추측 실행해 버린다.

Retpoline 방어 원리 (Google 고안) 해커가 훈련시킨 예측기를 바보로 만들기 위해 컴파일러(GCC)가 코드를 기괴하게 꼬아버린다.

  ┌───────────────────────────────────────────────────────────────────┐
  │                 Retpoline (Return Trampoline) 방어 구조                │
  ├───────────────────────────────────────────────────────────────────┤
  │                                                                   │
  │  [일반적인 간접 분기 코드 (Spectre 취약)]                               │
  │   jmp *%rax  // CPU 분기 예측기가 개입하여 해커가 훈련시킨 곳으로 추측 실행함.│
  │                                                                   │
  │  [Retpoline이 적용된 기괴한 코드 (Spectre 방어)]                         │
  │   call  set_up_target      // 1. call 명령으로 현재 주소를 스택에 푸시     │
  │   capture_speculation:                                            │
  │   pause                    // 3. 분기 예측기가 이쪽으로 추측 실행을 오면, │
  │   jmp capture_speculation  //    이 '무한 루프(트램펄린)'에 가둬버림!! │
  │                                                                   │
  │   set_up_target:                                                  │
  │   mov %rax, (%rsp)         // 2. 아까 스택에 넣은 복귀 주소를 내가 진짜 가야 할│
  │                            //    올바른 목적지(%rax) 주소로 몰래 덮어씀.  │
  │   ret                      // 4. ret 명령 수행. CPU는 스택에서 꺼낸    │
  │                            //    진짜 목적지로 안전하게 점프함.          │
  └───────────────────────────────────────────────────────────────────┘

결과 및 대가: CPU의 똑똑한 '간접 분기 예측기(BTB)' 사용을 원천 차단하고, 대신 방어가 쉬운 '복귀 예측기(RSB)'를 이용해 무한 루프 늪으로 유인하는 천재적 해킹 기법(을 이용한 방어)이다. 구글 덕분에 스펙터 v2 방어 시 인텔이 내놓은 마이크로코드 패치(성능 대폭락)를 쓰지 않고도, 성능 저하를 거의 0에 가깝게 막아냈다.

  • 📢 섹션 요약 비유: 해커가 조종사(CPU)의 내비게이션(분기 예측기)을 해킹해 엉뚱한 길(악성 코드)로 유도하자, 구글(Retpoline)이 아예 내비게이션 선을 뽑아버리고, 내비게이션이 작동하려 하면 자동차를 무한 뺑뺑이(루프)에 빠뜨리는 함정을 파놓은 셈입니다.

Ⅲ. 융합 비교 및 다각도 분석

Meltdown vs Spectre 상세 비교

비교 항목Meltdown (Melts Isolation)Spectre (Ghosts in the machine)
근본 원인비순차적 실행 + 늦은 권한 검사분기 예측기 (Branch Predictor) 세뇌
영향받는 CPU주로 Intel (권한 검사가 느림)모든 CPU (Intel, AMD, ARM 등)
공격 난이도쉬움 (루트 없이 커널 메모리 탈취)매우 어려움 (정교한 타겟팅 필요)
소프트웨어 방어KPTI (커널 페이지 테이블 분리)Retpoline (간접 분기 컴파일러 조작)
성능 오버헤드매우 큼 (5% ~ 30%)작음 (Retpoline 덕분에 수 % 내외)

과목 융합 관점

  • 컴퓨터구조 (CA): 이 사태는 파이프라인(Pipeline), 슈퍼스칼라(Superscalar), 분기 예측 버퍼(BTB, RSB) 등 현대 마이크로아키텍처의 성능 향상 기법이 "논리적 결과만 맞으면 그 중간의 부수 효과(캐시 변동)는 신경 쓰지 않는다"는 치명적 사각지대에서 터진 컴퓨터 공학 역사상 최대의 지진이다.

  • 클라우드 컴퓨팅 (Cloud): Meltdown의 가장 무서운 점은 가상머신(VM) 탈출이나 컨테이너 간 해킹이 가능하다는 것이었다. 동일한 물리적 CPU를 쓰는 AWS 워커 노드에서, 해커의 VM이 옆에 있는 타 기업 VM의 메모리를 훔쳐볼 수 있다는 사실이 입증되어 클라우드의 신뢰 자체가 무너질 뻔했다.

  • 📢 섹션 요약 비유: 멜트다운은 은행 벽이 뚫려서 도둑이 금고를 훤히 들여다보는 심각한 건축 부실이고, 스펙터는 도둑이 은행원에게 거짓말(세뇌)을 쳐서 무의식중에 금고를 열어보게 만드는 고도의 사기극입니다.


Ⅳ. 실무 적용 및 기술사적 판단

실무 시나리오

  1. 시나리오 — 데이터베이스(PostgreSQL/Oracle) 서버의 원인 불명 성능 30% 폭락: 커널 업데이트(보안 패치)를 진행한 후, 재부팅된 데이터베이스 서버의 트랜잭션 처리량(TPS)이 갑자기 30% 감소함.

    • 원인 분석: 패치에 포함된 KPTI(PTI) 방어 기제가 활성화되었다. 데이터베이스는 수없이 많은 I/O 작업을 위해 read, write, fsync 같은 시스템 콜을 초당 수만 번 호출한다. KPTI가 켜져 있으면 시스템 콜을 할 때마다 커널과 유저 페이지 테이블(CR3)을 교체하며 TLB 캐시가 모조리 날아가는 극심한 오버헤드가 발생한다.
    • 대응 (기술사적 가이드):
      • 해당 서버가 외부(인터넷)에서 임의의 악성 코드를 실행할 위험이 없는 '내부 폐쇄망 전용 DB 서버'라면, 커널 부팅 파라미터에 pti=off (또는 mitigations=off)를 선언하여 멜트다운 방어막을 강제로 끄고 성능을 복구하는 보안-성능 트레이드오프(Risk Acceptance) 결정을 내릴 수 있다.
      • 최신 인텔 CPU(Cascade Lake 이상)로 하드웨어를 교체하면 실리콘 레벨에서 방어되므로 KPTI 오버헤드가 발생하지 않는다.
  2. 시나리오 — 클라우드 JIT 컴파일러 (Node.js, 브라우저 V8)의 Spectre 방어: 자바스크립트는 브라우저 탭 하나에 수많은 탭의 메모리가 공유되는 구조라 스펙터 공격의 완벽한 먹잇감이었다. 악성 웹사이트에 접속하는 것만으로 해커가 브라우저의 비밀번호를 빼갈 수 있었다.

    • 아키텍처 적용: 브라우저 벤더(Google Chrome)와 Node.js 진영은 JIT 컴파일러가 자바스크립트를 기계어로 번역할 때, 간접 분기 명령어에 Retpoline 코드를 강제로 삽입하도록 컴파일러를 패치했다. 또한 타이밍 공격을 막기 위해 브라우저의 performance.now() 같은 고해상도 타이머 API의 정밀도를 ms 단위로 뭉뚱그려버리는 런타임 제약을 추가했다.

의사결정 및 튜닝 플로우

  ┌───────────────────────────────────────────────────────────────────┐
  │                 부채널 공격 완화 (Mitigations) 튜닝 플로우               │
  ├───────────────────────────────────────────────────────────────────┤
  │                                                                   │
  │   [새로운 엔터프라이즈 서버 프로비저닝 (Linux 커널 5.x 이상 적용)]               │
  │                │                                                  │
  │                ▼                                                  │
  │      이 서버가 외부에 노출되어 있거나, 신뢰할 수 없는 임의의 코드를 실행하는가? │
  │      (예: 퍼블릭 클라우드 호스트 노드, 웹 호스팅, 샌드박스, 브라우저 환경)       │
  │          ├─ 예 ─────▶ [모든 Mitigations 강제 유지 (보안 최우선)]        │
  │          │            (성능이 30% 떨어지더라도 절대 끄면 안 됨)           │
  │          └─ 아니오 (예: 방화벽 내부의 폐쇄된 전용 DB 서버, 스토리지 서버)    │
  │                │                                                  │
  │                ▼                                                  │
  │      하드웨어 CPU가 멜트다운/스펙터 취약점을 실리콘 레벨에서 고친 세대인가?   │
  │      (lscpu 쳤을 때 Vulnerabilities 항목에 Not affected 가 뜨는가?)      │
  │          ├─ 예 ─────▶ [자동으로 완화 조치 꺼짐 (성능 손실 없음)]          │
  │          │                                                        │
  │          └─ 아니오 ──▶ `mitigations=off` 커널 파라미터 적용 검토         │
  │                         (보안 책임자의 승인 하에 KPTI, IBPB 해제 -> 성능 복구)│
  └───────────────────────────────────────────────────────────────────┘

[다이어그램 해설] 클라우드 사업자(AWS) 입장에서 하이퍼바이저 노드는 남(고객)의 코드를 실행하는 곳이므로 무조건 방어막을 켜야 한다. 하지만 내가 임대한 닫힌 VM(EC2) 안에서 오직 내가 짠 신뢰할 수 있는 앱만 띄운다면, 그 VM 안에서는 다른 해커 프로세스가 내 커널을 훔쳐볼 가능성이 제로에 가깝다. 이럴 때 mitigations=off를 주어 잃어버린 성능을 공짜로 되찾는 것은 클라우드 인프라 엔지니어들의 널리 알려진 최적화 팁이다.

도입 체크리스트

  • 마이크로코드 (Microcode) 업데이트: Retpoline만으로는 부족한 변종 스펙터 공격(MDS, L1TF 등)을 막기 위해, 리눅스 부팅 시 intel-microcode 패키지를 통해 CPU 내부의 펌웨어를 최신 런타임 패치로 덮어씌우는 자동화가 구축되어 있는가?

  • SMT (하이퍼스레딩) 취약점 검토: L1 데이터 캐시를 공유하는 하이퍼스레딩(SMT) 구조 자체가 부채널 공격의 가장 큰 맹점이다(L1TF 공격). 초극비 금융 데이터나 군사 시스템에서는 하드웨어 BIOS 설정에서 아예 Hyper-Threading을 꺼버려(SMT Disable) 성능 반토막을 감수하고서라도 코어 간 물리적 격리를 달성해야 한다.

  • 📢 섹션 요약 비유: 성능(Performance)과 보안(Security)은 시소의 양 끝입니다. 부채널 공격은 CPU가 성능을 높이기 위해 몰래 훔쳐보던 시험지(추측 실행)를 압수당한 사건입니다. 시험지를 압수(패치)당했으니 당연히 성적(성능)은 떨어지며, 우리는 그 현실을 받아들이고 시스템을 튜닝해야 합니다.


Ⅴ. 기대효과 및 결론

정량/정성 기대효과

구분소프트웨어 패치 (KPTI, Retpoline)최신 하드웨어 (In-Silicon 방어)개선 효과
정성 (보안)메모리 탈취 100% 방어 (S/W 우회)취약점 자체의 근본적 소멸클라우드 테넌트 간의 완벽한 샌드박스 보장
정량 (I/O 성능)시스템 콜 시 10~30% 성능 저하 발생성능 저하 0% (오버헤드 소멸)구형 서버 대비 신형 서버의 압도적 TCO 효율
정성 (유지보수)지속적인 변종 발현 및 커널 패치 피로도펌웨어 의존도 하락IT 인프라 관리자의 보안 패치 스트레스 해방

미래 전망

  • 하드웨어 캐시 격리 설계 (CAT 등): 부채널 공격의 근원인 '캐시 공유' 문제를 해결하기 위해, 차세대 CPU들은 인텔 CAT(Cache Allocation Technology)처럼 L3 캐시 공간 자체를 컨테이너나 가상머신 단위로 물리적으로 쪼개서(Partitioning) 서로 캐시 흔적을 남기지 못하게 하는 보안 설계가 칩 레벨에서 강제되고 있다.
  • 포스트-스펙터(Post-Spectre) 마이크로아키텍처: 단순히 실행 속도만 높이는 명령어 수준 병렬성(ILP)의 시대가 종말을 고했다. 애플 실리콘(M시리즈)이나 ARMv9 아키텍처는 설계 초기부터 데이터 의존성 추적과 메모리 암호화(PAC)를 통합하여, 비순차적 실행을 유지하면서도 부채널이 발생할 수 없는 새로운 하드웨어 구조를 채택하고 있다.

결론

Meltdown과 Spectre 사태는 지난 20년간 "하드웨어는 투명하고 완벽하게 명령을 수행할 것"이라는 소프트웨어 엔지니어들의 맹신을 산산조각 낸 세기의 대사건이다. KPTI와 Retpoline은 하드웨어의 치명적 결함을 소프트웨어의 천재적인 꼼수(기형적인 컴파일링과 페이지 강제 격리)로 틀어막은 눈물겨운 사투의 기록이다. 이 패치들은 운영체제가 하드웨어의 약점을 어떻게 덮어주며 상호 보완하는지, 그리고 보안과 성능 사이에서 어떤 철학적 결정을 내려야 하는지를 보여주는 현대 시스템 프로그래밍의 가장 드라마틱한 교과서다.

  • 📢 섹션 요약 비유: 튼튼한 줄 알았던 마천루(CPU)의 기초 콘크리트(아키텍처)가 썩고 있음이 밝혀졌을 때, 건물을 당장 부술 수 없어 건물 외벽에 무거운 철골 구조물(소프트웨어 패치)을 덧대어 붕괴를 막아낸 아슬아슬하고도 위대한 보수 공사입니다.

📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
Out-of-Order Execution (비순차적 실행)Meltdown의 근본 원인. 늦게 들어온 명령어도 준비만 되면 CPU가 먼저 병렬로 실행시켜 버리는 최적화 기법
Branch Predictor (분기 예측기)Spectre의 근본 원인. if/else 문에서 어디로 갈지 CPU가 미리 찍어서(추측) 실행하는 AI 같은 기능
KPTI (커널 페이지 테이블 격리)Meltdown 방어를 위해, 유저 모드일 때는 커널 메모리의 '지도(Page Table)' 자체를 찢어발겨 캐싱을 원천 차단하는 패치
Retpoline (리턴 트램펄린)Spectre 방어를 위해, 컴파일러가 CPU의 간접 분기 예측기를 의도적으로 무한 루프에 가두어 바보로 만드는 기법
Side-channel Attack (부채널 공격)메모리 값을 직접 읽지 않고, 그 값을 읽으려 할 때 발생하는 캐시의 온도, 시간, 냄새(흔적)를 역추적해 데이터를 유추하는 해킹 기법

👶 어린이를 위한 3줄 비유 설명

  1. 아주 똑똑한 요리사(CPU)는 손님이 주문하기도 전에 얼굴만 보고 "이거 먹겠지?" 하고 미리 요리(추측 실행)를 시작해서 속도가 엄청 빨랐어요.
  2. 그런데 영악한 도둑(해커)이 손님인 척 들어와서, 요리사가 몰래 무슨 요리를 준비하는지 냄새(캐시)만 맡고 식당의 극비 레시피를 다 알아냈어요!(멜트다운/스펙터 공격)
  3. 깜짝 놀란 식당 주인(운영체제)은 요리사에게 "주문표를 완벽히 확인하기 전엔 절대 미리 요리하지 마!(KPTI)"라고 규칙을 바꿨어요. 요리 속도는 조금 느려졌지만 레시피는 다시 안전해졌답니다.