Флип фэн шуй

  1. Флип Феншуй: Механика
  2. Компромисс OpenSSH
  3. Компромисс apt-get
  4. прием
  5. документы
  6. Слайды
  7. Часто задаваемые вопросы

Flip Feng Shui (FFS) - это новый вектор эксплуатации, который позволяет виртуальной машине злоумышленника (VM) немного перевернуть страницу памяти виртуальной машины-жертвы, которая работает на том же хосте, что и виртуальная машина-злоумышленник. FFS полагается на аппаратную уязвимость, из-за которой происходит переворот, и на примитив, приводящий к увеличению физической памяти, для помещения страницы жертвы в уязвимое место физической памяти.

Хотя требования к FFS могут показаться нереальными, наша работа показывает, что сегодня можно надежно внедрить FFS в облаке, используя Rowhammer, широко распространенный сбой DRAM и дедупликацию памяти, популярную функцию управления памятью, которая уменьшает объем физической памяти виртуальных машин. путем слияния страниц памяти с одинаковым содержанием.

Чтобы получить простое и немного юмористическое объяснение FFS, посмотрите следующее дразнящее видео, которое мы подготовили для посетителей USENIX Security 2016:

Флип Феншуй: Механика

Наша атака FFS проходит в три этапа:

  1. Злоумышленник VM сначала профилирует свою память, чтобы найти ячейки памяти, уязвимые для Rowhammer. Данные, хранящиеся в этих ячейках памяти, могут изменяться без записи в них, вызывая Rowhammer.
  2. Как только найден подходящий переворот (т. Е. Один с правым смещением на странице памяти), злоумышленник записывает страницу памяти, которая, как он знает, существует в жертве в уязвимом месте памяти. Затем модуль дедупликации памяти объединяет страницу жертвы со страницей злоумышленника, как показано на рисунке ниже. Flip Feng Shui (FFS) - это новый вектор эксплуатации, который позволяет виртуальной машине злоумышленника (VM) немного перевернуть страницу памяти виртуальной машины-жертвы, которая работает на том же хосте, что и виртуальная машина-злоумышленник
  3. Если физическая память атакующей виртуальной машины выбрана для поддержки обеих страниц (обратитесь к нашему документу USENIX, чтобы узнать, как это можно сделать), тогда атакующий может запустить Rowhammer, чтобы изменить память жертвы. Как показано на рисунке ниже, DRAM организован в ряды, и повторная активация двух строк (например, строки i-1 и i + 1) может вызвать переворот в другой строке (например, строке i).

Обратите внимание, что простая запись на дедуплицированную страницу от злоумышленника запускает событие копирования при записи, чтобы сохранить правильную семантику изоляции памяти, но с Rowhammer, поскольку переворачивание битов происходит непосредственно на DRAM, копирования при записи не будет. нарушая изоляцию памяти виртуальной машины даже при полной виртуализации памяти, обеспечиваемой последними процессорами.

Так что же делать злоумышленнику с FFS? Мы демонстрируем две атаки: нарушение аутентификации с открытым ключом OpenSSH и полный компромисс с помощью apt-get.

Компромисс OpenSSH

Наша первая атака немного переворачивается в кеше страницы жертвы виртуальной машины, хранящей файл author_keys OpenSSH. В файле author_keys хранится (часто) открытый ключ RSA. Пользователь с закрытым ключом RSA, связанным с этим открытым, может затем войти в систему на сервере SSH.

Безопасность этой схемы в значительной степени зависит от того факта, что закрытый ключ не может быть легко получен из (известного) открытого ключа путем факторизации. Мы выполняем атаку FFS на открытый ключ, чтобы перевернуть один из его битов. Немного перевернутый открытый ключ становится намного легче разложить. Когда у нас есть все факторы, мы можем сгенерировать новый закрытый ключ, соответствующий перевернутому битовому открытому ключу и SSH, с неизмененным клиентом OpenSSH.

Ниже приведена демонстрация на нашем локальном испытательном стенде, демонстрирующая компромиссный SSH-компромисс с FFS:

Компромисс apt-get

В нашей атаке apt-get мы объединяем две FFS-атаки, чтобы обманным путем установить вредоносное программное обеспечение, упакованное из вредоносного хранилища, без каких-либо подозрительных предупреждений.

Сначала мы немного переворачиваем кеш страницы, где хранится файл sources.list, чтобы изменить одно из его доменных имен, например, мы меняем ubuntu.com на ubunvu.com. На этом этапе запросы apt-get жертвы будут перенаправлены в наш репозиторий, но никакие вредоносные пакеты не могут быть установлены, так как пакеты должны быть подписаны для доверия apt. Теперь мы немного перевернем кеш страниц, в котором хранится trust.gpg, эффективно повреждающий один из двух ключей подписи архивов Ubuntu. У нас есть предварительно вычисленные коэффициенты для ряда этих искажений (например, переворот в битах), и как только мы их найдем, мы можем подписать любой пакет, который мы хотим установить apt-get.

