Молотобойцы-III: метатели молота и атака на смартфоны

Мы уже дважды писали об атаке Rowhammer. Если вкратце, то эта атака — напоминание программистом, что под уровнем абстракций (в данном случае — память) лежит аппаратура со вполне реальными физическими свойствами. И если долго переключать значение одного бита на аппаратном уровне в нужное состояние, то можно повлиять и на состояние соседних (физически) ячеек памяти. Разумеется, никакой язык программирования такого напрямую не поддерживает, но злоумышленников это не останавливает.

С момента обнаружения возможности атаки несколько лет назад ряд работ продемонстрировали возможности её практического применения. Так, появилась реализация на чистом JavaScript. Это значит, что посетитель зловредного сайта может стать жертвой атаки, сам того не подозревая. Первая версия была медленной и непрактичной, производители браузера смогли принять контрмеры, но вектор атаки был чётко обозначен. В 2016-м году публике была представлена атака Flip Feng Shui — «перевёрнутый фен-шуй». Тогда исследователи показали, как вмешаться в работу соединения по SSH и получить доступ на машину жертвы, располагающуюся на том же сервере. Обсуждалась возможность и исказить бит в имени домена, с которого получают обновления виртуальные машины. После этого на новом домене уже можно разместить malware, которое при установке откроет злоумышленникам дорогу на атакуемый компьютер. Удавалось воздействовать «молотом» и на flash-память.

Продолжение последовало незамедлительно. Как и в прошлый раз, работу провели исследователи из Независимого университета Амстердама (Vrije Universiteit Amsterdam). В своей работе они продемонстрировали удалённую эксплуатацию Rowhammer. Жертвой может оказаться любой компьютер, на котором включена возможность, известная как RDMA. Для атаки была написана программа в 2000 строк на языке C. Не потребовалось ни локального доступа к машине жертвы, ни привилегий администратора.

RDMA — аппаратное решение для обеспечения прямого доступа к оперативной памяти другого компьютера. Это позволяет получить доступ к данным, хранящимся в удалённой системе, без привлечения средств операционных систем обоих компьютеров. Особенность RDMA — низкое потребление ресурсов и большая скорость отклика. Особенно широко RDMA применяется в вычислительных кластерах — больших параллельных вычислительных системах. Кроме того, этот механизм широко используется для установки операционных систем на новые компьютеры в датацентрах.

Сама по себе возможность удалённой атаки достаточно неприятна, но тут ещё и появляется способ получить под контроль огромные ресурсы. Голландцы продолжили метафорический ряд, поименовав новый вариант атаки Throwhammer — «бросок молота».

К счастью, авторы смогли предложить и контрмеры, потенциально позволяющие защититься от этого варианта атаки. Для этой цели они разработали специальный менеджер выделения памяти (аллокатор). Для его включения не требуется перекомпилировать приложения. Аллокатор учитывает физическое расположение ячеек и обрамляет запрошенную память дополнительными участками. В результате пользователю гарантируется, что изменённые биты-соседи не окажутся в памяти, выделенной другому процессу. Исследователям удалось померить потери производительности и прирост потребления памяти в результате применения их аллокатора. Ценой за безопасность стали несколько процентов общей производительности.

Почти одновременно со статьёй про Throwhammer появилась публикация об ещё одной вариации на тему Rowhammer, уже адресованной владельцам смартфонов. Статья написана в том же университете, что и предыдущая. Эта разновидность атаки получила название GLitch («глюк»). Прописная буква L намекает на использование для атаки браузерного API WebGL. Теперь уязвимость найдена в графическом процессоре. Формально это всё то же использование JavaScript для вызова нужных процессорных устройств, но теперь для того, чтобы телефон жертвы попал под контроль злоумышленников, требуется несколько минут. От предыдущих попыток взятия под контроль «молотком» мобильные телефоны спасало то, что достаточно много данных находится в кеше центрального процессора, что снижает эффективность атаки. У графического процессора кеши существенно меньше, поведение у них более предсказуемое, а значит, шанс «попасть» по нужному месту гораздо выше.

Отработав в браузере, вредоносный код получает доступ к паролям, истории и прочей чувствительной информации. Наверняка со временем злоумышленникам удастся получить и привилегии администратора системы. Атака была показана на примере FireFox, но и более популярный Google Chrome тоже можно взять под контроль таким способом. Оба браузера в мартовском обновлении отключили использование функциональности, давшей зацепку исследователям. Кроме того, разработчики обеих компаний приложили усилия для корректировки самой спецификации WebGL, чтобы сделать её более защищённой.

От превращения GLitch в практическую угрозу спасает раздробленность экосистемы Android. Пока что на пример атаки можно посмотреть только на телефоне Nexus 5, который не получает обновлений с 2015 года и других аппаратах с процессором Snapdragon 800 или 801. Для каждой модели чипа потребуется модифицировать технику, но сам факт эксплуатации уязвимости может прибавить мотивации вирусописателям. Несмотря на принятые контрмеры и сложности в разработке, обнаружен совершенно новый вектор атаки. Впрочем, для большинства пользователей куда опаснее фишинг и злонамеренные приложения.


Автор:  Дмитрий Белявский (ТЦИ)

Возврат к списку