Spectre v2 방어(eIBRS, Safe RET)는 일반적으로 권한 경계(예: 사용자 공간에서 커널 공간으로 전환 시)에서 분기 예측기 상태를 정화하거나 격리하는 방식으로 작동합니다 . 이 방어의 핵심 가정은 공격자가 정화 이후, 예측기가 사용되기 전의 짧은 간격 동안 예측기를 조작할 수 없다는 것이었습니다.
TONTOU는 이 가정을 무효화합니다. AMD Safe RET의 경우, 취약한 시간 창은 고작 2개의 명령어 너비에 불과합니다 . 권한이 없는 공격자는 정밀하게 타이밍을 맞춘 하드웨어 인터럽트(INTERRUPT INJECTION)를 이 간격에 주입하여, 방어 메커니즘이 이미 실행된 _후_이지만 커널이 예측기 상태를 소비하기 _전_에 분기 예측기를 다시 오염시킬 수 있습니다 . 이는 모든 의도된 보호 조치가 적용된 상태에서도 추측 실행 사이드 채널 누출을 다시 가능하게 만듭니다.
이 공격을 실행하는 데 필요한 것은 대상 시스템에서 권한이 없는 사용자 공간 코드를 실행할 수 있는 능력뿐입니다. 관리자 권한은 필요하지 않습니다 .
연구진은 완전한 종단 간(end-to-end) 익스플로잇을 구축하여 여러 프로세서 세대에서 테스트했습니다:
Intel 플랫폼의 경우, 연구진은 Cascade Lake Refresh와 Arrow Lake에서 eIBRS의 부분적인 우회를 시연했지만, 공격 표면은 AMD Safe RET의 경우와 다릅니다 . 동일한 방법으로 AMD Zen 4에서는 성공적인 분기 오류 유도가 확인되지 않았습니다 .
공개 및 대응 타임라인은 신속했습니다:
Intel은 공동 공개 과정에서 연구 결과를 인정하고 버그 바운티 프로그램을 통해 포상금을 수여했지만, 실제 환경에서의 악용에는 정보 누출 가젯(disclosure gadgets)의 가용성 등 여러 요소가 필요하다는 점을 들어 추가적인 완화 조치를 개발하지 않을 것이라고 연구진에게 전달했습니다 .
TONTOU는 추측 실행 공격의 중요한 진화를 나타냅니다. 초기 Spectre 변종이 예측 메커니즘 자체를 표적으로 삼았다면, TONTOU는 완화 조치 자체, 즉 이전 공격을 막기 위해 구축된 소프트웨어 및 하드웨어 방어 체계를 공격합니다. 중화(neutralization)와 사용(use) 사이의 경쟁 조건(race condition)을 식별함으로써, 연구진은 근본적으로 다른 방어 접근법을 필요로 하는 새로운 취약점 클래스를 열었습니다.
이 공격은 CPU 보안이 소프트웨어 패치만으로는 해결될 수 없음을 보여줍니다. Linux 커널 수정이 AMD Zen 프로세서의 특정 인터럽트 주입 창을 막았지만, 예측기 정화와 예측기 사용을 원자적(atomic) 연산으로 처리할 수 있다는 근본적인 아키텍처 가정이 틀렸음이 입증되었습니다.