Ниже приведена демонстрация этой атаки на нашем локальном стенде. Мы перенаправляем apt-get жертвы с ubuntu.com на ubunvu.com и заставляем ее установить версию coreutils с резервной копией:

Мы зарегистрировали все возможные домены, которые находятся на расстоянии одного шага от ubuntu.com и debian.org. Мы хотели бы передать эти домены в надлежащие полномочия. Пожалуйста, свяжитесь, если вы думаете, что вы один.

прием

  • Усилия по раскрытию информации возглавляются Национальный центр кибербезопасности (NCSC) в Нидерландах. Их рекомендации / информационный бюллетень о FFS можно найти Вот ,
  • Они сообщили об этой проблеме многим сторонам, включая OpenSSH, GnuPG, поставщиков мониторов виртуальных машин (Oracle, Redhat, Xen, VMware), а также Debian и Ubuntu, еще до публикации статьи. Все эти стороны ответили.
  • В частности, GnuPG усилил свои проверки подписи ключей для защиты от атаки FFS. Совершить здесь ,
  • Первоначально мы зарегистрировали все доменные имена Ubuntu / Debian, которые могут быть использованы Flip Feng Shui. Затем мы согласовали с Регистратор последней инстанции занести в черный список все эти домены на неопределенный срок.
  • Было достаточно внимания со стороны СМИ. Увидеть новость здесь ,

Мы разработали Hammertime симулятор Rowhammer с открытым исходным кодом GitHub - способствовать дальнейшим исследованиям ошибки Rowhammer. Симулятор позволяет исследователям и практикам моделировать аппаратные перевороты в программном обеспечении, используя шаблоны переворотов (или переворачиваемые таблицы) из большого набора микросхем DRAM. Мы планируем интегрировать больше функций и шаблонов переворота в ближайшем будущем.

документы

516927 AR3F7P2D, MHVV55RN элементы 1 дата desc название https://www.vusec.net/wp-content/plugins/zotpress/

Слайды

Слайды презентации USENIX Security 2016

Часто задаваемые вопросы

  • Почему название Флип Феншуй?
    Фэн-шуй - это китайская философия гармонизации с окружающей средой. Семестр Куча фен шуй ранее использовался хакерами для описания расположения кучи определенным образом, что позволяет успешно захватить поток управления. Флип-фэн-шуй - это искусство организации физической памяти определенным образом, чтобы аппаратный переворот приводил к успешному компромиссу.
  • Насколько это отличается от Dedup Est Machina?
    Очень разные. Дедуп Эст Мачина в первую очередь ориентирован на использование браузера. Оба используют комбинацию дедупликации памяти и Rowhammer, но Dedup Est Machina использует дедупликацию для утечки адресов памяти, рандомизированных ASLR, в то время как Flip Feng Shui использует дедупликацию для хирургического размещения конфиденциальных данных в уязвимых местах физической памяти.
  • Насколько широко распространен Rowhammer? Как я могу проверить, уязвим ли мой DRAM?
    Согласно оригинальная бумага Rowhammer более 85% модулей DDR3 уязвимы для Rowhammer. Есть много тестов, доступных онлайн для проверки вашей DRAM против Rowhammer, например, memtest86 , Мы скоро выпустим высокооптимизированный тест Rowhammer. Следите за обновлениями!
  • У меня есть DRAM с кодом исправления ошибок (ECC). Я в безопасности от атак FFS?
    Запуск Rowhammer через DRAM с ECC сложнее, чем обычный DRAM. Тем не менее, существуют модули DRAM с многократным переключением битов на домен ECC, которые ECC не может исправить. На данный момент все еще неясно, могут ли эти DRAM надежно использоваться.
  • Я использую провайдера публичного облака. Я в опасности?
    Сложно сказать. NCSC поддерживает связь с крупными облачными провайдерами и поставщиками виртуальных машин, чтобы гарантировать, что проблема решена для большинства облачных пользователей.
  • Я провайдер публичного облака. Как я могу защитить своих клиентов?
    Отключить дедупликацию памяти. Он называется под разными именами: объединение одинаковых страниц ядра, прозрачный общий доступ к страницам, дедупликация на основе содержимого и т. Д.

Так что же делать злоумышленнику с FFS?
Насколько это отличается от Dedup Est Machina?
Насколько широко распространен Rowhammer?
Как я могу проверить, уязвим ли мой DRAM?
Я в безопасности от атак FFS?
Я в опасности?
Как я могу защитить своих клиентов?