Безопасность в iOS 12: что хорошо, что плохо и как её усилить

28 сентября, 2018, Oleg Afonin
Рубрика: «Безопасность», «Разное»
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

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

iOS 12 достаточно безопасна

Мы неоднократно писали о модели безопасности современных версий iOS. Если говорить о свежих сборках системы (на сегодня это iOS 12 в качестве официального релиза и 12.1 в качестве публичной бета-версии), можно похвалить образцовую реализацию шифрования данных и действительно стойкую защиту криптографического ключа (напомним, он вычисляется динамически в процессе загрузки на основе пароля блокировки, а в процессе работы надёжно защищён сопроцессором Secure Enclave). Также похвалим дополнительный уровень защиты связки ключей keychain, в которой хранятся все пароли к учётным записям Safari, маркеры аутентификации и криптографические ключи. Если установленный пароль блокировки содержит 6 цифр или буквенно-цифровую комбинацию, расшифровать что бы то ни было с выключенного телефона будет невозможно, даже если будет извлечена микросхема памяти.

Резервные копии: ещё безопаснее

Система резервного копирования iOS достойна всяческого подражания. Именно она, а не стеклянные корпуса или вырез в экране. Шифрование локальных резервных копий в iOS 10.2 и более новых настолько стойкое, что даже акселератор Nvidia GTX 1080 демонстрирует скорость перебора не выше сотни паролей в секунду. Таким образом, несложный пароль всего из 7 знаков (средняя длина паролей согласно статистике) загрузит единственный компьютер на ближайшее тысячелетие. Вплоть до выхода iOS 11 можно было назначить на резервную копию длинный случайный пароль, который обеспечил бы работой все компьютеры мира до скончания веков.

…но это не имеет значения.

С такой безопасной iOS и такими безопасными резервными копиями о чём ещё можно говорить? Достаточно установить последнее обновление системы, не забыть про 6-значный пароль блокировки и можно наслаждаться безопасностью?

Как показывает практика, целую бочку мёда можно испортить всего одной ложкой дёгтя. И эта ложка – тот самый код блокировки. В одной из будущих статей мы подробно опишем, что можно сделать с iPhone, если узнать этот код. Сейчас же изложим основные тезисы. Если код блокировки известен, злоумышленник сможет:

  • Отключить Find my iPhone и блокировку Activation Lock (iCloud lock)
  • Включить двухфакторную аутентификацию, если она не была включена
  • Сменить пароль от Apple ID/iCloud; с этим паролем получить доступ к «облачным» резервным копиям, синхронизированным данным и паролям из «облачной» связки ключей iCloud Keychain, причём со всех устройств, привязанных к данной учётной записи
  • Разумеется, скачать фотографии из iCloud Photo Library (вспомним Celebgate)
  • Заблокировать или удалить данные с других устройств, привязанных к данному Apple ID
  • Сбросить пароль на локальную резервную копию, подключить телефон к компьютеру и извлечь все данные
  • Извлечь все пароли из связки ключей или просмотреть их на самом устройстве

Переход iOS от многослойной защиты к обороне пароля

Из приведённого выше списка следует, что iOS 11 и 12 чрезмерно полагаются на единственный слой защиты. Просто узнав пароль блокировки телефона, можно проделать массу вещей относительно как самого устройства, так и остальных устройств, привязанных к учётной записи пользователя – вплоть до удалённого уничтожения информации и блокирования устройств с целью вымогательства.

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

Для всех существующих устройств iPhone и iPad существует два работающих независимых решения, позволяющих взломать код блокировки методом перебора. Эти решения – Cellebrite и GrayKey – доступны исключительно полиции и спецслужбам, но однажды найденная уязвимость рано или поздно окажется в руках не столь чистоплотных.

О решениях двух компаний официально известно довольно мало. Неофициально же ситуация довольно интересна. Так, GrayKey прекрасно отрабатывает на всех устройствах, работающих под управлением iOS 11.3.1 и более ранних версий при условии, что взламываемый телефон был хотя бы раз разблокирован после включения или перезагрузки. В таких случаях перебор идёт очень быстро, и код блокировки из 4 цифр будет взломан в течение максимум одной недели. Значит ли это, что код блокировки, состоящий из 6 цифр будет взломан максимум через 100 недель? Нет, не значит: в силу аппаратных ограничений с такой скоростью можно перебрать только 300,000 комбинаций из 10 миллионов. После этого перебор будет доступен лишь в «медленном» режиме.

