- PVSM.RU - https://www.pvsm.ru -

Security Week 24: Rowhammer в Android и сложность аппаратных уязвимостей

Security Week 24: Rowhammer в Android и сложность аппаратных уязвимостей - 1Люблю читать научные работы, исследующие компьютерные уязвимости. В них есть то, чего индустрии инфобезопасности часто не хватает, а именно — осторожности при формулировке определенных допущений. Это достоинство, но есть и недостаток: как правило, практическая польза или вред от свежеобнаруженного факта неочевидны, слишком уж фундаментальные феномены подвергаются исследованию. В этом году мы немало узнали о новых аппаратных уязвимостях, начиная со Spectre и Meltdown, и обычно эти новые знания появляются в виде научной работы. Качества этих аппаратных проблем соответствующие: им подвержены целые классы устройств, их трудно (а то и вовсе невозможно) полностью закрыть софтовой заплаткой, потенциальный ущерб тоже непонятен. Да что там говорить, иногда сложно понять, как они вообще работают.

Примерно так выходит с уязвимостями класса Rowhammer. Четыре года назад была обнаружена принципиальная возможность изменить «соседний» бит в модуле оперативной памяти регулярными операциями чтения/записи. С тех пор появились [1] новые [2] исследования [3], показывающие, как применить эту особенность плотно упакованных чипов памяти для практических атак. На прошлой неделе сборная команда ученых из разных стран показала практическую атаку на Android-смартфоны RAMpage (новость [4], исследование [5]). Насколько эта атака реально опасна? Попробуем разобраться (спойлер: пока непонятно).

Напомню, атака Rowhammer использует фундаментальные особенности чипов памяти. Конкретно, изменение заряда при записи в определенную ячейку (точнее, ряд ячеек) влияет и на соседние ячейки (ряды) тоже. Обычно это не представляет проблемы, так как через определенные промежутки времени заряды во всех ячейках обновляются. Но если достаточно часто и много производить операции чтения-записи (десятки и сотни тысяч раз), можно изменить значение в ячейках памяти, к которым у вас изначально не было доступа (все написанное выше — вульгарное упрощение, граничащее с криминалом, а истина содержится только в оригинальной научной работе [6]). Приспособить данную особенность памяти для какой-нибудь реальной атаки непросто: требуется правильная комбинация прав доступа к системе, расположения кода в памяти, прямой доступ к памяти без кэширования и прочая, и прочая. Не сразу, но за четыре года набралось немало примеров таких комбинаций, и Rowhammer из милой теории превратился в суровую практику.

Security Week 24: Rowhammer в Android и сложность аппаратных уязвимостей - 2
Когда нужна картинка про компьютеры, молотки и безопасность

Не буду даже пытаться пересказать простыми словами атаку RAMpage. Эта атака обходит заплатки, внедренные в Android после обнаружения (примерно той же группой исследователей) атаки Drammer [7] в 2016 году. Комбинация нескольких ранее известных методов, обеспечивающих прямой доступ к оперативной памяти в нужном месте, и особенностей современной версии Android (в эксперименте использовался телефон LG G4 с Android 7.1.1) позволила получить права суперпользователя на полностью запатченном телефоне.

Что нехарактерно для исследования по новой уязвимости, авторы RAMPage предлагают также способ закрыть уязвимость, причем с весьма небольшим падением производительности (по версии Google, падение там все же значительное). Более того, митигация (ей тоже придумали имя — GuardION) позволяет включить обратно оптимизации, выключенные в Android после предыдущего исследования.

Security Week 24: Rowhammer в Android и сложность аппаратных уязвимостей - 3

В лучших традициях современного vulnerability marketing уязвимости (и заплатке) сделали сайт и логотипы [8]. Но так как это ученые, FAQ на этом сайте предельно честный: «Нет, это не Spectre, даже не рядом». «Нет, мы не покажем вам PoC». «Мы не знаем, подвержен ли ваш телефон, у нас были деньги только на один». Правда, на сайте можно скачать приложение, которое позволит протестировать ваш гаджет на уязвимость самостоятельно. Предлагаемый код для митигации также доступен на GitHub [9]. В Google не склонны преувеличивать опасность исследования: атака «не работает на поддерживаемых устройствах с Google Android». Хочется что-нибудь доброе сказать про фрагментацию Android и разницу между поддерживаемыми и используемыми, но как-нибудь в другой раз.

Что, если выражаться обычным русским языком, произошло? Исследователи чуть-чуть подняли планку практичности еще одной атаки, использующей аппаратную уязвимость. Ее пока не применяет (и вряд ли будет) криминал, и вообще от состояния «получили рут в лаборатории» до «можем атаковать значительное количество устройств реальных пользователей» путь неблизкий. Google в курсе, и каким-то образом хотя бы в новых версиях Android держит проблему под контролем. Такие исследования требуют много времени, а опасность заключается в возможном резком переходе из количества (потраченных человеко-часов) в качество. А именно: в появление какой-нибудь относительно легко (хотя бы как Meltdown) эксплуатируемой дыры, закрыть которую можно или покупкой нового устройства, или падением производительности в разы.

Впрочем, предложение выше — это уже неосторожное допущение (но автору текста можно, он не ученый). Тем временем другая группа исследователей вроде бы нашла [10] еще одну аппаратную уязвимость, на сей раз в функции hyperthreading в процессорах Intel. Более того, уязвимость была применена для кражи ключа шифрования из процесса, выполняющегося в соседнем «треде» того же ядра. А мейнтейнеры OpenBSD были настолько впечатлены результатами, что решили выключить поддержку функциональности процессоров в дистрибутиве полностью (с очевидными последствиями для производительности). Исследовательская работа планируется к публикации на конференции Black Hat в августе. Продолжаем наблюдение.

Disclaimer: Ааааа, я забыл добавить дисклеймер в предыдущий пост. Что же делать? Что будет со мной? Меня уволят? Земля налетит на небесную ось? Найдут уязвимость в кабелях питания? Кто я? Что это за место? Такой яркий белый све Мнения, изложенные в этом дайджесте, могут не всегда совпадать с официальной позицией «Лаборатории Касперского». Дорогая редакция вообще рекомендует относиться к любым мнениям со здоровым скептицизмом.

Автор: Kaspersky_Lab

Источник [11]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/284790

Ссылки в тексте:

[1] появились: https://threatpost.ru/apparatnaya-uyazvimost-rowhammer-atakuet-operativnuyu-pamyat-noutbukov-i-nastolnyh-kompyuterov/6702/

[2] новые: https://threatpost.ru/rowhammer-smashes-even-harder-with-glitch/25926/

[3] исследования: https://threatpost.ru/nethammer-another-version-of-rowhammer-attack/26141/

[4] новость: https://threatpost.ru/rowhammer-is-on-killing-spree-with-rampage/26940/

[5] исследование: https://vvdveen.com/publications/dimva2018.pdf

[6] оригинальной научной работе: http://users.ece.cmu.edu/~yoonguk/papers/kim-isca14.pdf

[7] Drammer: https://threatpost.ru/rowhammer-vulnerability-comes-to-android/18847/

[8] сайт и логотипы: https://rampageattack.com/

[9] доступен на GitHub: https://github.com/vusec/guardion

[10] нашла: https://arstechnica.com/gadgets/2018/06/tlbleed-a-new-way-to-leak-crypto-keys-on-hyperthreaded-processors/

[11] Источник: https://habr.com/post/415979/?utm_campaign=415979