Мы продемонстрировали, что сегодня в современных готовых системах несмотря на развернутые меры по снижению рисков, можно без особых усилий осуществить атаку Rowhammer с искажением битов на всех устройствах DRAM. Эта ситуация оказывает значительное влияние на безопасность системы, поскольку устройства DRAM в обычных условиях не могут быть легко восстановлены, а предыдущие опыты показали, что атаки Rowhammer в реальном мире практически осуществимы, например, в браузере с использованием JavaScript, на смартфонах, на виртуальных машинах в облаке и даже по сети.
Rowhammer — это уязвимость, вызванная утечкой заряда в ячейках DRAM, которая позволяет злоумышленникам осуществлять изменение битов в памяти DRAM. Чтобы остановить Rowhammer, DRAM реализует защиту, известную как Target Row Refresh (TRR). Наша предыдущая работа показала, что новые n-сторонние шаблоны все еще могут вызвать изменение битов на 31% современных устройств PC-DDR4. Мы предлагаем новый высокоэффективный подход для разработки неравномерных и частотных шаблонов доступа Rowhammer, которые позволяют обойти TRR на стандартных ПК. Мы реализовали эти шаблоны в нашем фаззере Rowhammer под названием Blacksmith и показали, что он может обойти TRR на 100% устройств PC-DDR4 DRAM в нашем тестовом пуле. Кроме того, наша работа дает новое представление о развернутых средствах защиты.
Как вы это сделали?
Мы провели серию экспериментов, начиная с наблюдения, что все предыдущие атаки Rowhammer забивали строки с однородным шаблоном, такие как, односторонние, двусторонние или n-сторонние (например, n=4). Во всех трех случаях к этим строкам "агрессорам" — то есть тем, которые вызывают изменения битов в соседних строках "жертвах" — обращаются одинаковое количество раз.
Поскольку область для поиска неоднородных шаблонов огромна, мы провели ряд дополнительных экспериментов, чтобы определить структуру шаблонов, которые эффективно обходят TRR. Результаты исследований показали, что порядок, регулярность и интенсивность доступа к строкам-агрессорам в неоднородных шаблонах имеют большое значение. Было замечено, что наши наблюдения хорошо согласуются с обычными параметрами области частот, а именно с частотой, фазой и амплитудой. На основе этих параметров были разработаны частотные шаблоны Rowhammer, которые могут успешно исследовать все множество неоднородных шаблонов. Мы реализовали их в программе black-box фаззер под названием Blacksmith, которая определяет подходящие значения параметров, создавая эффективные шаблоны, направленные на конкретное устройство.
Насколько это плохо?
Для нашей оценки мы рассмотрели тестовый пул из 40 устройств DDR4 трех основных производителей (Samsung, Micron, SK Hynix), включая 4 устройства, которые не указали своего производителя. Мы позволили нашему фаззеру Blacksmith работать в течение 12 часов, чтобы оценить его способность находить эффективные шаблоны. После этого мы проверили лучший из них (по количеству сработавших битовых переключений) на смежной области памяти размером 256 МБ и представили отчет о количестве таких случаев. Результаты, приведенные в таблице 1, показывают, что наша программа Blacksmith фаззер способна вызвать переключение битов на всех 40 устройствах DRAM и таких переключений будет много, особенно на устройствах производителей A и D.
Мы также оценили возможность для дальнейшей эксплуатации этих случаев переключения битов на основе трех атак из предыдущих работ: атаки, которая производит изменение записи в таблице страниц (PTE), чтобы она указывала на контролируемую злоумышленником страницу памяти; атаки на открытый ключ RSA-2048, которая позволяет получить соответствующий закрытый ключ, используемый для аутентификации на хосте SSH; и атаки на логику проверки пароля библиотеки sudoers.so, которая позволяет получить привилегии root.
Таблица 1: Результат 12-часового запуска фаззера Blacksmith на устройствах нашего тестового пула. Для каждого из них мы регистрируем количество найденных эффективных паттернов (#Patterns), общее количество битовых переключений, наблюдаемых во время проверки (#BitFlips), а для каждой атаки - количество эксплуатируемых битовых переключений (#Expl. BFs) и среднее время срабатывания первого используемого битового переключения (Time).
В заключение, наша работа подтверждает, что заявления производителей DRAM о защите от Rowhammer являются ложными и заставляют вас испытывать иллюзию безопасности. Все развернутые в настоящее время средства защиты недостаточны для полной защиты от Rowhammer. Наши новые модели показывают, что злоумышленникам гораздо легче использовать системы, чем предполагалось ранее.
Демо-версия
Ниже вы можете посмотреть демонстрацию нашего фаззера Blacksmith, который показывает, как легко и быстро можно обнаружить переключение битов на устройствах DDR4 с поддержкой TRR. Для получения полной информации и более подробных сведений о нашей работе, пожалуйста, ознакомьтесь с нашей статьей, которая должна появиться на IEEE S&P 2022.
Часто задаваемые вопросы
Ниже мы приводим ответы на наиболее часто задаваемые вопросы о нашей работе.
Существуют ли безопасные модули DIMM?
Мы не нашли ни одного полностью безопасного модуля DIMM. Согласно полученным данным, некоторые модули DIMM более уязвимы для наших новых шаблонов Rowhammer, чем другие.
Какие последствия для меня имеют эти новые результаты?
Спровоцировать переключение битов стало проще на современных устройствах DDR4, что облегчает атаки. Поскольку устройства DRAM в естественных условиях не могут быть обновлены, они останутся уязвимыми еще в течение многих лет.
Как я могу проверить, уязвима ли моя DRAM?
Код нашей программы Blacksmith Rowhammer фаззер, которую вы можете использовать для оценки вашего устройства DRAM на предмет переключения битов, доступен на GitHub. У нас также есть ранняя версия Blacksmith для FPGA, и мы работаем с Google над тем, чтобы полностью интегрировать ее в платформу тестирования Rowhammer для FPGA с открытым исходным кодом.
Почему JEDEC до сих пор не исправил эту проблему?
Очень хороший вопрос! К настоящему времени мы знаем, благодаря лучшему пониманию, что решить Rowhammer непросто, но вполне возможно. На наш взгляд, внутри JEDEC существует много бюрократии, что очень усложняет задачу.
Что если у меня есть модули DIMM с поддержкой ECC?
Предыдущая работа показала, что из-за большого количества переключений битов в современных устройствах DDR4, ECC не может обеспечить полную защиту от Rowhammer, и только затрудняет процесс эксплуатации при этом.
Что если моя система работает с двойной частотой обновления?
Кроме увеличения производительности и энергопотребления, предыдущие работы (например, Mutlu et al. и Frigo et al.) показали, что удвоение частоты обновления является слабым решением, не обеспечивающим полной защиты.
Почему вы анонимизировали названия поставщиков памяти?
Мы были вынуждены анонимизировать производителей DRAM в нашей оценке. Если вы являетесь исследователем, пожалуйста, свяжитесь с нами для получения дополнительной информации.
Работает ли Blacksmith с модулями DIMM других производителей?
Согласно статистике, три рассмотренных нами производителя микросхем DRAM покрывают 94% рынка DRAM. Однако мы протестировали Blacksmith на трех устройствах DRAM другого производителя и смогли успешно спровоцировать переключение битов и на этих устройствах.
Раскрытие информации
Мы ответственно подошли к раскрытию наших результатов для заинтересованных сторон. Далее мы приводим краткое описание сроков раскрытия информации.
В первом квартале 2021 года мы начали процесс ответственного раскрытия информации с Национальным центром кибербезопасности Швейцарии (NCSC-CH).
Во втором квартале 2021 года NCSC проинформировал основных производителей DRAM, OEM-производителей и крупные технологические компании о наших выводах и поделился черновиком и кодом нашей статьи.
В 3 квартале 2021 года NCSC отправила заинтересованным сторонам обновленную версию нашего документа и сообщила дату публичного раскрытия информации.
В 4-м квартале 2021 года мы получили CVE на нашу находку (CVE-2021-42114) и публично раскрыли Blacksmith 15 ноября 2021 года.
Три производителя DRAM (Samsung, SK Hynix и Micron), Intel, AMD, Microsoft, Oracle и Google подтвердили получение нашей находки. SK Hynix связалась с нами для обсуждения результатов по LPDDR4X. Мы обсудили возможные меры по защите с Intel и наши результаты более подробно с Google.
Проблемы, выявленные в данной работе, отслеживаются в CVE-2021-42114.
Благодарности
Данное исследование было поддержано Швейцарским национальным научным фондом в рамках программы NCCR Automation, грантовое соглашение 51NF40_180545, а также частично Нидерландской организацией научных исследований в рамках гранта NWO 016.Veni.192.262.
Материал подготовлен в рамках курса «Reverse-Engineering».
Всех желающих приглашаем на бесплатное demo-занятие «Типовые алгоритмы работы файловых инфекторов». На занятии мы разберём структуры PE формата, пройдёмся в них в HEX редакторе, добьёмся необходимых изменений для внедрения кода.