«Медленный» режим перебора позволяет делать попытки с интервалом в 10 минут. Именно с такой скоростью решение компании GrayShift будет перебирать пароли на устройствах, которые были выключены или перезагружены (и ни разу после этого не разблокированы). Более того, начиная с iOS 11.4 «медленный» режим перебора – единственное, что доступно и для ранее разблокированных устройств. Больше двух месяцев на взлом пароля из 4 цифр и почти 19 лет для полного перебора пространства паролей из 6 цифр – казалось бы, вполне удовлетворительные показатели.

Но не с точки зрения Apple.

USB Restricted Mode

Казалось бы, код блокировки из 6 цифр – уже достаточная гарантия безопасности данных. 19 лет на полный перебор пространства паролей – это немало. Однако и компании, пытающиеся взломать iOS, не сидят со сложенными руками. И если сегодня им доступен лишь медленный перебор, то нет никакой гарантии, что завтра они не сделают то же самое – но в разы быстрее. Отчаявшись защитить свои устройства от эксплуатируемых Cellebrite и GrayShift уязвимостей, в Apple решились на отчаянный шаг, вызвавший бурную неоднозначную реакцию со стороны как журналистов, так и правоохранительных органов.

О новом режиме USB Restricted Mode, который то появлялся, то исчезал, то снова появлялся в бета-версиях iOS 11, мы уже писали. Режим USB Restricted Mode полностью отключает любой обмен данными через встроенный в устройство порт Lightning. Единственное, что остаётся доступным – зарядка; с точки зрения компьютера, к которому будет подключен iPhone с активировавшимся режимом USB Restricted Mode, устройство ничем не будет отличаться от, к примеру, внешнего аккумулятора.

Активируется этот режим так:

Режим USB Restricted Mode активируется при «выключенном» положении переключателя USB Accessories.

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

Телефон теперь потребуется разблокировать.

В текущей реализации режим USB Restricted Mode появился в iOS далеко не сразу. Если в бета-версиях iOS 11.3 этот режим активировался спустя 7 дней с момента последней разблокировки устройства, то в iOS 11.4.1 USB порт отключался спустя всего час. Таким образом, если пользователь не разблокировал телефон в течение часа (и не подключал его к доверенному устройству), решение Cellebrite или GrayKey для взлома пароля не сможет работать: оно не сможет подключиться к телефону.

Режим USB Restricted Mode достаточно надёжен: телефон по-прежнему откажется общаться с компьютером, даже если его перезагрузить. Если перевести iPhone в режим Recovery или DFU, он становится доступен с компьютера – но перебор паролей в этих режимах невозможен. Мы пытались «восстановить» телефон, залив на него свежую прошивку – но даже это не помогло отключить USB Restricted Mode после перезагрузки в систему.

В iOS 12 режим USB restricted mode был дополнительно усилен. В предыдущем релизе, в iOS 11.4.1, режим USB restricted mode автоматически отключал возможность передачи данных через порт Lightning спустя час после блокировки устройства или его отключения от цифрового аксессуара или переходника. Тем не менее, в iOS 11.4.1 оставалось окно возможностей шириной в один час, в течение которого iPhone можно было подключить к переходнику (к примеру, Apple AV Adapter) или компьютеру. Если злоумышленник успевал это проделать, то iPhone можно было спокойно транспортировать в лабораторию, в которой впоследствии и осуществлялась атака.

Это окно постарались закрыть в iOS 12. Теперь USB порт (и, соответственно, обмен данными) отключается сразу же после блокировки iPhone – но только в том случае, если пользователь не подключал устройство к компьютеру или проводному аксессуару (за исключением переходника на 3.5мм) в течение трёх суток. Насколько полезен этот режим? В зависимости от того, как часто вы подключаете iPhone к компьютеру или используете цифровые переходники (ещё раз напомним, что аудио-адаптер 3.5мм таковым не является), вы можете получить дополнительную степень защиты от взлома паролей. Впрочем, даже если вы подключали iPhone к компьютеру или переходнику в течение последних трёх дней, USB порт всё равно будет заблокирован спустя час после того, как вы в последний раз использовали устройство.

