Защита Резервных Копий Iphone

Сегодня я хочу рассказать о малоизвестных функциях iOS, связанных с защитой резервных копий, обходом этой защиты (рекурсия) и защитой от обхода защиты (двойная рекурсия).

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

-порядок рекурсии - думаю заслужил медаль!).



Защита резервных копий: пока все просто

Система резервного копирования iOS действительно непревзойденна.

Нечто подобное в плане локального резервного копирования мы видели в BlackBerry 10, но эта система мертва, а BlackBerry так и не добралась до «облака».

(Кстати, в ОС BlackBerry 10 резервные копии всегда были зашифрованы, а ключ всегда хранился в облаке — либо в BlackBerry ID пользователя, либо в корпоративной сети).

Резервное копирование в облако делалось неплохо в Windows Phone 8.1, а также в Windows 10 Mobile — но эти системы сейчас мертвы, и локальных резервных копий в них никогда не было.

Единственным конкурентом iOS является система Android, резервные копии которой создаются исключительно в облаке (команду adb backup проигнорируем: реально сохраняемых этой командой данных даже меньше, чем то, что попадает в облако).

Да, определенные хитрости помогут получить больше данных, но резервное копирование в Android далеко не идеально.

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

Их можно создать, например, в приложении iTunes, но не только в нем: существует множество сторонних приложений (в том числе и наше собственное iOS Forensic Toolkit), которые при подключении к iPhone создадут его резервную копию.

Кстати, с помощью Toolkit иногда можно вытащить резервную копию из телефона даже тогда, когда экран заблокирован и код блокировки неизвестен (для этого используются файлы блокировки).

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

В резервные копии включено практически все самое интересное: данные большинства приложений, логины с паролями, которые пользователь сохранил в браузере Safari и сторонних приложениях, пароли Wi-Fi, резервные копии часов, данные об активности пользователя (шаги , сердцебиение) в данный момент времени).

Многие другие вещи, необходимые для расследования преступлений, также попадают в резервные копии.

Зачем вам резервная копия, если вы знаете код блокировки? Нам часто задают вопрос (если быть точным в формулировке, «претензией с претензией»): если код блокировки уже известен, то зачем вообще нужна резервная копия? Можно ли смотреть все на самом iPhone? Нет, не все.

Даже если вы знаете код блокировки, не все интересные данные можно будет просмотреть на самом iPhone. iPhone сохраняет в резервных копиях большое количество данных, даже превосходящее пожелания пользователя.

Пользователь может даже не знать, что эти данные существуют! Это касается, например, истории браузера Safari — на самом телефоне или в iCloud можно просмотреть историю за последние 30 дней, а в резервную копию входит вся история за все время использования телефона (если пользователь не очистил историю вручную).

Кстати, ровно то же самое касается и истории звонков: в приложении «Телефон» она видна только за последние 30 дней, а информация обо всех звонках сохраняется в резервной копии.

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

Пользователь может удалить некоторые сообщения в программе обмена мгновенными сообщениями – и вы не увидите их на экране устройства; при этом база данных в формате SQLite может содержать удаленные записи длительное время — до тех пор, пока не будет запущена процедура периодической сборки мусора.

Важные вещи - анализ, поиск, экспорт данных, в том числе удаленных (первый запрос полиции - "где был пользователь в такое-то время такого-то числа"; ради интереса попробуйте ответить на этот вопрос самостоятельно телефон в руках и определите, сколько времени это займет, а анализ данных из резервной копии даст ответ за секунду.

) Есть еще мелочи - например, дата добавления контакта или дата события.

созданные в календаре, которые не видны в пользовательском интерфейсе.

В то же время в руках злоумышленника резервная копия становится оружием против пользователя.

Логины и пароли от Брелки позволяют «взломать» аккаунты и получить доступ к переписке и деньгам пользователя.

Чтобы этого не произошло, Apple позволяет пользователю устанавливать пароль для резервных копий.

Если установлен пароль, вся резервная копия будет зашифрована с помощью надежного ключа, созданного на основе пароля.

