Исследователи из MIT представили Fractal — операционное ядро, написанное с нуля для чистоты экспериментов с процессорами. Оно загружается прямо на «голое железо» без какой-либо другой ОС и даёт учёным небывалый контроль над тем, что происходит внутри чипа. С его помощью команда уже обнаружила ранее неизвестное поведение в процессоре Apple M1.
Главная находка связана с защитой CSV2 — спеки ARM, которая должна не допускать, чтобы код пользователя манипулировал спекулятивным выполнением на стороне ядра. Fractal подтвердил, что блокировка срабатывает на этапе исполнения косвенных ветвлений. Но выяснилось и другое: до того, как защита включается, CPU всё равно загружает целевой адрес в кэш инструкций. Это можно отследить через побочный канал. Значит, программа пользователя всё же влияет на то, что ядро помещает в свой кэш. Та же утечка работает между процессами с разными идентификаторами адресного пространства.
Второй важный результат — Fractal впервые показал, что Apple Silicon подвержен спекуляции Phantom. Ранее этот тип атак (когда обычная инструкция, даже no-op, ошибочно интерпретируется как ветвление) демонстрировали только на AMD и Intel. На M1 Phantom-выборки проходят сквозь границы привилегий и адресных пространств, хотя выполнение всё же блокируется.
Третья находка перечёркивает более раннюю работу по условному предсказателю ветвлений на M1. Предыдущие авторы утверждали, что изоляция привилегий работает только на производительных ядрах, но не на энергоэффективных. Fractal показал, что изоляции нет вообще ни на одном из типов ядер. Старый результат, скорее всего, был артефактом macOS, которая тихо перекидывала потоки между ядрами во время системных вызовов.
Fractal поддерживает x86_64, ARM64 и RISC-V, его код — 31 000 строк. Внутри есть POSIX-системные вызовы, C-библиотека и порты vim, GCC, dash — чтобы исследователи могли легко перенести существующие эксперименты. Команда MIT раскрыла находки Apple; инженеры Apple, в свою очередь, тоже изучили Fractal. В долгосрочной перспективе авторы хотят сделать его стандартной инфраструктурой для микроархитектурных исследований — чем-то вроде QEMU или FFmpeg для своей области.