Новий напад Spectre-v2: Branch Target Reuse (BTR)

Новий напад Spectre-v2: Branch Target Reuse (BTR)

Дослідники безпеки розкрили новий напад Spectre-v2 під назвою Branch Target Reuse (BTR), що демонструє, як застарілі передбачення процесора можуть бути використані для витоку чутливих даних з систем Linux.

BTR: як це працює?

BTR розробили дослідники з VUSec при Vrije Universiteit Amsterdam і Scuola Superiore Sant’Anna. Цей напад націлений на середовища, які динамічно генерують код, включаючи JIT-компілери. Для Linux команда зосередилася на класичному BPF (cBPF) та створила два експлойта від початку до кінця.

Принцип роботи BTR

Основна ідея полягає в тому, що сучасні процесори намагаються передбачити, де програма буде виконуватись далі, що підвищує продуктивність. BTR зловживає випадками, коли ці передбачення залишаються в процесорі, навіть після видалення вихідного коду і повторного використання тієї ж пам’яті.

Якщо процесор слідує застарілому передбаченню, він може на короткий час виконати новий код з неправильного місця. Це спекулятивне виконання скидається, але залишені сліди можуть бути виміряні і використані для відновлення даних, які не повинні бути доступні.

Демонстрація на Linux

У своїй демонстрації для Linux дослідники використали cBPF для читання довільної пам’яті на сучасних процесорах Intel. Напад досягав приблизно 8 байтів за секунду і витягнув хеш пароля root з пам’яті, яку використовує процес su.

Важливо зазначити, що BTR не може віддалено вкрасти пароль root Linux. Напад вимагає, щоб зловмисник вже виконував неправажений код на цільовій системі, а дослідники отримали хеш пароля, а не відкритий текст.

Проблеми з безпекою

Одне значне уточнення: вимкнення неправаженого eBPF не усуває цей вектор нападів. Класичний BPF все ще використовується в Linux для таких функцій, як seccomp і фільтрація сокетів, а також програмами, такими як Docker і Chrome.

Дослідники також протестували BTR проти движка SpiderMonkey браузера Firefox та GraalVM від Oracle. У Firefox вони продемонстрували цю техніку через WebAssembly, але не створили повний експлойт для браузера. GraalVM показав уразливість до техніки, хоча внутрішня поведінка виконання запобігла практичному нападу.

Безпека в Linux

На щастя, Linux містить заходи протидії для цієї проблеми. Розробники ядра додали захисти, які скидають стан передбачення гілки при повторному використанні пам’яті BPF JIT, та ввели посилення проти JIT-спрейинга. Пов’язані виправлення відстежуються як CVE-2026-64507 та CVE-2026-64508.

Для отримання додаткової інформації, відвідайте сайт [VUSec](https://www.vusec.net/projects/btr/) та ознайомтесь з офіційною новиною.