// kapitanhack.pl

Nowy wariant Spectre v2. Czym jest Branch Target Reuse

Streszczenie wpisu i odnośnik do pełnej treści u źródła.

Nowy wariant Spectre v2. Czym jest Branch Target Reuse

TL;DR

Spectre wraca w wersji, która nie uczy procesora niczego nowego, tylko korzysta z tego, co ten już wie. Branch Target Reuse wykorzystuje fakt, że CPU przez chwilę pamięta przewidywania skoków dla kodu, który właśnie zniknął z pamięci. Jeśli w to samo miejsce trafi nowy kod, procesor może przez moment użyć starego przewidywania do jego wykonania spekulatywnego — a to otwiera drzwi do klasycznych technik Spectre.

Najbardziej podatne są środowiska z kompilacją just-in-time, czyli przeglądarki i maszyny wirtualne, które bez przerwy generują i kasują kod. Badacze z VUSec i Scuola Superiore Sant'Anna potwierdzili problem na procesorach Intela, AMD i Arm, a działające PoC wyciągały dane z jądra Linuksa (choć w tempie raptem kilku bajtów na sekundę) oraz hashe haseł roota.

Pełnej łatki mikrokodowej na razie nie ma — poprawki wprowadzono na poziomie oprogramowania, między innymi w obsłudze JIT-a eBPF w Linuksie i w Oracle GraalVM. Dla kogoś, kto pisze lub utrzymuje silniki JIT, to dobry moment, żeby sprawdzić, czy temat go dotyczy.

Spectre wraca w kolejnej odsłonie. Szczegóły techniki nazwanej Branch Target Reuse, w skrócie BTR, przedstawili w publikacji badacze z VUSec oraz Scuola Superiore Sant’Anna. Działa...

Czytaj cały wpis u źródła

// powiązane wpisy