Сводная группа специалистов из Национального центра научных исследований Франции и Грацского технического университета опубликовала доклад, посвященный новым векторам атак на процессоры AMD. Эти проблемы, обнаруженные экспертами еще в 2019 году, влияют на безопасность данных, обрабатываемых процессорами, и могут привести к хищению конфиденциальной информации, а также ухудшению безопасности.
Сообщается, что багам подвержены процессоры AMD, выпущенные в период между 2011 и 2019 годами (таблицу можно увидеть ниже). Более того, исследователи уведомили инженеров AMD о своих выводах еще в августе 2019 года, однако компания не сочла нужным выпускать патчи, так как не считает эти проблемы новыми спекулятивными (или упреждающим — speculative) атаками. Исследователи с этим, конечно же, несогласны.
«Наши атаки демонстрируют, что архитектура AMD уязвима для атак по сторонним каналам», — утверждают ученые.
Обнаруженные специалистами проблемы затрагивают механизм предсказания ветвления (way predictor) в кеше данных первого уровня L1D. Эта ориентированная на производительность функциональность была представлена в процессорах AMD в 2011 году, она позволяет снизить энергопотребление. Так, согласно опубликованному докладу, way predictor вычисляет µTag, применяя для этого недокументированную хеш-функцию к виртуальному адресу. Затем µTag используется для определения канала кеша по таблице. То есть процессор должен сравнивать тег кеша не со всеми возможными вариантами, что позволяет уменьшить потребление энергии.
Исследователям удалось отреверсить упомянутую «недокументированную функцию», которую использовали процессоры AMD, и обнаружить два вектора атак: Collide + Probe и Load + Reload. Эти side-channel атаки во многом похожи на классические Flush + Reload и Prime + Probe, которые ранее уже использовались другими ИБ-экспертами для извлечения данных из процессоров Intel.
При этом авторы доклада уверены, что обнаруженные ими проблемы отличаются от прочих атак по сторонним каналам. Так, по их мнению, Collide + Probe и Load + Reload – не теоретические атаки, а проблемы, которые могут быть легко использованы в реальной жизни, и для этого злоумышленнику не понадобится физический доступ или специальное оборудование. К примеру, эксперты уверяют, что эксплуатировали атаки в облачной среде с помощью JavaScript.
Так, в ходе одного эксперимента на процессоре AMD удалось запустить вредоносный процесс, который использовал скрытый канал извлечения данных для хищения данных из другого процесса. Скорость «слива» данных составила 588,9 Кб/сек.
Атаку Collide + Probe удалось приспособить для уменьшения энтропии различных имплементациях ASLR (Address Space Layout Randomization). Если же злоумышленнику удалось обойти защиту ASLR, он фактически получает возможность предсказывать, где выполнится тот или иной код код, и планировать дальнейшие атаки.
Исследователи заявили, что скомпрометировали ядро ASLR в полностью обновленной Linux- системе, а также ASLR для операционных систем и приложений, работающих в облачных и виртуальных средах. Данные атаки потребовали внедрения вредоносного кода на целевую машину, однако сообщается, что атака возможна и через интернет: используя вредоносный JavaScript в браузере.
«Мы проверили наш proof-of-concept в браузерах Chrome 76.0.3809 и Firefox 68.0.2, а также на движке Chrome V8. В Firefox мы смогли уменьшить энтропию на 15 бит с вероятностью успеха 98% и средним временем выполнения 2.33 s (σ=0.03s, n=1000). В Chrome мы добились вероятности успеха 86,1% и среднего времени выполнения 2.90s (σ=0.25s, n=1000)», — пишут эксперты.
Кроме того, атаку Collide + Probe успешно применили для восстановления ключа шифрования из имплементации AES T-table.
Официальное сообщение AMD гласит, что компания не считает описанные проблемы новыми спекулятивными атаками, так как эти проблемы решаются установкой других, выпущенных ранее исправлений для старых side-channel проблем. Напомню, что в прошлые годы процессоры AMD были признаны уязвимыми перед такими side-channel проблемами, как Spectre v1 (CVE-2017-5753), Spectre v1.1 (CVE-2018-3693), Spectre v1.2 , Spectre v2 (CVE-2017-5715), CVE-2018 -3640 , SpectreNG (CVE-2018-3639), SpectreRSB , NetSpectre, а также комплексом багов L1TF (L1 Terminal Fault) или Foreshadow.
В свою очередь исследователи заверили журналистов издания ZDNet, что ответ AMD «весьма обманчив», и компания никак не взаимодействовала со командой специалистов с августа прошлого года, то есть с момента приватного раскрытия информации о проблемах. К тому же сами атаки якобы по сей день работают на полностью обновленных ОС, с новейшими прошивками и ПО.
Впрочем, в Twitter один и специалистов публично признал, что найденные баги не идут ни в какое сравнение с Meltdown и Zombieload, которым подвержены процессоры Intel и при помощи которых можно «сливать тонны данных».
Certainly not. The attacks leak a few bit of meta-data. Meltdown and Zombieload leak tons of actual data.
— Daniel Gruss (@lavados) March 7, 2020