Теоретической основой для создания таких программ стали опубликованные в прошлом году университетом Карнеги-Меллона и корпорацией Intel работы, в который говорилось о возможности изменения значений, хранящихся в ячейках памяти, в результате многократного обращения к соседним ячейкам – этот процесс называется «переключением битов» (bit flipping).
Стремясь увеличить емкость микросхем памяти, производители размещают ячейки все ближе друг к другу, а это в свою очередь приводит к снижению устойчивости памяти DRAM к электрическим помехам.
«Об электрических наводках производителям известно давно, но эта проблема всегда интересовала их скорее с точки зрения надежности, чем безопасности», – указал инженер-программист Google Марк Сиборн. Вместе с тем, исследование Google показало, что переключение битов может иметь гораздо более серьезные последствия.
В ходе проведенных испытаний выяснилось, что из 29 портативных компьютеров на платформе x86, выпущенных в период с 2010 по 2014 год, многие оказались уязвимы к воздействиям подобного рода. Во всех ноутбуках, производители и модели которых не называются, была установлена память DDR3 DRAM.
«Недостаток технической информации не позволяет нам с уверенностью утверждать, какие компьютеры подвержены влиянию электрических помех в большей степени, – отметил Сиборн. – Мы не знаем точно, сколько машин пострадают в результате такой атаки и в каких случаях уязвимость можно ликвидировать».
Два эксплойта Google, использующие технику, которая получила название rowhammering, многократно обращались к ячейкам памяти в одном ряду, что приводило к инвертированию битов данных, хранящихся в соседних ячейках.
Благодаря применению техники rowhammering исследователям удалось создать эксплойт для проведения атаки с повышением уровня привилегий и выходом за рамки песочницы Chrome, которая ограничивала возможности приложений, запущенных в среде браузера. Выйдя за рамки песочницы, программный код получает возможность прямого доступа к операционной системе.
Второй эксплойт использовал технологию переключения битов для получения привилегий уровня ядра. Инвертированию битов подвергалась таблица страниц, которая служила для отображения виртуальной памяти на физическую. После проведения атаки код получал доступ по чтению и записи ко всей физической памяти компьютера.
В новейших чипах памяти DDR4 DRAM, пришедших на смену микросхемам DDR3 во многих ПК и серверах, последствия манипулирования битами не столь заметны. Но соответствующие решения внедрялись исключительно из соображений повышения надежности памяти.
«История показывает, что вопросы, поднимаемые в целях повышения уровня надежности, зачастую оказывают очень серьезное влияние на безопасность, и проблема манипулирования битами – хороший тому пример, – подчеркнул Сиборн. – Многие уровни компьютерной безопасности выстраивались, исходя из предположения о том, что содержимое отдельных областей памяти остается неизменным до тех пор, пока эти области не будут перезаписаны».