Core Concepts
이 논문은 AMD Zen 3 및 Zen 4 프로세서의 모든 스케줄러 큐에서 발생할 수 있는 새로운 종류의 부채널 공격을 체계적으로 분석하고 있다. 또한 이러한 공격을 JavaScript로 구현하여 원격에서 실행할 수 있음을 보여준다.
Abstract
이 논문은 AMD Zen 3 및 Zen 4 프로세서의 스케줄러 큐 부채널 공격을 체계적으로 분석하고 있다.
먼저 저자들은 모든 스케줄러 큐를 프라이밍할 수 있는 효과적인 방법을 찾아냈다. 이를 통해 기존에 알려진 정수 곱셈 스케줄러 큐 외에도 다른 스케줄러 큐들을 활용할 수 있음을 보였다.
다음으로 저자들은 기존 측정 방식의 정확도 문제를 해결하기 위해 새로운 측정 방식인 "bingo race"를 제안했다. 이 방식은 타이밍 정보 없이도 스케줄러 큐의 정확한 용량을 측정할 수 있다.
이어서 저자들은 이러한 스케줄러 경합 공격을 활용하여 키스트로크 타이밍을 복구할 수 있음을 보였다. 이 공격은 F1 점수 99.5% 이상의 정확도를 달성했으며, 정확하게 탐지된 키스트로크의 표준편차는 4ms 미만이었다.
마지막으로 저자들은 JavaScript로 구현한 스케줄러 경합 기반 은닉 채널을 소개했다. 이 채널은 Firefox에서 940.7bit/s의 전송률을 달성했으며, 교차 출처 정책과 사이트 격리를 우회할 수 있었다.
Stats
스케줄러 큐 1의 용량은 Zen 3와 Zen 4에서 모두 24개의 마이크로 연산으로 측정되었다.
스케줄러 큐 3의 경우 lodsb 명령어로 22개의 마이크로 연산을 프라이밍할 수 있었다.
FPU 스케줄러 큐의 총 용량은 128개의 마이크로 연산으로 측정되었다.
Quotes
"We systematically address these overarching research questions:"
"We present bingo race, a novel timingless and more accurate measurement method based on out-of-order memory reads."
"We show that contention attacks on each integer scheduler can observe singular events like inter-keystroke timings of a password entry, with F1 scores ≥99.5 % and a standard deviation below 4 ms from the ground-truth timings."
"We present a scheduler contention covert channel purely in JavaScript running in Firefox 114, with a true capacity of 940.7 bit/s (n = 10, σ¯x = 5.15 bit/s), bypassing cross-origin policies and site isolation."