Шифрование происходит внутри устройства; Если установлен пароль, то незашифрованные данные просто не уйдут с телефона.

Соответственно, какую бы программу резервного копирования вы ни использовали, результат будет один и тот же: зашифрованная резервная копия.

Шифрование локальных резервных копий в относительно последних версиях iOS (10.2 и новее) настолько сильное, что даже при использовании аппаратного ускорения с графическим процессором Nvidia GTX 1080 нам не удалось добиться скорости перебора более сотни паролей в секунду.

Соответственно, лобовая атака бесполезна, даже если используется простой пароль всего из 7 символов (средний показатель для больницы).

Однако даже если у вас надежный пароль шифрования, вы можете извлечь фотографии и мультимедийные файлы со своего телефона, если знаете пароль или если установлена блокировка.

В iOS 10.2 и вплоть до выпуска iOS 11 длинный и сложный резервный пароль был абсолютной безопасностью; В старых версиях системы не было возможности удалить или изменить пароль без предварительного ввода старого.

В iOS 11 ситуация изменилась.



Первая рекурсия: сброс резервного пароля

Я уже писал о том, что можно сделать в iOS 11, 12 и 13 с помощью кода блокировки.

Помимо прочего, в этих версиях iOS код блокировки экрана можно использовать для сброса резервного пароля.

Теперь, если злоумышленник знает код блокировки экрана, он может сбросить пароль к локальной резервной копии, подключить телефон к компьютеру и извлечь все данные, а также расшифровать все пароли из связки ключей.

На сайте Apple они даны подробные инструкции , как действовать по сбросу пароля для резервной копии: В iOS 11 или более поздней версии вы можете создать зашифрованную резервную копию вашего устройства, сбросив пароль.

Для этого вам необходимо выполнить следующие шаги.

  1. На устройстве iOS выберите «Настройки» > «Основные» > «Сброс».

  2. Нажмите «Сбросить все настройки» и введите пароль iOS.
  3. Следуйте инструкциям, чтобы сбросить настройки.

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

    Пароль резервного шифрования также будет удален.

    (В скобках: в этот момент устройство попросит ввести код блокировки экрана).

  4. Повторно подключите свое устройство к iTunes и создайте новую зашифрованную резервную копию.

  5. Вы не сможете использовать ранее созданные зашифрованные резервные копии, но можете использовать iTunes для резервного копирования текущих данных и установки нового пароля резервной копии.

На устройстве под управлением iOS 10 или более ранней версии вы не можете сбросить пароль.



Вторая рекурсия: защита от попыток сброса пароля на резервной копии

Легкость, с которой злоумышленник может обойти ваш самый сложный и длинный пароль, просто введя код блокировки экрана, поражает. Однако можно попытаться защитить себя от этой напасти.

Механизмом защиты здесь будут ограничения родительского контроля (iOS 11) или пароль экранного времени (iOS 12 и 13).

Для простоты опишу конкретно iOS 12. Допустим, ваш iPhone попал в руки злоумышленника.

Предположим, злоумышленнику удалось подсмотреть ваш код блокировки; теперь он пытается отключить телефон от облака и заодно слить копию данных, получив доступ к паролям из Связки ключей.

Обезопасить себя от подобных событий можно с помощью аварийного пароля.

Подробнее о возможностях мониторинга экранного времени можно прочитать в статье Apple. Использование родительского контроля на iPhone, iPad и iPod touch вашего ребенка .

Нас сейчас интересует другая возможность этой системы: защитить телефон от сброса пароля на резервную копию.

Как ни странно, ограничить возможность сброса локального резервного пароля iOS довольно просто: все, что вам нужно сделать, это установить аварийный пароль как таковой.

Сложность такого пароля невелика: единственный доступный вариант — 4-значный ПИН-код. Однако такая защита в целом достаточно надежна.

Поскольку этот пароль используется очень редко и отличается от кода блокировки устройства, его нельзя случайно узнать.

