
Исследователи рассказали о новом векторе атаки по сторонним каналам, получившем имя SLAM. Этот метод задействует аппаратные возможности готовящихся к выходу процессоров Intel, AMD и Arm для получения хеша пароля root из памяти ядра.
SLAM представляет собой атаку переходного выполнения (transient execution), которая использует возможности памяти, позволяющие софту задействовать нетранслированные биты в 64-битных линейных адресах для хранения метаданных.
У каждого из вендоров эти функциональные возможности называются по-разному: у Intel — Address Masking (LAM), у AMD — Upper Address Ignore (UAI), у Arm — Top Byte Ignore (TBI).
Вектор атаки SLAM получил своё имя от Spectre и LAM (LAM — готовящаяся к выходу функция от Intel). По словам исследователей из Systems and Network Security Group (VUSec Group), SLAM затрагивает в основном те процессоры, которые выйдут в ближайшее время. Корень проблемы кроется в недостаточно жёстких проверках.
Стоит также учитывать, что функциональность LAM, UAI и TBI, несмотря на свою пользу по части управления памятью, создаёт при этом определённые бреши. SLAM нацелен на немаскированные инструкции в программном коде, использующие секретные данные в качестве указателя.
Этот подход может привести к утечке произвольных данных ядра ASCII. Специалисты подготовили специальный сканер, с помощью которого удалось обнаружить сотни уязвимостей софтовых инструкций в ядре Linux.
Кроме того, эксперты опубликовали на YouTube видеоролик, в котором демонстрируется атака с утечкой хеша пароля root из ядра:
Все данные о SLAM вместе с кодом выложены в GitHub-репозитории VUSec, а с техническим отчётом можно ознакомиться по этой ссылке (PDF).