Более того, USB порт устройств в iOS 12 блокируется и тогда, когда iPhone затребует ввести код блокировки для активации датчика отпечатков или сканера лица, что в свою очередь происходит по достаточно сложному алгоритму.

В целом нововведения в iOS 12, безусловно, усиливают безопасность iPhone, не позволяя злоумышленнику провести масштабную атаку на код блокировки.

Итак, Apple пытается защитить пароль от взлома. Но что, если злоумышленник подсмотрел пароль блокировки или вынудил его сообщить? Даже в такой ситуации положение далеко от безвыходного.

Ограничения родительского контроля: дополнительный уровень защиты

Если iPhone уже попал в руки к злоумышленникам, которым стал известен код блокировки, делать что-либо помимо полного уничтожения данных через iCloud уже поздно. И даже блокировка не особо поможет: зная пароль блокировки телефона, злоумышленник сможет как минимум сбросить пароль на резервную копию, извлечь пароли от социальных сетей и почтовых сервисов. Частично защититься от такого сценария можно при помощи ограничений родительского контроля – Restrictions.

Изначально ограничения появились в iOS как средство родительского контроля, позволяющее заблокировать или ограничить определенные приложения и функции на iPhone, iPad или iPod touch ребёнка. Тем не менее, ограничения способны помочь и тогда, когда телефон украден злоумышленником. Подробно об ограничениях родительского контроля можно почитать в статье KB Использование родительского контроля на устройствах iPhone, iPad и iPod touch ребенка. Мы же воспользуемся ограничениями с целью дополнительно обезопасить iPhone, пароль блокировки которого скомпрометирован.

Ограничения на сброс пароля к резервной копии

Первое и самое главное: для того, чтобы ограничить возможность сброса пароля к локальной резервной копии iOS, достаточно просто включить ограничения как таковые, без каких-либо дополнительных настроек. Для этого достаточно открыть меню «Настройки» и выбрать «Основные» > «Ограничения». Затем нужно выбрать «Включить Ограничения» и задать PIN-код из 4 цифр. Разумеется, этот код должен отличаться от цифр пароля блокировки и не должен совпадать с годом рождения пользователя или цифрами телефонного номера. Этот код понадобится в исключительно редких случаях, когда пользователю потребуется изменить настройки или отключить ограничения, поэтому актуальным сценарием будет установка совершенно случайного кода, который будет храниться дома у пользователя в виде распечатки.

Что произойдёт при попытке сбросить пароль на резервную копию после включения ограничений через меню «Reset all settings»? Система всё так же запросит пароль блокировки устройства. На следующем же шаге потребуется ввести дополнительный 4-значный PIN-код ограничений. С учётом того, что подсмотреть код блокировки значительно проще, чем узнать исключительно редко используемый PIN ограничений, эта дополнительная мера безопасности вполне способна отвадить любопытных. Впрочем, много ли от неё пользы, если пароли из связки ключей можно просмотреть на самом устройстве?

Защита от доступа к паролям из связки ключей: отсутствует

К сожалению, ни одно из доступных «ограничений» не регламентирует доступ к сохранённым в связке ключей паролям. В связке ключей часто содержатся пароли к учётным записям Google, Apple, Microsoft, что позволит злоумышленнику сменить пароль к iCloud и, соответственно, отвязать от него iPhone даже не зная PIN-кода «ограничений». Вот так выглядит доступ к паролю от Apple ID – его можно просмотреть на устройстве даже при включенных ограничениях:

 

Как получить доступ? Несложно: Settings > Accounts & Passwords > App & Website Passwords. Система запросит отпечаток пальца (или идентификацию через Face ID):

Не подумайте, что это – тот самый дополнительный слой защиты. Несколько неудачных попыток, и вот уже на экране запрос на код блокировки iPhone:

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

К сожалению, мы не нашли способа ограничить доступ к паролям на устройствах без внешней политики безопасности. Единственное, что можно сделать – это убедиться, что пароль хотя бы от Apple ID / iCloud в связке ключей не присутствует. Рекомендуем это сделать, иначе всё описанное выше будет применимо к вашему iPhone в полной мере.

Ограничения на сброс iCloud Lock и изменение пароля Apple ID

Убедившись, что пароль от Apple ID и iCloud в вашей связке ключей не присутствует, можно переходить к следующему шагу: ограничить возможность отключения функции Find my iPhone и сброса пароля от Apple Account при помощи кода блокировки устройства. Для этого нужно установить ограничение на изменение настроек учётных записей:

