Исследователи информационной безопасности из Google создали эксплойт, который эксплуатирует физические слабости чипов DDR-памяти определенных типов, для повышения прав не-доверенных пользователей на Intel-совместимых компьютерах, работающих под Linux.
В посте в блоге проекта Project Zero специалисты Google описали технику эксплуатации уязвимости, которая заключается в изменении значений отдельных битов данных (bit flipping), хранящихся в модулях чипов DDR3, которые называют DIMM. В прошлом году исследователи доказали, что подобная подмена битов может быть осуществлена с помощью воздействия на небольшие участки памяти, которое приводит к изменению хранящихся там данных. Представители Google показали, как все это может быть использовано для реальной атаки.
"Больше всего здесь впечатляет тот факт, что мы становимся свидетелем того, как совершенно аналоговая проблема на уровне производителя железа может быть использована для атаки на программное обеспечение. […] Проще говоря, эксплойт просто перепрыгивает несколько уровней стека", — говорит главный редактор издания Microprocessor Report Дэвид Кантер.
Как это работает
Память DDR представляет из себя массив строк и столбцов, которые разбиты на блоки, используемые различными приложениями и операционной системой. Для обеспечения безопасности и целостности всей системы, в каждом крупном участке памяти есть «песочница», доступ к которой есть только у определенного приложения или процесса операционной системы.
Хакер может запустить программу, которая будет тысячи раз за долю секунды обращаться к конкретным рядам таких участков в модуле памяти, как бы «постукивая по ним молотком» (hammering) до тех пор, пока электромагнитное излучение не проникнет в соседний участок памяти, что может привести к изменению значений битов в нем с нулей на единицы и наоборот. Эта техника получила название Rowhammer.
Возможность влиять на содержание «запретных» областей памяти может иметь далеко идущие последствия. К примеру, таким образом пользователи или приложения, обладающие ограниченными системными привилегиями, могут повышать их вплоть до несанкционированного получения административного контроля.
А это, в свою очередь позволит злоумышленнику запускать зловредный коду или перехватывать действия пользователей или программ. Последствия такой атаки, к примеру, на серверы в дата-центре, обслуживающих тысячи пользователей, могут привести к значительному ущербу.
Все не так плохо
Уязвимость присутствует только в более новых типах памяти DDR3, поскольку ячейки DRAM в них расположены более компактно, что облегчает электромагнитное воздействие одной ячейки на другую. Атака не сработает в случае новых DDR4, которые обладают возможностями по корректировке ошибочного кода (ECC).
Кроме того, как отмечает эксперт компании Dyadic Security Ирен Абезгауз (Irene Abezgauz), по целому ряду причин, атака, разработанная специалистами Google в настоящий момент является скорее теоретической, нежели практической.
"Во-первых, ее можно осуществить только локально, а не удаленно — это ограничение, которое серьезно снижает возможность использования этой техники «обычными» хакерами. Во-вторых, для реализации техники Rowhammer нужно осуществить более 540 тыс. обращений к памяти за 64 миллисекунды, что усложняет взлом."
Исследователи Google в своей публикации не называют производителей компьютеров или памяти, чьи продукты можно взломать с помощью разработанного эксплойта, или подробности о проценте успешных атак. Однако в посте приведена таблица с анонимным перечислением 29 модулей памяти и моделей ноутбуков. Из этих 29 только 15 были подвержены смене значений битов. Кроме того, только 13% из осуществленных перемен битов привели к возможности эксплуатации уязвимости.
Тем не менее, возможность эксплуатации физических слабостей аппаратного обеспечения — это новый вид компьютерных атак, противостоять которым довольно сложно.
Дэвид Кантер из Microprocessor Report описывает проблему так:
"Речь идет не о софте, где можно создать патч и распространить его через обновление системы за пару недель на большинство пользователей. Здесь же, чтобы по-настоящему справиться с проблемой, нужно заменить модулей DRAM на миллиарды долларов. С практической точки зрения это неосуществимо."