Метод Баптиста
Смартфоны Samsung можно выводить из строя, используя присутствующий в них незащищенный ресивер — к такому выводу пришел исследователь безопасности Робер Баптист (Robert Baptiste), известный в Twitter под псевдонимом Elliot Alderson.
Протестировав приобретенный им смартфон Samsung, исследователь увидел, что в приложении ContainerAgent версии 2.7.05001015 имеется включенный по умолчанию незащищенный ресивер SwitcherBroadcastReceive. Исследователь начал разрабатывать способ привести ресивер в действие.
В ходе применения метода onReceive выяснилось, что ресивер ожидает сom.samsung.android.knox.containeragent.LocalCommandReceiver.ACTION_COMMAND в качестве действия. Затем происходит проверка значения com.samsung.android.knox.containeragent.LocalCommandReceiver.EXTRA_COMMAND_ID, которое может выглядеть как 1001 или 1002. После этого ресивер проверяет значение android.intent.extra.user_handle.
Задав в качестве значения ACTION_COMMAND 1001, исследователь смог вызвать метод immediateLock. В качестве параметра при этом фигурировал дополнительный user_handle. Задав значение user_handle 150, пользовательский ID Knox user, исследователь смог добиться блокировки контейнера KNOX — надстройки для Android, предназначенной для защиты данных.
Если же изменить значение ACTION_COMMAND на 1002, то в результате будет вызван метод switchToProfile со значением user_handle в качестве параметра. Выставив значение user_handle 0, пользовательский ID первого пользователя, можно добиться автоматического перехода на первую страницу лаунчера.
Для эксплуатации уязвимости Баптист создал специальное приложение Locker application, которое путем постоянной передачи объектов intent в количестве двух в секунду осуществляет локальную DoS-атаку, что и выводит смартфон из строя, превращая его в «кирпич». Каждый раз, как жертва открывает приложение SecureFolder, контейнер замыкается, и при попытке использовать телефон он возвращается непосредственно на первую страницу лаунчера.
Исследователь предупредил Samsung о проблеме, но компания не восприняла ее всерьез.
Похожие случаи
Это не единственная найденная за последнее время уязвимость, которая позволяет вывести из строя смартфон. В феврале CNews писал, что в iOS обнаружена уязвимость, позволяющая бесконечное число раз перезагружать устройства под управлением этой ОС. Для этого достаточно запустить голосовой помощник Siri и пять раз произнести русское слово «дефис» или английское hyphen. Как вариант, можно набрать пять дефисов на виртуальной клавиатуре при активированной Siri. Система сначала зависнет, а потом уйдет в перезагрузку.
Но самым известным подобным случаем считается так называемая «ошибка 1970», обнаруженная в феврале 2016 г. Уязвимость заключалась в том, что на iPhone нужно было установить дату 1 января 1970 г., после чего он выходил из строя и переставал включаться. Решить проблему можно было лишь путем разборки аппарата и переподключения батареи, или можно было дождаться ее полного разряда, на что уходило до нескольких дней.
Немного позже, в апреле 2016 г., история с «ошибкой 1970» получила продолжение. По всему миру в общественных местах стали появляться поддельные точки доступа Wi-Fi, имитирующие сети известных заведений. К этим точкам подключался поддельный сервер синхронизации времени (NTP-сервер), который принудительно переводил дату на любом подключенном к сети устройстве на 1 января 1970 г. Владельцы iOS-гаджетов, решившие воспользоваться такой сетью для выхода в интернет, неизбежно оставались с «кирпичом» в руках. По состоянию на 2019 г. «ошибка 1970» Apple успешно устранена.
Также известен случай с выводим из строя iPhone путем отправки короткого сообщения в iMessage жертвы. После его прочтения устройство зависнет, и нужно будет выполнить ряд трудоемких действий для его восстановления. Уязвимость была обнаружена в iOS 10, в iOS 12 она уже устранена.