После этого никто не сможет получить доступа к вашей учётной записи, не отключив предварительно данное ограничение:

К сожалению, по непонятной причине доступ к паролям из связки ключей остаётся открытым. С нашей точки зрения – досадная недоработка компании.

Как защититься от jailbreak?

В предыдущих статьях мы писали о том, как правильно установить jailbreak, чтобы получить полный доступ к информации. А что насчёт обратного? Можно ли как-то защитить свой телефон от установки на него jailbreak? Даже если для iOS 12 ещё не выпущен соответствующий jailbreak, шанс на то, что он появится спустя какое-то время весьма высок.

К сожалению, единственный способ защититься от jailbreak – это установить ограничение на установку приложений:

Почему «к сожалению»? Потому что в отличие от ограничений, которые мы уже рассмотрели, ограничение на установку приложений может доставить заметные неудобства в повседневном использовании устройства и рано или поздно будет отключено самим пользователем. Отдельного же ограничения на установку приложений не из App Store (подобного соответствующему режиму в Android) в устройствах под управлением iOS просто нет. Соответственно, для большинства пользователей мы не можем рекомендовать это ограничение.

Насколько безопасны ограничения?

Единственный вид пароля, который можно выбрать для ограничений – 4-значный PIN-код. Всего 10,000 комбинаций. В принципе, ничего сложного; любой робот для перебора паролей должен справиться в разумный срок. Или нет?

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

При скорости перебора 1 код в час пространство из 10,000 комбинаций можно перебрать примерно за 416 дней. Это довольно долго и, пожалуй, достаточно безопасно для большинства пользователей. Конечно, с безопасностью пароля к резервной копии не сравнить, но всё же – гораздо лучше, чем ничего. Тем не менее, сама возможность сбросить пароль на резервную копию даже через 416 дней уже не позволяет говорить о какой-то особой безопасности iOS в сравнении, например, с устройствами на BlackBerry 10, резервные копии которых шифровались двоичным ключом, который сохранялся на сервере компании BlackBerry или (если речь о корпоративных устройствах) на сервере компании – владельца устройства. Разумеется, о сбросе этого пароля на самом устройстве речи не шло.

Что делать при пересечении границы?

По примеру Соединённых Штатов, пограничники разных стран начинают всё активнее интересоваться содержимым персональных гаджетов. Этот процесс будет набирать обороты; так, в 2017 году пограничники США зарегистрировали порядка 30,000 требований разблокировать смартфоны путешественников. Коснуться может любого, неприкасаемых нет: A US-born NASA scientist was detained at the border until he unlocked his phone.

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

При пересечении границы имеет смысл попробовать защитить важные данные от автоматизированного анализа, задав сложный и длинный пароль на резервную копию (лучше, чтобы он был случайным; запоминать его не обязательно – сбросить можно в любой момент) и установив ограничение на сброс пароля от резервной копии. У пограничника нет 416 дней на перебор всех кодов ограничений, так что всё ограничится ручным досмотром того, до чего пограничник сможет дотянуться непосредственно с экрана устройства (ещё раз напомним о паролях из связки ключей, которые можно просматривать несмотря на ограничения). Сам же пароль на ограничения можно попросить установить члена семьи, записав пароль на клочке бумаги, который останется дома.

Заключение

Развитие iOS идёт зигзагами. Возможность сброса пароля на резервные копии при помощи одного лишь кода блокировки устройства разработчики Apple пытаются компенсировать усложнением условий, при которых возможен взлом пасскода. При этом остаётся открытым доступ к паролям из связки ключей. Всё, что остаётся обычным, не корпоративным пользователям – это воспользоваться «детскими» ограничениями, которые очевидно не предназначены для серьёзной защиты данных.

В то же время в iOS нет секретных «чёрных ходов» или очевидных проблем в шифровании; из штаб-квартиры Apple не выходят загрузчики с наивными уязвимостями (камень в огород компании OnePlus), не утекают цифровые подписи (камень в огород Microsoft и ключей от Secure Boot), не создаются и не получают распространения инженерные загрузчики (машем рукой Samsung). Те уязвимости, которые всё-таки есть, обнаруживаются трудом и усилиями профессиональных команд, а их использование – часто дело нетривиальное.


  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
НАШИ НОВОСТИ