Немецкие исследователи обнаружили, что у процессоров китайской компании Loongson имеются уязвимости, связанные с «утечками кеша», и потенциальные злоумышленники могут эксплуатировать их для поиска определённых данных.
Источник изображения: loongleakattack.com
Компания Loongson разработала собственный набор инструкций LoongArch, сочетающий в себе подходы MIPS и RISC-V. При помощи программы-фаззера немецкие учёные обнаружили ошибку, которой присвоили название LoongLeak. Они обратили внимание, что в руководстве по LoongArch упоминается инструкция, которая оставляет 32 бита регистра памяти в «неопределённом» состоянии. Как показал последующий анализ, при определённых обстоятельствах эти «неопределённые» данные поступают из кеша L1 — он не изолируется между приложениями, а значит, этот механизм можно использовать для перехвата данных из различных программ и ОС. Более того, потенциальный злоумышленник может настроить внутреннее состояние процессора так, чтобы производить утечки нужных ему данных.
Пытаясь подтвердить свою гипотезу, исследователи добились перехвата ключей AES-шифрования, частичных хешей паролей root из пользовательского пространства, а также сумели обойти средства такие средства защиты как ASLR и контрольные значения на стеке.
Атаку LoongLeak можно развернуть прямо с виртуальной машины для перехвата данных с хост-сервера. Уязвимость связана с архитектурными особенностями процессора, и полностью закрыть её программными средствами не получится — чип в принципе не должен допускать попадания конфиденциальных данных в кеш первого уровня. Можно отключить второй поток на том же ядре, но это будет фактически означать отказ от технологии Hyper-Threading. Loongson, однако, снизила риск атаки в обновлении ПО для модели 3A6000 — механизм очистки кеша снизил производительность чипов всего на 1,4 % в самом худшем случае. Практическая угроза из-за этой уязвимости невелика, потому что чипы Loongson почти не используются вне Китая.