Pull to refresh

Comments 43

Если я правильно понимаю — физически — уязвимость может использоваться не только на андроид устройствах (точнее даже — не только на смартфонах и планшетах) но и на PC например и т.п. И операционной системой Андроид это также не ограничивается…
Нужен фоновый процесс которые обновляет критические области памяти. То есть простукивать ячейки с другой стороны.
В обратную сторону «выстукивать»?
… для реализации техники Rowhammer нужно осуществить более 540 тыс. обращений к памяти за 64 миллисекунды, что усложняет взлом.

Вот, так понятнее стало: память динамическая — 64 миллисекунды это очевидно период регенерации, то есть если между циклами регенерации успеть простукать бит он воспримется как родной. ECC поможет, но не спасет — парные ошибки обнаружены не будут. Выстукивать обратно — это фактически заниматься регенерацией причем очень неэффективно. Мда и правда проблема. Уменьшить период регенерации, скорее всего невозможно т.к. пресловутые 64 миллисекунды — это, вероятно, период распространения волны регенерации по всем сторокам памяти.
Выход один — все время заниматься какой-нить ерундой, что бы отнимать время у зловреда и не давать простукать битики.
У высокочастотной DDR4-памяти период регенерации 32 мс и ниже.
Больше плотность (тонкий техпроцесс), меньшая емкость ячейки (против физики не попрешь) — необходимость более частой регенерации. Думаю, что «этот горький катаклизм который, я наблюдаю» (с) был известен инженерам еще при разработке чипа. Тут нужно деструктивное мышление, а созидатель думает — «ну кому в голову придет в голову перезаписывать ячейку 8.43 млн раз в секунду» (надеюсь правильно посчитал). Кстати, а что же кеш-память то? То есть L0-L1-L2 (что там у нас есть) с такой скоростью простреливаюся?
На уровне OS можно считать чексуммы критических участков памяти.
Но это же такой оверхед выйдет…
Это ошибка железа и должна быть исправлена в железе.
Как вы исправите её в железе-то? Чипы памяти в каждом устройстве поменяете?
шифровать память? как на xbox360 где есть аппаратная поддержка этого
Да ладно приложение на Android, его ещё нужно установить и запустить.
Rowhammer можно использовать даже на Javascript.

Используйте ECC-память, может поможет :)
Помнится, показывали как в серверах rowhammer даже с ECC работал…
Правильно ли я понял, что если тупо насиловать память, то она рано или поздно даёт критический сдвиг битов, который значит root = 1?
Я как понял что таким простукиванием можно все что угодно сделать(настучать любую комбинацию). Хоть фильм записать на sd, хоть любые данные слить (именно простукиванием, а не через шел)
А как ПО узнает какие ячейки «простукивать»?
Тоже интересно какие права нужно иметь в системе, что бы узнать какие биты простукивать.
Почему то, теперь анекдот про способ взлома сервера Пентагона, не кажется таким уж нереальным )

На 74 357 181-й попытке- сервер согласился, что у него пароль «Мао Цзедун».

Да это со времён MySQL ещё не кажется, когда у них каждая 256-попытка входа с неправильным паролем проходила успешно.

А практическую пользу можно из этого извечь? То есть сделать рут на устройстве без перепрошивки и без риска поставить трояна?
Исходники этой штуки открыты?
UFO just landed and posted this here
В статье выложена ссылка на скомпилированную apk-шку. Можно попробовать на тестовом Андроиде. Или дизассемблировать, при возможности и желании для получения исходников.

Проще с dirtycow root получить.
Бинарник уже скомпилировал. Осталось понять как shadow редактировать

Вот у меня не получилось. Там не так всё просто как пишут.

Получил root, но загрузчик пока не победил.

А его вообще до этого так разблокировали, кто-нибудь?

Да, есть прецедент http:/bits-please.blogspot.de/2016/02/unlocking-motorola-bootloader.html
Неизвестно пока, подвержен ли мой телефон этому хаку.

А нельзя ограничить частоту доступа к памяти?
Боюсь что так производительность её упадет

В современных банковских смарткартах в OS предусмотрены методы для защиты от атак, основанных на порче памяти (ОЗУ и флеш).


И в рекомендациях, например (и не только), к созданию безопасных JavaCard апплетов есть рекомендации типа:


  1. Не используйте boolean типы. Лучше всего использовать константы и сравнения с ними.
  2. Используйте контрольные коды/блоки критичных данных и всегда их проверяйте перед использование данных.

Так что… проблема известная. Просто игнорируемая для устройств который не требуется сертификация и требования к безопасности считаются не существенными.

т.е. теоретически можно эксплуатировать уязвимость и в контейнерах, чтобы получить доступ к памяти хостовой ОС?

Учтите, что на серверах обычно всё-таки ECC, а с ним такое не проходит.

Вчера четыре раза запускал drammer(каждый запуск примерно по 4000 секунд) на LG Nexus 5, но либо надо запускать еще больше раз, либо на этом телефоне железо хорошее, либо я уже успел поставить какие-то патчи безопасности.
Взломать пока не вышло.
Теперь осталось подождать, когда миллионы планшетов без поддержки обновлений, начнут хреначить ddosaми.
Жаль что этот Drammer на X710s не работает((
В любом положении ползунка имеем вот это.

Вы серьезно? Одобрить комментарий через 5 лет???

UFO just landed and posted this here
Не понимаю, почему производители смартфонов так трусяться над тем рут-доступом? Сделали бы возможность ее включать/выключать на свой страх и риск пользователям да и все.
Поясните, пожалуйста — подвержены ли данной уязвимости устройства, зашифрованные стандартной функцией «Security => Encrypt device» (Android 5+)?

Имею в иду два состояния — выключенный телефон \ включенный, но заблокированный телефон.

Возможно ли будет скомпрометировать данные, используя эту уязвимость?

Спасибо.
Понял, как они позиционируют ряд для удара в произвольном месте памяти, не понял, как они выбирают это место напротив PTE? Разве заранее известно местоположение PTE в памяти?
Sign up to leave a comment.