В процессорах китайского производителя Loongson выявлена серьезная аппаратная уязвимость LoongLeak, которая позволяет несанкционированно получать доступ к данным других программ и операционной системы из кэша первого уровня L1 без необходимости в правах администратора. Потенциальные жертвы атак включают криптографические ключи, хеши учетных записей и информацию, необходимую для преодоления защитных механизмов памяти.
Специалисты из немецкого научного центра информационной безопасности CISPA выявили этот дефект, используя дифференциальный анализ инструкций на реальном оборудовании и в эмуляторе QEMU. Проблема обнаружена в процессорах поколения 3A5000 и 3A6000, которые построены на архитектурной платформе LoongArch собственной разработки.
Уязвимость возникает из-за команды FLD.S, которая переносит 32 бита данных из памяти в 64-битный регистр для работы с числами с плавающей запятой, оставляя верхние 32 бита в неинициализированном состоянии. При использовании 256-битного пакета расширения LASX размер неинициализированной области возрастает до 224 бит или 28 байт.
Исследователи установили, что при определенных обстоятельствах в неинициализированных разрядах появляются реальные значения из кэша L1. Поскольку этот кэш содержит информацию из различных приложений и ядра операционной системы, злоумышленник может получать конфиденциальную информацию других процессов. Путем предварительного управления внутренним состоянием процессора можно направить утечку на конкретную область памяти и смещение в кэше.
Уязвимость LoongLeak может передавать до 28 байт информации за одну операцию с производительностью более 300 МБ в секунду. Механизм не требует синхронизации высокой точности и побочных каналов, так как информация напрямую помещается в векторные регистры процессора. Это архитектурный дефект, отличный от известных атак типа Spectre и Meltdown.
В ходе тестирования исследователи успешно извлекли полные AES-ключи, используемые для шифрования дисков, получили часть хешированного пароля административной учетной записи и преодолели защитные технологии ASLR и stack canary. Все это было сделано за несколько секунд.
Атака может быть проведена из обычного режима работы пользователя без повышения привилегий, включая запуск из контейнеров и гостевых операционных систем. Вредоносный код, запущенный внутри виртуальной машины, может преодолеть границы виртуализации и получить доступ к данным хостовой системы.
Устранить этот дефект с помощью программного обновления невозможно, однако администраторы могут уменьшить риск путем очистки кэша L1 при переходе из ядра в пользовательское приложение. Такая защита снижает производительность не более чем на 1,4 процента, а в большинстве сценариев замедление составляет менее 0,1 процента. Для защиты модели 3A6000 потребуется дополнительно отключить один поток выполнения на каждом процессорном ядре, что значительно снизит вычислительную мощность.
Компания Loongson признала наличие проблемы, подтвердила воспроизводимость утечки и устранила дефект в новой версии процессора 3A6000. Поскольку оборудование Loongson применяется преимущественно на территории Китая, включая государственные структуры, глобальный масштаб угрозы остается относительно ограниченным. На настоящий момент специализированные средства для выявления активной эксплуатации LoongLeak не разработаны.