Этот код понадобится в крайне редких случаях, когда вы захотите изменить настройки или отключить ограничения.

Вы можете установить случайный код, написав его на листке бумаги, оставленном дома – и это будет в полной безопасности.

Что произойдет, если вы сейчас попытаетесь сбросить резервный пароль? На первом этапе различий нет: система запросит пароль блокировки устройства.

Но сразу после этого будет запрошен дополнительный пароль из 4 цифр? Эта мера безопасности вполне способна не только отпугнуть любопытных, но и защитить iPhone от достаточно серьезных попыток взлома.



Рекурсия третья: как узнать аварийный пароль

Экстренный пароль сохраняется на самом устройстве.

Найти его за разумное время невозможно: небольшое пространство в 10 000 комбинаций защищено системой прогрессивных задержек между попытками входа.

После нескольких неудачных попыток система ограничит скорость подбора паролей, вводя прогрессивные задержки в 1, 5, 15 и 60 минут. После 10 неудачных попыток каждая последующая попытка может быть предпринята не ранее, чем через час после предыдущей; Перезагрузка устройства не поможет ускорить процесс.

Таким образом, все 10 000 комбинаций можно разобрать за 416 дней.

Однако есть более интересные способы.

Сразу оговорюсь: первый из них работает только тогда, когда пароль для резервной копии не установлен или известен, а второй - если iPhone можно взломать (то есть версия iOS на нем не новее iOS 12.2).

Для iPhone с неизвестным резервным паролем, работающего на последней версии iOS (сегодня это 12.4), рабочего способа узнать аварийный пароль (пока) не существует. Способ 1: извлечь из резервной копии В iOS 7–11 этот пароль (там он называется «Ограничения») хранится в виде хеша.

Алгоритм относительно надежный (pbkdf2-hmac-sha1, но количество итераций относительно невелико).

С учетом того, что этот пароль всегда состоит всего из 4 цифр, полный перебор хеша на компьютере занимает несколько секунд. Сам хеш хранится в файле com.apple.restrictionspassword.plist, который уходит в резервную копию.

Соответственно, пароль Ограничений можно взломать, если у нас есть (один из):

  • резервная копия без пароля
  • резервная копия с паролем, плюс пароль для нее
В iOS 12 (здесь это пароль экранного времени, или Screen Time) хранится в открытом виде.

Нет, безопасность от этого не ухудшилась: пароль был перенесен в Связку ключей.

Однако класс безопасности экстренному паролю присвоен минимальный: он не привязан к устройству.

Минимальный класс защиты установлен намеренно.

Это было сделано для того, чтобы при восстановлении нового iPhone из резервной копии аварийный пароль устанавливался автоматически (таким образом Apple закрыла потенциальную возможность удаления аварийного пароля путем создания резервной копии, перезагрузки устройства и последующего восстановления из резервной копии).

Записи связки ключей с более высокими классами безопасности не копируются и не включаются, но защищаются аппаратным ключом устройства (то есть их можно восстановить только на том же устройстве).

Чтобы получить аварийный пароль, вам необходимо:

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

Если резервный пароль установлен, но неизвестен, то единственный оставшийся способ узнать аварийный пароль — получить доступ к связке ключей.

Более старые версии iOS требуют копию файловой системы.

Для iOS 7-11 вам нужно:

  • образ файловой системы, полученный с помощью EIFT (требуется джейлбрейк) или GrayKey (джейлбрейк не требуется, достаточно кода блокировки устройства, но сам продукт доступен только правоохранительным органам в некоторых странах)
Для iOS 12:
  • Брелок, добытый EIFT или GrayKey
Необходимо ли это делать? Я не уверен: если вам удалось установить джейлбрейк, то, во-первых, все пароли можно получить таким образом, без посредника, в виде резервной копии.

Во-вторых, пароль от резервной копии можно узнать, расшифровав Связку ключей: пароль от резервной копии (как и аварийный пароль) хранится там в открытом виде.

Однако если цель — снять ограничения по времени, то такой подход вполне подойдет. Еще кое-что Интересно, что пароль Экранного времени также хранится в облаке iCloud, но только в том случае, если вы включили двухфакторную аутентификацию и активировали опцию Экранного времени «Поделиться между устройствами».

Сам ключ не попадает в Cloud Keychain, а хранится отдельно (примерно в том же виде, что и ключ для восстановления доступа к зашифрованным томам FileVault 2).

В настоящее время нет механизмов для получения его из iCloud и просмотра.

Мы работаем над этим; Осенью планируется выпустить новую версию Elcomsoft Phone Breaker, которая будет иметь эту возможность (если с выходом iOS 13 в механизме ее хранения ничего не изменится; такая возможность есть: iOS 13 уже изменилась где этот пароль хранится в самом телефоне).

В любом случае, чтобы получить пароль Экранного времени от iCloud, вам понадобится все, что указано ниже:

  • логин и пароль для Apple ID пользователя (iCloud)
  • код блокировки экрана устройства
  • доступ ко второму фактору аутентификации (это само устройство, если известен код блокировки; однако достаточно SIM-карты с доверенным номером телефона)
Но мы не тестировали сценарий сброса устройства с последующим его восстановлением из облачной резервной копии, поэтому не могу точно сказать, активируется ли аварийный пароль, если создать резервную копию в iCloud, сбросить iPhone и восстановить из него.

облако.

Более того, система может вести себя по-другому в случаях, когда из резервной копии восстанавливается тот же iPhone или новое устройство.



Рекурсия четвертая, последняя: как защитить доступ к паролю?

Вот мы и подошли к последнему пункту.

Если ваша цель — сделать свое устройство максимально безопасным, то в ваших интересах сделать так, чтобы аварийный пароль невозможно было сбросить или узнать.

Как и в предыдущей части, у меня две новости: хорошая и плохая.

Хорошей новостью является то, что защитить свой аварийный пароль от обычного человека и даже профессионального хакера довольно просто: просто установите длинный и надежный пароль на резервную копию, а затем просто обновляйте устройство, устанавливая последние версии iOS. сразу после их освобождения.

Джейлбрейки для новых версий iOS выпускаются не сразу.

Иногда между выходом обновления iOS и появлением работающего джейлбрейка для него проходят месяцы.

Вас может опасаться сценарий, когда украденное устройство (с известным злоумышленнику кодом блокировки) окажется на полке в ожидании появления джейлбрейка.

Однако здесь может помочь стандартное «Стереть [устройство]», выполняемое на портале «Найти iPhone».

Дело в том, что для установки джейлбрейка необходимо сначала подписать IPA-файл, а затем подтвердить цифровую подпись непосредственно на самом iPhone. Подтверждение цифровой подписи происходит на сервере Apple; то есть злоумышленнику придется разрешить украденному у вас iPhone доступ в Интернет. В этот момент скорее всего сработает команда на стирание устройства.

Злоумышленники могут решить эту проблему, используя специальные конфигурации маршрутизатора, запрещающие доступ к узлам, отвечающим за функцию «Найти iPhone».

Кроме того, вместо обычного сертификата для подписи джейлбрейка можно использовать сертификат разработчика, который не требует выхода iPhone в Интернет для подтверждения цифровой подписи.

Плохая новость заключается в том, что как бы вы ни старались, вам не удастся защитить свой iPhone от доступа через системы GrayKey или UFED Premium: их разработчикам удалось обойти большинство механизмов безопасности iPhone. Если известен код блокировки экрана, то пользователи этих комплексов смогут без проблем получить доступ к файловой системе и расшифровать Брелок.

С другой стороны, эти комплексы доступны только и исключительно правоохранительным органам, причем не во всех странах (например, в Россию они не поставляются).

Попасть в руки преступников им практически невозможно.

Таким образом, вы вряд ли подвергнетесь этой опасности.

Теги: #информационная безопасность #iOS #разработка iOS #Смартфоны #iphone #Apple #пароли

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.