- إنضم
- 12 ديسمبر 2017
- المشاركات
- 422
- مستوى التفاعل
- 451
- النقاط
- 193
Антикриминалистика. Как защитить смартфон от извлечения данных. Часть 1
Своеобразным триггером, вызвавшим появление этой статьи, стало огромное количество публикаций в самых разнообразных изданиях, в том числе достаточно технических. Все эти публикации без единого исключения уныло повторяют одну и ту же мантру: используйте стойкий код блокировки, включите датчик отпечатков, отключите Smart Lock, включите двухфакторную аутентификацию, обновитесь на последнюю доступную версию ОС… Не будем спорить, все эти вещи проделать необходимо — но совершенно, абсолютно недостаточно.
Ты можешь выбрать самый стойкий код блокировки, но если в твоем телефоне используется шифрование FDE и ты не включил режим Secure Startup, то код блокировки может быть хоть в сотню символов длиной — шифрование все равно будет использовать фразу default_password. Отключение Smart Lock — необходимый, но недостаточный шаг; уверен ли ты в безопасности используемой в твоем устройстве технологии сканирования лица (если телефон ей оборудован)? А знаешь ли ты, что, просто зайдя на твой компьютер, можно извлечь все твои облачные пароли, после чего попросту сбросить код блокировки смартфона? (Работает, к счастью, не для всех устройств, но знать о такой возможности нужно.) Наконец, нужно отдавать себе отчет, что если с твоего компьютера будет получен пароль от облака (Google, Apple или Samsung), то сам телефон будет никому не нужен: все необходимые данные эксперт извлечет из облака (и, скорее всего, их там будет даже больше, чем в самом телефоне).
В этой статье мы не будем давать набивших оскомину советов «включить код блокировки» или «обновиться до последней версии ОС» (разумеется, ты это уже сделал). Вместо этого мы постараемся дать понимание всего спектра возможностей «тяжелой артиллерии», которая может быть использована против владельца телефона правоохранительными органами и спецслужбами для извлечения данных.
Как известно, самые сложные для работы экспертов случаи — обесточенный телефон, обнаруженный у безмолвного тела. Именно в таких обстоятельствах, как правило, начинается поиск всевозможных уязвимостей в программном и аппаратном обеспечении. В обыденных ситуациях полиция придет домой к подозреваемому, проведет анализ компьютера и извлечет кеш паролей из почтовых клиентов и браузеров Chrome/Mozilla/Edge. Затем достаточно зайти в облако с найденным логином и паролем, после чего остальное тривиально. В ряде случаев на телефоне можно удаленно сбросить пароль блокировки (сегодня, к счастью, многие производители не предлагают такой возможности по умолчанию). Телефон можно подключить к «осьминогу» UFED, который скопирует раздел данных и расшифрует его через одну из известных разработчикам уязвимостей или с использованием «расшифровывающего загрузчика» (decrypting bootloader в терминах Cellebrite) независимо от длины твоего пароля и наличия установленных обновлений.
Прочитав эту статью, ты будешь более полно осознавать возможности защитить свои данные и риски, которые останутся даже тогда, когда ты все сделал правильно.
Как будут взламывать твой iPhone
Сложность взлома iPhone отличается в зависимости от ряда факторов. Первый фактор: установленная версия iOS (ты ведь не думаешь, что советы «обновиться на последнюю доступную версию» появились на ровном месте?), сложность кода блокировки и то, в каком состоянии находится устройство (о нем — ниже).
Сначала — о версиях iOS. Если у тебя до сих пор установлена любая версия iOS 11, у меня для тебя плохая новость: для этой ОС доступен как взлом кода блокировки методом прямого перебора, так и полное (и очень быстрое) извлечение информации через физический доступ. Сложность кода блокировки и состояние устройства (включено-выключено, активирован ли защитный режим USB restricted mode и так далее) повлияют на скорость перебора.
Как будут взламывать iPhone с iOS 11
Если телефон был выключен: скорость перебора паролей будет очень медленной (одна попытка в десять секунд). Если ты установишь код блокировки из шести цифр, то перебирать его будут вечность.
Если телефон был включен и ты хотя бы раз разблокировал его после включения: первые 300 000 паролей будут опробованы очень быстро; скорость перебора такова, что четырехзначный код блокировки может быть взломан в течение получаса в полностью автоматическом режиме. Вывод? Используй шестизначный пароль.
Если ты успел воспользоваться режимом SOS (зажав кнопку питания и кнопку громкости): телефон снова переходит в режим «медленного» перебора. Шестизначный код блокировки в этом случае отличная защита.
Наконец, в iOS 11.4.1 появился режим USB restricted mode, позволяющий защитить устройство от взлома путем перебора паролей. В течение часа после последнего разблокирования iOS отключит доступ к USB-порту, после чего перебор паролей станет невозможным. Для того чтобы защита сработала, нужно оставить переключатель USB Accessories в положении «выключено». Впрочем, в последнее время активно циркулируют слухи, что разработчикам криминалистических комплексов удалось или вот-вот удастся обойти и эту защиту. Вывод? Да обновись ты до iOS 12, наконец!
Как будут взламывать iPhone с iOS 12
Ситуация с iOS 12 довольно интересна. Apple удалось закрыть ряд уязвимостей, которые делали возможным перебор паролей на устройствах с iOS 11. Более того, защитный режим USB restricted mode был усовершенствован: теперь USB-порт (а точнее, возможность передачи данных через физический коннектор Lightning) отключается сразу же, как только ты заблокируешь экран устройства. Правда, только в тех случаях, если ты как минимум три дня не подключал телефон к компьютеру, проводной аудиосистеме или другим аксессуарам; если же подключал, то будет как раньше — через час. Кроме того, USB-порт теперь отключается и при вызове режима SOS (зажать кнопку питания и громкости).
С другой стороны, в iOS 12 присутствуют уязвимости, перекочевавшие в систему еще из 11-й версии ОС. В iOS 12 вплоть до версии 12.1.2 не были закрыты две важные уязвимости, позволяющие через эскалацию привилегий получить полный доступ к файловой системе без установки полноценного джейлбрейка. Соответственно, если в руки экспертов телефон с iOS 12.1.2 или более старой попадет в разблокированном состоянии, то данные из него улетят со свистом. В iOS 12.1.3 часть уязвимостей была закрыта (не все: GrayKey по-прежнему способен извлечь образ файловой системы), но полностью обезопасить устройства от известных на сегодняшний день эксплоитов смогла только iOS 12.1.4, которая вышла буквально на днях. Вывод? В совете «обновись до последней доступной версии прошивки» все-таки что-то есть!
Итак, как именно будут пытаться взломать твой iPhone с iOS 12?
Самый безопасный для тебя вариант — если в руки эксперта твой телефон попадет в выключенном состоянии. В этом случае начать перебор не удастся — по крайней мере до тех пор, пока разработчики не придумают, как обойти защитный режим USB (к слову, пока не придумали).
Если телефон был включен и разблокирован хотя бы раз после включения (но заблокирован на момент взлома), то сделать с ним что-то полезное тоже не получится. Да, можно попытаться подключить его к твоему компьютеру, чтобы создать резервную копию через iTunes; если не успел активироваться защитный режим USB и если ты хоть раз подключал свой iPhone к iTunes, то попытка может оказаться успешной. Как защититься? Установи длинный и сложный пароль на резервную копию.
Да, в iOS 12 (и в iOS 11) этот пароль можно сбросить — но только с самого iPhone и только если известен код блокировки. И даже тогда ты можешь дополнительно защитить пароль от сброса, установив пароль Screen Time.
Пароль Screen Time — не панацея. Вообще говоря, это «детская» защита, функция защиты от сброса пароля на резервную копию в ней вторична. Тем не менее обойти ее не получится даже перебором: iOS будет увеличивать задержки до тех пор, пока скорость перебора не упадет до одной попытки в час (начиная с десятой попытки).
Если забрали разблокированный телефон
В идеальном мире полиции пришлось бы проявить технические навыки и пользоваться блестящими устройствами, чтобы просто попытаться взломать твой смартфон. В большинстве же случаев полиция просто попытается извлечь из твоего смартфона максимум информации в рамках имеющихся полномочий за минимальное время. Уверенным голосом «попросить» разблокировать телефон, после чего унести разблокированный телефон в отдельную комнату — самый типичный случай для (не льсти себе) мелких правонарушителей. Давай посмотрим, что может сделать iOS для защиты твоих данных в этом случае.
Итак, вводная: iPhone разблокирован и передан сотруднику, но код блокировки ты не сообщал. (В скобках: и не сообщай, нет у тебя такой обязанности в случае обычного задержания.) Что будет происходить дальше?
Во-первых, сотрудник может просто вручную просмотреть интересующие его разделы в устройстве. Здесь и постинги в соцсетях (уверен, на тебя там ничего не найдут, но статья за лайки — она довольно гибкая), и переписка, и сообщения SMS/iMessage, и, разумеется, фотографии.
Будут извлечены данные приложения «Здоровье», из которых можно будет сделать выводы о том, что именно ты делал в тот или иной момент (в частности, будет видно — двигался ты или сидел на месте, а если двигался — то не бежал ли). Нам известен не один, не два и даже не десяток случаев, когда рутинное задержание вдруг превращалось в арест и предъявление обвинения по факту найденной в смартфоне информации.
Как защититься от анализа в этом режиме? Никак, только не передавать полиции разблокированное устройство. Не отдать телефон совсем ты не можешь, но вот отказаться его разблокировать — пока что еще твое право (исключения бывают, например при пересечении границы; мы про них писали). Здесь отметим, что даже на устройстве с разблокированным экраном без кода блокировки не удастся ни просмотреть пароли из «связки ключей», ни отключить Find My iPhone, ни сбросить пароль от резервной копии iTunes, если ты его установил, ни даже подключить телефон к компьютеру: для этого теперь тоже нужен код блокировки.
Во-вторых, телефон могут подключить к комплексу GrayKey или подобному (правда, «подобных» на самом деле нет, но мало ли? Вдруг китайские дубликаторы жестких дисков научатся взламывать iPhone?). В этом случае спасти может лишь свежая версия iOS: напомним, вплоть до iOS 12.1.3 включительно нет никакой проблемы с тем, чтобы извлечь из устройства образ файловой системы. В iOS 12.1.4 уязвимость была закрыта. Надолго ли? Пока неизвестно.
Наконец, из телефона могут попытаться извлечь данные в виде резервной копии. Для этого потребуется как минимум подключить телефон к компьютеру, для чего эксперту понадобится код блокировки экрана. Можно попытаться обойти этот момент, используя файл lockdown из твоего компьютера. Впрочем, если ты установишь пароль на резервную копию и защитишь его от сброса при помощи пароля Screen Time, ты можешь полностью обезопасить себя с этой стороны.
Вывод? Если ты разблокировал iPhone и на телефоне установлена последняя версия iOS (на сегодня это 12.1.4), сотрудник, скорее всего, будет вынужден ограничиться «ручным» анализом на экране самого телефона.
Как будут взламывать твой смартфон на Android
Как и в случае с iPhone, в полиции попытаются заставить тебя разблокировать устройство. Если им это удастся и ты передашь в руки полиции разблокированный телефон, расслабься: дальнейшее от тебя не зависит; ты выдал все, что было можно. В отличие от iOS, которая пытается хоть как-нибудь защитить тебя даже в таких ситуациях, с экрана разблокированного смартфона следователь получит:
Мне очень хотелось бы написать подробную статью о том, как и чем можно взломать заблокированный смартфон на Android, но, боюсь, это невозможно: на руках у пользователей тысячи разнообразных моделей, основанных на десятках чипсетов в сотнях вариаций. С учетом разнообразия прошивок, версий самого Android и доступности актуальных патчей безопасности (та самая проблема фрагментации Android) сложилась ситуация, в которой даже крупнейший производитель криминалистических продуктов не знает, с какими устройствами работает их комплекс. «Попробуйте подключить» — стандартный ответ на вопрос, поддерживает ли комплекс Х смартфон Y.
К примеру, простой вопрос: можно ли взломать код блокировки у конкретной модели смартфона, а главное — нужно ли это делать или можно обойтись и так? Многочисленные статьи по безопасности в один голос рекомендуют устанавливать стойкий код блокировки, умалчивая о том, что примерно для каждого второго смартфона это совершенно бесполезно. Как определить, имеет ли смысл заморачиваться со сложным кодом блокировки или нужно копать в другую сторону?
Ответ связан с алгоритмом шифрования, используемого в конкретном устройстве. Как ты помнишь, все смартфоны, вышедшие с завода с Android 6 и более поздними версиями, обязаны зашифровать пользовательские данные к моменту окончания начальной настройки. Однако шифрование шифрованию рознь. В большинстве старых устройств используется так называемое полнодисковое шифрование Full Disk Encryption (FDE). В режиме FDE данные на пользовательском разделе зашифрованы посредством device credentials — ключа шифрования, который генерируется на основе некоего аппаратного ключа и фразы default_password.
Да, именно так — default_password защищает все твои данные. И что же, все пропало? Любой желающий может взять и расшифровать информацию? Не совсем. Ключ шифрования генерируется внутри Trusted Execution Environment (TEE) в момент загрузки устройства; в качестве исходных данных участвует уникальный для каждого устройства ключ, который за пределы TEE не выходит. Если из телефона извлечь чип памяти и скопировать из него информацию, то расшифровать данные без ключа из TEE не удастся. Соответственно, для расшифровки информации потребуется не просто вытащить из телефона данные (например, через режим EDL), а еще и взломать TEE или подменить загрузчик. В принципе, такие «расшифровывающие загрузчики» (decrypting bootloader) существуют, например у Cellebrite для целого ряда моделей, а иногда и целых семейств моделей, объединенных общим чипсетом. Тем не менее для использования этой возможности понадобится специальный комплекс, который и извлечет данные.
Даже если в твоем телефоне используется устаревшая защита FDE, ты можешь надежно защитить свои данные, активировав режим Secure Startup. В этом режиме ключ шифрования будет перешифрован данными аппаратного ключа и твоего кода блокировки (вместо default_password). Недостаток у этого метода тоже есть: телефон просто не загрузится вплоть до момента ввода кода блокировки; если твой телефон случайно перезагрузится, то ты не сможешь даже ответить на звонок, пока телефон не загрузится до конца.
Этот недостаток полностью устранен в новой пофайловой схеме шифрования, получившей название File Based Encryption (FBE). Устройства, зашифрованные FBE, используют user credentials (код блокировки) для шифрования большей части информации, в том числе всех персональных данных. При этом исполняемые файлы приложений, а также некоторые базы данных, необходимые для загрузки устройства, будут зашифрованы посредством device credentials (то есть данных исключительно аппаратного ключа). Режима Secure Startup при использовании FBE нет за ненужностью.
Для расшифровки данных как устройств с FDE, использующих режим Secure Startup, так и устройств с FBE необходимо взломать код блокировки. Конкретные процедуры отличаются в зависимости от чипсета, но общий принцип один: подключиться к USB-порту и запустить процедуру перебора.
Разумеется, в телефонах есть встроенная защита от таких атак. Мы уже описывали Qualcomm TrustZone, в рамках которой работает Trusted Execution Environment (TEE). В ней могут запускаться только так называемые трастлеты (trustlets), своеобразные микроприложения, подписанные ключом, который проверяется самой TEE. Именно здесь реализована проверка пасскода (через сервис GateKeeper). GateKeeper, в свою очередь, на аппаратном уровне ограничивает скорость перебора паролей; быстро перебрать даже код из четырех цифр не получится, а шесть цифр можно перебирать до бесконечности. Именно GateKeeper не даст взломать телефон, когда включен Secure Startup или если используется шифрование FBE.
Если есть защита, то будут и попытки ее взломать. В частности, для процессоров Qualcomm до Snapdragon 821 включительно существует эксплоит, позволяющий запустить на выполнение собственный трастлет и обойти ограничение на скорость перебора. В реальности же разработчики криминалистических комплексов относятся к этой уязвимости как к зубной боли: с одной стороны, уязвимость существует, она мозолит глаза; заказчики ее хотят. С другой — воспользоваться ей очень трудно: для каждого устройства нужно писать свой код, подбирать смещения, тестировать… Если бы речь шла об iPhone, количество актуальных чипсетов которого можно пересчитать по пальцам одной руки, — поддержка уязвимости такого уровня была бы реализована еще вчера. Но сотни модификаций чипсетов, использующихся в смартфонах с Android (причем каждая модель, для которой нужно запускать процесс разработки, попадет в руки полиции в единичных экземплярах), делают такую разработку экономически нецелесообразной.
Для флагманских смартфонов на процессорах Qualcomm возможность вытащить данные через уязвимости выглядит приблизительно так:
Для начала проверь, какая система шифрования используется на твоем устройстве. Для этого выполни через ADB следующую команду:
$ adb shell getprop ro.crypto.type
Если команда вернула слово file, то твой смартфон использует шифрование FBE.
Если используется пофайловое шифрование FBE:
Источник: xakep.ru
Своеобразным триггером, вызвавшим появление этой статьи, стало огромное количество публикаций в самых разнообразных изданиях, в том числе достаточно технических. Все эти публикации без единого исключения уныло повторяют одну и ту же мантру: используйте стойкий код блокировки, включите датчик отпечатков, отключите Smart Lock, включите двухфакторную аутентификацию, обновитесь на последнюю доступную версию ОС… Не будем спорить, все эти вещи проделать необходимо — но совершенно, абсолютно недостаточно.
Ты можешь выбрать самый стойкий код блокировки, но если в твоем телефоне используется шифрование FDE и ты не включил режим Secure Startup, то код блокировки может быть хоть в сотню символов длиной — шифрование все равно будет использовать фразу default_password. Отключение Smart Lock — необходимый, но недостаточный шаг; уверен ли ты в безопасности используемой в твоем устройстве технологии сканирования лица (если телефон ей оборудован)? А знаешь ли ты, что, просто зайдя на твой компьютер, можно извлечь все твои облачные пароли, после чего попросту сбросить код блокировки смартфона? (Работает, к счастью, не для всех устройств, но знать о такой возможности нужно.) Наконец, нужно отдавать себе отчет, что если с твоего компьютера будет получен пароль от облака (Google, Apple или Samsung), то сам телефон будет никому не нужен: все необходимые данные эксперт извлечет из облака (и, скорее всего, их там будет даже больше, чем в самом телефоне).
В этой статье мы не будем давать набивших оскомину советов «включить код блокировки» или «обновиться до последней версии ОС» (разумеется, ты это уже сделал). Вместо этого мы постараемся дать понимание всего спектра возможностей «тяжелой артиллерии», которая может быть использована против владельца телефона правоохранительными органами и спецслужбами для извлечения данных.
Как известно, самые сложные для работы экспертов случаи — обесточенный телефон, обнаруженный у безмолвного тела. Именно в таких обстоятельствах, как правило, начинается поиск всевозможных уязвимостей в программном и аппаратном обеспечении. В обыденных ситуациях полиция придет домой к подозреваемому, проведет анализ компьютера и извлечет кеш паролей из почтовых клиентов и браузеров Chrome/Mozilla/Edge. Затем достаточно зайти в облако с найденным логином и паролем, после чего остальное тривиально. В ряде случаев на телефоне можно удаленно сбросить пароль блокировки (сегодня, к счастью, многие производители не предлагают такой возможности по умолчанию). Телефон можно подключить к «осьминогу» UFED, который скопирует раздел данных и расшифрует его через одну из известных разработчикам уязвимостей или с использованием «расшифровывающего загрузчика» (decrypting bootloader в терминах Cellebrite) независимо от длины твоего пароля и наличия установленных обновлений.
Прочитав эту статью, ты будешь более полно осознавать возможности защитить свои данные и риски, которые останутся даже тогда, когда ты все сделал правильно.
Как будут взламывать твой iPhone
Сложность взлома iPhone отличается в зависимости от ряда факторов. Первый фактор: установленная версия iOS (ты ведь не думаешь, что советы «обновиться на последнюю доступную версию» появились на ровном месте?), сложность кода блокировки и то, в каком состоянии находится устройство (о нем — ниже).
Сначала — о версиях iOS. Если у тебя до сих пор установлена любая версия iOS 11, у меня для тебя плохая новость: для этой ОС доступен как взлом кода блокировки методом прямого перебора, так и полное (и очень быстрое) извлечение информации через физический доступ. Сложность кода блокировки и состояние устройства (включено-выключено, активирован ли защитный режим USB restricted mode и так далее) повлияют на скорость перебора.
Как будут взламывать iPhone с iOS 11
Если телефон был выключен: скорость перебора паролей будет очень медленной (одна попытка в десять секунд). Если ты установишь код блокировки из шести цифр, то перебирать его будут вечность.
Если телефон был включен и ты хотя бы раз разблокировал его после включения: первые 300 000 паролей будут опробованы очень быстро; скорость перебора такова, что четырехзначный код блокировки может быть взломан в течение получаса в полностью автоматическом режиме. Вывод? Используй шестизначный пароль.
Если ты успел воспользоваться режимом SOS (зажав кнопку питания и кнопку громкости): телефон снова переходит в режим «медленного» перебора. Шестизначный код блокировки в этом случае отличная защита.
Наконец, в iOS 11.4.1 появился режим USB restricted mode, позволяющий защитить устройство от взлома путем перебора паролей. В течение часа после последнего разблокирования iOS отключит доступ к USB-порту, после чего перебор паролей станет невозможным. Для того чтобы защита сработала, нужно оставить переключатель USB Accessories в положении «выключено». Впрочем, в последнее время активно циркулируют слухи, что разработчикам криминалистических комплексов удалось или вот-вот удастся обойти и эту защиту. Вывод? Да обновись ты до iOS 12, наконец!
Как будут взламывать iPhone с iOS 12
Ситуация с iOS 12 довольно интересна. Apple удалось закрыть ряд уязвимостей, которые делали возможным перебор паролей на устройствах с iOS 11. Более того, защитный режим USB restricted mode был усовершенствован: теперь USB-порт (а точнее, возможность передачи данных через физический коннектор Lightning) отключается сразу же, как только ты заблокируешь экран устройства. Правда, только в тех случаях, если ты как минимум три дня не подключал телефон к компьютеру, проводной аудиосистеме или другим аксессуарам; если же подключал, то будет как раньше — через час. Кроме того, USB-порт теперь отключается и при вызове режима SOS (зажать кнопку питания и громкости).
С другой стороны, в iOS 12 присутствуют уязвимости, перекочевавшие в систему еще из 11-й версии ОС. В iOS 12 вплоть до версии 12.1.2 не были закрыты две важные уязвимости, позволяющие через эскалацию привилегий получить полный доступ к файловой системе без установки полноценного джейлбрейка. Соответственно, если в руки экспертов телефон с iOS 12.1.2 или более старой попадет в разблокированном состоянии, то данные из него улетят со свистом. В iOS 12.1.3 часть уязвимостей была закрыта (не все: GrayKey по-прежнему способен извлечь образ файловой системы), но полностью обезопасить устройства от известных на сегодняшний день эксплоитов смогла только iOS 12.1.4, которая вышла буквально на днях. Вывод? В совете «обновись до последней доступной версии прошивки» все-таки что-то есть!
Итак, как именно будут пытаться взломать твой iPhone с iOS 12?
Самый безопасный для тебя вариант — если в руки эксперта твой телефон попадет в выключенном состоянии. В этом случае начать перебор не удастся — по крайней мере до тех пор, пока разработчики не придумают, как обойти защитный режим USB (к слову, пока не придумали).
Если телефон был включен и разблокирован хотя бы раз после включения (но заблокирован на момент взлома), то сделать с ним что-то полезное тоже не получится. Да, можно попытаться подключить его к твоему компьютеру, чтобы создать резервную копию через iTunes; если не успел активироваться защитный режим USB и если ты хоть раз подключал свой iPhone к iTunes, то попытка может оказаться успешной. Как защититься? Установи длинный и сложный пароль на резервную копию.
Да, в iOS 12 (и в iOS 11) этот пароль можно сбросить — но только с самого iPhone и только если известен код блокировки. И даже тогда ты можешь дополнительно защитить пароль от сброса, установив пароль Screen Time.
Пароль Screen Time — не панацея. Вообще говоря, это «детская» защита, функция защиты от сброса пароля на резервную копию в ней вторична. Тем не менее обойти ее не получится даже перебором: iOS будет увеличивать задержки до тех пор, пока скорость перебора не упадет до одной попытки в час (начиная с десятой попытки).
Если забрали разблокированный телефон
В идеальном мире полиции пришлось бы проявить технические навыки и пользоваться блестящими устройствами, чтобы просто попытаться взломать твой смартфон. В большинстве же случаев полиция просто попытается извлечь из твоего смартфона максимум информации в рамках имеющихся полномочий за минимальное время. Уверенным голосом «попросить» разблокировать телефон, после чего унести разблокированный телефон в отдельную комнату — самый типичный случай для (не льсти себе) мелких правонарушителей. Давай посмотрим, что может сделать iOS для защиты твоих данных в этом случае.
Итак, вводная: iPhone разблокирован и передан сотруднику, но код блокировки ты не сообщал. (В скобках: и не сообщай, нет у тебя такой обязанности в случае обычного задержания.) Что будет происходить дальше?
Во-первых, сотрудник может просто вручную просмотреть интересующие его разделы в устройстве. Здесь и постинги в соцсетях (уверен, на тебя там ничего не найдут, но статья за лайки — она довольно гибкая), и переписка, и сообщения SMS/iMessage, и, разумеется, фотографии.
Будут извлечены данные приложения «Здоровье», из которых можно будет сделать выводы о том, что именно ты делал в тот или иной момент (в частности, будет видно — двигался ты или сидел на месте, а если двигался — то не бежал ли). Нам известен не один, не два и даже не десяток случаев, когда рутинное задержание вдруг превращалось в арест и предъявление обвинения по факту найденной в смартфоне информации.
Как защититься от анализа в этом режиме? Никак, только не передавать полиции разблокированное устройство. Не отдать телефон совсем ты не можешь, но вот отказаться его разблокировать — пока что еще твое право (исключения бывают, например при пересечении границы; мы про них писали). Здесь отметим, что даже на устройстве с разблокированным экраном без кода блокировки не удастся ни просмотреть пароли из «связки ключей», ни отключить Find My iPhone, ни сбросить пароль от резервной копии iTunes, если ты его установил, ни даже подключить телефон к компьютеру: для этого теперь тоже нужен код блокировки.
Во-вторых, телефон могут подключить к комплексу GrayKey или подобному (правда, «подобных» на самом деле нет, но мало ли? Вдруг китайские дубликаторы жестких дисков научатся взламывать iPhone?). В этом случае спасти может лишь свежая версия iOS: напомним, вплоть до iOS 12.1.3 включительно нет никакой проблемы с тем, чтобы извлечь из устройства образ файловой системы. В iOS 12.1.4 уязвимость была закрыта. Надолго ли? Пока неизвестно.
Наконец, из телефона могут попытаться извлечь данные в виде резервной копии. Для этого потребуется как минимум подключить телефон к компьютеру, для чего эксперту понадобится код блокировки экрана. Можно попытаться обойти этот момент, используя файл lockdown из твоего компьютера. Впрочем, если ты установишь пароль на резервную копию и защитишь его от сброса при помощи пароля Screen Time, ты можешь полностью обезопасить себя с этой стороны.
Вывод? Если ты разблокировал iPhone и на телефоне установлена последняя версия iOS (на сегодня это 12.1.4), сотрудник, скорее всего, будет вынужден ограничиться «ручным» анализом на экране самого телефона.
Как будут взламывать твой смартфон на Android
Как и в случае с iPhone, в полиции попытаются заставить тебя разблокировать устройство. Если им это удастся и ты передашь в руки полиции разблокированный телефон, расслабься: дальнейшее от тебя не зависит; ты выдал все, что было можно. В отличие от iOS, которая пытается хоть как-нибудь защитить тебя даже в таких ситуациях, с экрана разблокированного смартфона следователь получит:
- разумеется, доступ ко всему содержимому карты памяти (виртуальной и реальной), включая фото и видео;
- почту, переписку в мессенджерах, тексты SMS;
- полный список паролей, сохраненных в Chrome (частенько там можно найти и пароль от твоего Google Account — кстати, проверь, так ли это);
- подробную историю местоположения. Очень подробную;
- данные Google Fit. Их можно экспортировать;
- звонки, контакты.
Мне очень хотелось бы написать подробную статью о том, как и чем можно взломать заблокированный смартфон на Android, но, боюсь, это невозможно: на руках у пользователей тысячи разнообразных моделей, основанных на десятках чипсетов в сотнях вариаций. С учетом разнообразия прошивок, версий самого Android и доступности актуальных патчей безопасности (та самая проблема фрагментации Android) сложилась ситуация, в которой даже крупнейший производитель криминалистических продуктов не знает, с какими устройствами работает их комплекс. «Попробуйте подключить» — стандартный ответ на вопрос, поддерживает ли комплекс Х смартфон Y.
К примеру, простой вопрос: можно ли взломать код блокировки у конкретной модели смартфона, а главное — нужно ли это делать или можно обойтись и так? Многочисленные статьи по безопасности в один голос рекомендуют устанавливать стойкий код блокировки, умалчивая о том, что примерно для каждого второго смартфона это совершенно бесполезно. Как определить, имеет ли смысл заморачиваться со сложным кодом блокировки или нужно копать в другую сторону?
Ответ связан с алгоритмом шифрования, используемого в конкретном устройстве. Как ты помнишь, все смартфоны, вышедшие с завода с Android 6 и более поздними версиями, обязаны зашифровать пользовательские данные к моменту окончания начальной настройки. Однако шифрование шифрованию рознь. В большинстве старых устройств используется так называемое полнодисковое шифрование Full Disk Encryption (FDE). В режиме FDE данные на пользовательском разделе зашифрованы посредством device credentials — ключа шифрования, который генерируется на основе некоего аппаратного ключа и фразы default_password.
Да, именно так — default_password защищает все твои данные. И что же, все пропало? Любой желающий может взять и расшифровать информацию? Не совсем. Ключ шифрования генерируется внутри Trusted Execution Environment (TEE) в момент загрузки устройства; в качестве исходных данных участвует уникальный для каждого устройства ключ, который за пределы TEE не выходит. Если из телефона извлечь чип памяти и скопировать из него информацию, то расшифровать данные без ключа из TEE не удастся. Соответственно, для расшифровки информации потребуется не просто вытащить из телефона данные (например, через режим EDL), а еще и взломать TEE или подменить загрузчик. В принципе, такие «расшифровывающие загрузчики» (decrypting bootloader) существуют, например у Cellebrite для целого ряда моделей, а иногда и целых семейств моделей, объединенных общим чипсетом. Тем не менее для использования этой возможности понадобится специальный комплекс, который и извлечет данные.
Даже если в твоем телефоне используется устаревшая защита FDE, ты можешь надежно защитить свои данные, активировав режим Secure Startup. В этом режиме ключ шифрования будет перешифрован данными аппаратного ключа и твоего кода блокировки (вместо default_password). Недостаток у этого метода тоже есть: телефон просто не загрузится вплоть до момента ввода кода блокировки; если твой телефон случайно перезагрузится, то ты не сможешь даже ответить на звонок, пока телефон не загрузится до конца.
Этот недостаток полностью устранен в новой пофайловой схеме шифрования, получившей название File Based Encryption (FBE). Устройства, зашифрованные FBE, используют user credentials (код блокировки) для шифрования большей части информации, в том числе всех персональных данных. При этом исполняемые файлы приложений, а также некоторые базы данных, необходимые для загрузки устройства, будут зашифрованы посредством device credentials (то есть данных исключительно аппаратного ключа). Режима Secure Startup при использовании FBE нет за ненужностью.
Для расшифровки данных как устройств с FDE, использующих режим Secure Startup, так и устройств с FBE необходимо взломать код блокировки. Конкретные процедуры отличаются в зависимости от чипсета, но общий принцип один: подключиться к USB-порту и запустить процедуру перебора.
Разумеется, в телефонах есть встроенная защита от таких атак. Мы уже описывали Qualcomm TrustZone, в рамках которой работает Trusted Execution Environment (TEE). В ней могут запускаться только так называемые трастлеты (trustlets), своеобразные микроприложения, подписанные ключом, который проверяется самой TEE. Именно здесь реализована проверка пасскода (через сервис GateKeeper). GateKeeper, в свою очередь, на аппаратном уровне ограничивает скорость перебора паролей; быстро перебрать даже код из четырех цифр не получится, а шесть цифр можно перебирать до бесконечности. Именно GateKeeper не даст взломать телефон, когда включен Secure Startup или если используется шифрование FBE.
Если есть защита, то будут и попытки ее взломать. В частности, для процессоров Qualcomm до Snapdragon 821 включительно существует эксплоит, позволяющий запустить на выполнение собственный трастлет и обойти ограничение на скорость перебора. В реальности же разработчики криминалистических комплексов относятся к этой уязвимости как к зубной боли: с одной стороны, уязвимость существует, она мозолит глаза; заказчики ее хотят. С другой — воспользоваться ей очень трудно: для каждого устройства нужно писать свой код, подбирать смещения, тестировать… Если бы речь шла об iPhone, количество актуальных чипсетов которого можно пересчитать по пальцам одной руки, — поддержка уязвимости такого уровня была бы реализована еще вчера. Но сотни модификаций чипсетов, использующихся в смартфонах с Android (причем каждая модель, для которой нужно запускать процесс разработки, попадет в руки полиции в единичных экземплярах), делают такую разработку экономически нецелесообразной.
Для флагманских смартфонов на процессорах Qualcomm возможность вытащить данные через уязвимости выглядит приблизительно так:
- для старых устройств (до Snapdragon 821 включительно) с эксплоитами иногда можно взломать пасскод, если не установлен Secure Startup (способов обнаружено множество);
- для старых устройств с включенным Secure Startup либо с шифрованием FBE скорость перебора ограничена GateKeeper. Атака на «холодное» устройство (после перезагрузки или включения) практически не реализуется за исключением единичных популярных моделей (проблема «неуловимого Джо»);
- для новых устройств (со Snapdragon 835 и новее) недоступны эксплоиты EDL, недоступен эксплоит TEE и даже в редких случаях, когда используется шифрование FDE, расшифровать содержимое раздела данных довольно непросто (но в отдельных случаях можно, эксплоиты существуют);
- наконец, для новых устройств (SD835 и новее), использующих шифрование FBE, никакие эксплоиты не работают: ключ шифрования зависит от пароля, а перебор очень медленный (GateKeeper).
Для начала проверь, какая система шифрования используется на твоем устройстве. Для этого выполни через ADB следующую команду:
$ adb shell getprop ro.crypto.type
Если команда вернула слово file, то твой смартфон использует шифрование FBE.
Если используется пофайловое шифрование FBE:
- установи код блокировки длиной не менее шести цифр (если позволяет устройство);
- отключи отладочный режим USB Debugging.
- зайди в настройки и удали текущий код блокировки;
- создай новый код блокировки. Система запросит, хочешь ли ты включить режим безопасной загрузки. Подтверди запрос;
- не забудь отключить отладочный режим USB Debugging.
Источник: xakep.ru
Original message
Антикриминалистика. Как защитить смартфон от извлечения данных. Часть 1
Своеобразным триггером, вызвавшим появление этой статьи, стало огромное количество публикаций в самых разнообразных изданиях, в том числе достаточно технических. Все эти публикации без единого исключения уныло повторяют одну и ту же мантру: используйте стойкий код блокировки, включите датчик отпечатков, отключите Smart Lock, включите двухфакторную аутентификацию, обновитесь на последнюю доступную версию ОС… Не будем спорить, все эти вещи проделать необходимо — но совершенно, абсолютно недостаточно.
Ты можешь выбрать самый стойкий код блокировки, но если в твоем телефоне используется шифрование FDE и ты не включил режим Secure Startup, то код блокировки может быть хоть в сотню символов длиной — шифрование все равно будет использовать фразу default_password. Отключение Smart Lock — необходимый, но недостаточный шаг; уверен ли ты в безопасности используемой в твоем устройстве технологии сканирования лица (если телефон ей оборудован)? А знаешь ли ты, что, просто зайдя на твой компьютер, можно извлечь все твои облачные пароли, после чего попросту сбросить код блокировки смартфона? (Работает, к счастью, не для всех устройств, но знать о такой возможности нужно.) Наконец, нужно отдавать себе отчет, что если с твоего компьютера будет получен пароль от облака (Google, Apple или Samsung), то сам телефон будет никому не нужен: все необходимые данные эксперт извлечет из облака (и, скорее всего, их там будет даже больше, чем в самом телефоне).
В этой статье мы не будем давать набивших оскомину советов «включить код блокировки» или «обновиться до последней версии ОС» (разумеется, ты это уже сделал). Вместо этого мы постараемся дать понимание всего спектра возможностей «тяжелой артиллерии», которая может быть использована против владельца телефона правоохранительными органами и спецслужбами для извлечения данных.
Как известно, самые сложные для работы экспертов случаи — обесточенный телефон, обнаруженный у безмолвного тела. Именно в таких обстоятельствах, как правило, начинается поиск всевозможных уязвимостей в программном и аппаратном обеспечении. В обыденных ситуациях полиция придет домой к подозреваемому, проведет анализ компьютера и извлечет кеш паролей из почтовых клиентов и браузеров Chrome/Mozilla/Edge. Затем достаточно зайти в облако с найденным логином и паролем, после чего остальное тривиально. В ряде случаев на телефоне можно удаленно сбросить пароль блокировки (сегодня, к счастью, многие производители не предлагают такой возможности по умолчанию). Телефон можно подключить к «осьминогу» UFED, который скопирует раздел данных и расшифрует его через одну из известных разработчикам уязвимостей или с использованием «расшифровывающего загрузчика» (decrypting bootloader в терминах Cellebrite) независимо от длины твоего пароля и наличия установленных обновлений.
Прочитав эту статью, ты будешь более полно осознавать возможности защитить свои данные и риски, которые останутся даже тогда, когда ты все сделал правильно.
Как будут взламывать твой iPhone
Сложность взлома iPhone отличается в зависимости от ряда факторов. Первый фактор: установленная версия iOS (ты ведь не думаешь, что советы «обновиться на последнюю доступную версию» появились на ровном месте?), сложность кода блокировки и то, в каком состоянии находится устройство (о нем — ниже).
Сначала — о версиях iOS. Если у тебя до сих пор установлена любая версия iOS 11, у меня для тебя плохая новость: для этой ОС доступен как взлом кода блокировки методом прямого перебора, так и полное (и очень быстрое) извлечение информации через физический доступ. Сложность кода блокировки и состояние устройства (включено-выключено, активирован ли защитный режим USB restricted mode и так далее) повлияют на скорость перебора.
Как будут взламывать iPhone с iOS 11
Если телефон был выключен: скорость перебора паролей будет очень медленной (одна попытка в десять секунд). Если ты установишь код блокировки из шести цифр, то перебирать его будут вечность.
Если телефон был включен и ты хотя бы раз разблокировал его после включения: первые 300 000 паролей будут опробованы очень быстро; скорость перебора такова, что четырехзначный код блокировки может быть взломан в течение получаса в полностью автоматическом режиме. Вывод? Используй шестизначный пароль.
Если ты успел воспользоваться режимом SOS (зажав кнопку питания и кнопку громкости): телефон снова переходит в режим «медленного» перебора. Шестизначный код блокировки в этом случае отличная защита.
Наконец, в iOS 11.4.1 появился режим USB restricted mode, позволяющий защитить устройство от взлома путем перебора паролей. В течение часа после последнего разблокирования iOS отключит доступ к USB-порту, после чего перебор паролей станет невозможным. Для того чтобы защита сработала, нужно оставить переключатель USB Accessories в положении «выключено». Впрочем, в последнее время активно циркулируют слухи, что разработчикам криминалистических комплексов удалось или вот-вот удастся обойти и эту защиту. Вывод? Да обновись ты до iOS 12, наконец!
Как будут взламывать iPhone с iOS 12
Ситуация с iOS 12 довольно интересна. Apple удалось закрыть ряд уязвимостей, которые делали возможным перебор паролей на устройствах с iOS 11. Более того, защитный режим USB restricted mode был усовершенствован: теперь USB-порт (а точнее, возможность передачи данных через физический коннектор Lightning) отключается сразу же, как только ты заблокируешь экран устройства. Правда, только в тех случаях, если ты как минимум три дня не подключал телефон к компьютеру, проводной аудиосистеме или другим аксессуарам; если же подключал, то будет как раньше — через час. Кроме того, USB-порт теперь отключается и при вызове режима SOS (зажать кнопку питания и громкости).
С другой стороны, в iOS 12 присутствуют уязвимости, перекочевавшие в систему еще из 11-й версии ОС. В iOS 12 вплоть до версии 12.1.2 не были закрыты две важные уязвимости, позволяющие через эскалацию привилегий получить полный доступ к файловой системе без установки полноценного джейлбрейка. Соответственно, если в руки экспертов телефон с iOS 12.1.2 или более старой попадет в разблокированном состоянии, то данные из него улетят со свистом. В iOS 12.1.3 часть уязвимостей была закрыта (не все: GrayKey по-прежнему способен извлечь образ файловой системы), но полностью обезопасить устройства от известных на сегодняшний день эксплоитов смогла только iOS 12.1.4, которая вышла буквально на днях. Вывод? В совете «обновись до последней доступной версии прошивки» все-таки что-то есть!
Итак, как именно будут пытаться взломать твой iPhone с iOS 12?
Самый безопасный для тебя вариант — если в руки эксперта твой телефон попадет в выключенном состоянии. В этом случае начать перебор не удастся — по крайней мере до тех пор, пока разработчики не придумают, как обойти защитный режим USB (к слову, пока не придумали).
Если телефон был включен и разблокирован хотя бы раз после включения (но заблокирован на момент взлома), то сделать с ним что-то полезное тоже не получится. Да, можно попытаться подключить его к твоему компьютеру, чтобы создать резервную копию через iTunes; если не успел активироваться защитный режим USB и если ты хоть раз подключал свой iPhone к iTunes, то попытка может оказаться успешной. Как защититься? Установи длинный и сложный пароль на резервную копию.
Да, в iOS 12 (и в iOS 11) этот пароль можно сбросить — но только с самого iPhone и только если известен код блокировки. И даже тогда ты можешь дополнительно защитить пароль от сброса, установив пароль Screen Time.
Пароль Screen Time — не панацея. Вообще говоря, это «детская» защита, функция защиты от сброса пароля на резервную копию в ней вторична. Тем не менее обойти ее не получится даже перебором: iOS будет увеличивать задержки до тех пор, пока скорость перебора не упадет до одной попытки в час (начиная с десятой попытки).
Если забрали разблокированный телефон
В идеальном мире полиции пришлось бы проявить технические навыки и пользоваться блестящими устройствами, чтобы просто попытаться взломать твой смартфон. В большинстве же случаев полиция просто попытается извлечь из твоего смартфона максимум информации в рамках имеющихся полномочий за минимальное время. Уверенным голосом «попросить» разблокировать телефон, после чего унести разблокированный телефон в отдельную комнату — самый типичный случай для (не льсти себе) мелких правонарушителей. Давай посмотрим, что может сделать iOS для защиты твоих данных в этом случае.
Итак, вводная: iPhone разблокирован и передан сотруднику, но код блокировки ты не сообщал. (В скобках: и не сообщай, нет у тебя такой обязанности в случае обычного задержания.) Что будет происходить дальше?
Во-первых, сотрудник может просто вручную просмотреть интересующие его разделы в устройстве. Здесь и постинги в соцсетях (уверен, на тебя там ничего не найдут, но статья за лайки — она довольно гибкая), и переписка, и сообщения SMS/iMessage, и, разумеется, фотографии.
Будут извлечены данные приложения «Здоровье», из которых можно будет сделать выводы о том, что именно ты делал в тот или иной момент (в частности, будет видно — двигался ты или сидел на месте, а если двигался — то не бежал ли). Нам известен не один, не два и даже не десяток случаев, когда рутинное задержание вдруг превращалось в арест и предъявление обвинения по факту найденной в смартфоне информации.
Как защититься от анализа в этом режиме? Никак, только не передавать полиции разблокированное устройство. Не отдать телефон совсем ты не можешь, но вот отказаться его разблокировать — пока что еще твое право (исключения бывают, например при пересечении границы; мы про них писали). Здесь отметим, что даже на устройстве с разблокированным экраном без кода блокировки не удастся ни просмотреть пароли из «связки ключей», ни отключить Find My iPhone, ни сбросить пароль от резервной копии iTunes, если ты его установил, ни даже подключить телефон к компьютеру: для этого теперь тоже нужен код блокировки.
Во-вторых, телефон могут подключить к комплексу GrayKey или подобному (правда, «подобных» на самом деле нет, но мало ли? Вдруг китайские дубликаторы жестких дисков научатся взламывать iPhone?). В этом случае спасти может лишь свежая версия iOS: напомним, вплоть до iOS 12.1.3 включительно нет никакой проблемы с тем, чтобы извлечь из устройства образ файловой системы. В iOS 12.1.4 уязвимость была закрыта. Надолго ли? Пока неизвестно.
Наконец, из телефона могут попытаться извлечь данные в виде резервной копии. Для этого потребуется как минимум подключить телефон к компьютеру, для чего эксперту понадобится код блокировки экрана. Можно попытаться обойти этот момент, используя файл lockdown из твоего компьютера. Впрочем, если ты установишь пароль на резервную копию и защитишь его от сброса при помощи пароля Screen Time, ты можешь полностью обезопасить себя с этой стороны.
Вывод? Если ты разблокировал iPhone и на телефоне установлена последняя версия iOS (на сегодня это 12.1.4), сотрудник, скорее всего, будет вынужден ограничиться «ручным» анализом на экране самого телефона.
Как будут взламывать твой смартфон на Android
Как и в случае с iPhone, в полиции попытаются заставить тебя разблокировать устройство. Если им это удастся и ты передашь в руки полиции разблокированный телефон, расслабься: дальнейшее от тебя не зависит; ты выдал все, что было можно. В отличие от iOS, которая пытается хоть как-нибудь защитить тебя даже в таких ситуациях, с экрана разблокированного смартфона следователь получит:
Мне очень хотелось бы написать подробную статью о том, как и чем можно взломать заблокированный смартфон на Android, но, боюсь, это невозможно: на руках у пользователей тысячи разнообразных моделей, основанных на десятках чипсетов в сотнях вариаций. С учетом разнообразия прошивок, версий самого Android и доступности актуальных патчей безопасности (та самая проблема фрагментации Android) сложилась ситуация, в которой даже крупнейший производитель криминалистических продуктов не знает, с какими устройствами работает их комплекс. «Попробуйте подключить» — стандартный ответ на вопрос, поддерживает ли комплекс Х смартфон Y.
К примеру, простой вопрос: можно ли взломать код блокировки у конкретной модели смартфона, а главное — нужно ли это делать или можно обойтись и так? Многочисленные статьи по безопасности в один голос рекомендуют устанавливать стойкий код блокировки, умалчивая о том, что примерно для каждого второго смартфона это совершенно бесполезно. Как определить, имеет ли смысл заморачиваться со сложным кодом блокировки или нужно копать в другую сторону?
Ответ связан с алгоритмом шифрования, используемого в конкретном устройстве. Как ты помнишь, все смартфоны, вышедшие с завода с Android 6 и более поздними версиями, обязаны зашифровать пользовательские данные к моменту окончания начальной настройки. Однако шифрование шифрованию рознь. В большинстве старых устройств используется так называемое полнодисковое шифрование Full Disk Encryption (FDE). В режиме FDE данные на пользовательском разделе зашифрованы посредством device credentials — ключа шифрования, который генерируется на основе некоего аппаратного ключа и фразы default_password.
Да, именно так — default_password защищает все твои данные. И что же, все пропало? Любой желающий может взять и расшифровать информацию? Не совсем. Ключ шифрования генерируется внутри Trusted Execution Environment (TEE) в момент загрузки устройства; в качестве исходных данных участвует уникальный для каждого устройства ключ, который за пределы TEE не выходит. Если из телефона извлечь чип памяти и скопировать из него информацию, то расшифровать данные без ключа из TEE не удастся. Соответственно, для расшифровки информации потребуется не просто вытащить из телефона данные (например, через режим EDL), а еще и взломать TEE или подменить загрузчик. В принципе, такие «расшифровывающие загрузчики» (decrypting bootloader) существуют, например у Cellebrite для целого ряда моделей, а иногда и целых семейств моделей, объединенных общим чипсетом. Тем не менее для использования этой возможности понадобится специальный комплекс, который и извлечет данные.
Даже если в твоем телефоне используется устаревшая защита FDE, ты можешь надежно защитить свои данные, активировав режим Secure Startup. В этом режиме ключ шифрования будет перешифрован данными аппаратного ключа и твоего кода блокировки (вместо default_password). Недостаток у этого метода тоже есть: телефон просто не загрузится вплоть до момента ввода кода блокировки; если твой телефон случайно перезагрузится, то ты не сможешь даже ответить на звонок, пока телефон не загрузится до конца.
Этот недостаток полностью устранен в новой пофайловой схеме шифрования, получившей название File Based Encryption (FBE). Устройства, зашифрованные FBE, используют user credentials (код блокировки) для шифрования большей части информации, в том числе всех персональных данных. При этом исполняемые файлы приложений, а также некоторые базы данных, необходимые для загрузки устройства, будут зашифрованы посредством device credentials (то есть данных исключительно аппаратного ключа). Режима Secure Startup при использовании FBE нет за ненужностью.
Для расшифровки данных как устройств с FDE, использующих режим Secure Startup, так и устройств с FBE необходимо взломать код блокировки. Конкретные процедуры отличаются в зависимости от чипсета, но общий принцип один: подключиться к USB-порту и запустить процедуру перебора.
Разумеется, в телефонах есть встроенная защита от таких атак. Мы уже описывали Qualcomm TrustZone, в рамках которой работает Trusted Execution Environment (TEE). В ней могут запускаться только так называемые трастлеты (trustlets), своеобразные микроприложения, подписанные ключом, который проверяется самой TEE. Именно здесь реализована проверка пасскода (через сервис GateKeeper). GateKeeper, в свою очередь, на аппаратном уровне ограничивает скорость перебора паролей; быстро перебрать даже код из четырех цифр не получится, а шесть цифр можно перебирать до бесконечности. Именно GateKeeper не даст взломать телефон, когда включен Secure Startup или если используется шифрование FBE.
Если есть защита, то будут и попытки ее взломать. В частности, для процессоров Qualcomm до Snapdragon 821 включительно существует эксплоит, позволяющий запустить на выполнение собственный трастлет и обойти ограничение на скорость перебора. В реальности же разработчики криминалистических комплексов относятся к этой уязвимости как к зубной боли: с одной стороны, уязвимость существует, она мозолит глаза; заказчики ее хотят. С другой — воспользоваться ей очень трудно: для каждого устройства нужно писать свой код, подбирать смещения, тестировать… Если бы речь шла об iPhone, количество актуальных чипсетов которого можно пересчитать по пальцам одной руки, — поддержка уязвимости такого уровня была бы реализована еще вчера. Но сотни модификаций чипсетов, использующихся в смартфонах с Android (причем каждая модель, для которой нужно запускать процесс разработки, попадет в руки полиции в единичных экземплярах), делают такую разработку экономически нецелесообразной.
Для флагманских смартфонов на процессорах Qualcomm возможность вытащить данные через уязвимости выглядит приблизительно так:
Для начала проверь, какая система шифрования используется на твоем устройстве. Для этого выполни через ADB следующую команду:
$ adb shell getprop ro.crypto.type
Если команда вернула слово file, то твой смартфон использует шифрование FBE.
Если используется пофайловое шифрование FBE:
Источник: xakep.ru
Своеобразным триггером, вызвавшим появление этой статьи, стало огромное количество публикаций в самых разнообразных изданиях, в том числе достаточно технических. Все эти публикации без единого исключения уныло повторяют одну и ту же мантру: используйте стойкий код блокировки, включите датчик отпечатков, отключите Smart Lock, включите двухфакторную аутентификацию, обновитесь на последнюю доступную версию ОС… Не будем спорить, все эти вещи проделать необходимо — но совершенно, абсолютно недостаточно.
Ты можешь выбрать самый стойкий код блокировки, но если в твоем телефоне используется шифрование FDE и ты не включил режим Secure Startup, то код блокировки может быть хоть в сотню символов длиной — шифрование все равно будет использовать фразу default_password. Отключение Smart Lock — необходимый, но недостаточный шаг; уверен ли ты в безопасности используемой в твоем устройстве технологии сканирования лица (если телефон ей оборудован)? А знаешь ли ты, что, просто зайдя на твой компьютер, можно извлечь все твои облачные пароли, после чего попросту сбросить код блокировки смартфона? (Работает, к счастью, не для всех устройств, но знать о такой возможности нужно.) Наконец, нужно отдавать себе отчет, что если с твоего компьютера будет получен пароль от облака (Google, Apple или Samsung), то сам телефон будет никому не нужен: все необходимые данные эксперт извлечет из облака (и, скорее всего, их там будет даже больше, чем в самом телефоне).
В этой статье мы не будем давать набивших оскомину советов «включить код блокировки» или «обновиться до последней версии ОС» (разумеется, ты это уже сделал). Вместо этого мы постараемся дать понимание всего спектра возможностей «тяжелой артиллерии», которая может быть использована против владельца телефона правоохранительными органами и спецслужбами для извлечения данных.
Как известно, самые сложные для работы экспертов случаи — обесточенный телефон, обнаруженный у безмолвного тела. Именно в таких обстоятельствах, как правило, начинается поиск всевозможных уязвимостей в программном и аппаратном обеспечении. В обыденных ситуациях полиция придет домой к подозреваемому, проведет анализ компьютера и извлечет кеш паролей из почтовых клиентов и браузеров Chrome/Mozilla/Edge. Затем достаточно зайти в облако с найденным логином и паролем, после чего остальное тривиально. В ряде случаев на телефоне можно удаленно сбросить пароль блокировки (сегодня, к счастью, многие производители не предлагают такой возможности по умолчанию). Телефон можно подключить к «осьминогу» UFED, который скопирует раздел данных и расшифрует его через одну из известных разработчикам уязвимостей или с использованием «расшифровывающего загрузчика» (decrypting bootloader в терминах Cellebrite) независимо от длины твоего пароля и наличия установленных обновлений.
Прочитав эту статью, ты будешь более полно осознавать возможности защитить свои данные и риски, которые останутся даже тогда, когда ты все сделал правильно.
Как будут взламывать твой iPhone
Сложность взлома iPhone отличается в зависимости от ряда факторов. Первый фактор: установленная версия iOS (ты ведь не думаешь, что советы «обновиться на последнюю доступную версию» появились на ровном месте?), сложность кода блокировки и то, в каком состоянии находится устройство (о нем — ниже).
Сначала — о версиях iOS. Если у тебя до сих пор установлена любая версия iOS 11, у меня для тебя плохая новость: для этой ОС доступен как взлом кода блокировки методом прямого перебора, так и полное (и очень быстрое) извлечение информации через физический доступ. Сложность кода блокировки и состояние устройства (включено-выключено, активирован ли защитный режим USB restricted mode и так далее) повлияют на скорость перебора.
Как будут взламывать iPhone с iOS 11
Если телефон был выключен: скорость перебора паролей будет очень медленной (одна попытка в десять секунд). Если ты установишь код блокировки из шести цифр, то перебирать его будут вечность.
Если телефон был включен и ты хотя бы раз разблокировал его после включения: первые 300 000 паролей будут опробованы очень быстро; скорость перебора такова, что четырехзначный код блокировки может быть взломан в течение получаса в полностью автоматическом режиме. Вывод? Используй шестизначный пароль.
Если ты успел воспользоваться режимом SOS (зажав кнопку питания и кнопку громкости): телефон снова переходит в режим «медленного» перебора. Шестизначный код блокировки в этом случае отличная защита.
Наконец, в iOS 11.4.1 появился режим USB restricted mode, позволяющий защитить устройство от взлома путем перебора паролей. В течение часа после последнего разблокирования iOS отключит доступ к USB-порту, после чего перебор паролей станет невозможным. Для того чтобы защита сработала, нужно оставить переключатель USB Accessories в положении «выключено». Впрочем, в последнее время активно циркулируют слухи, что разработчикам криминалистических комплексов удалось или вот-вот удастся обойти и эту защиту. Вывод? Да обновись ты до iOS 12, наконец!
Как будут взламывать iPhone с iOS 12
Ситуация с iOS 12 довольно интересна. Apple удалось закрыть ряд уязвимостей, которые делали возможным перебор паролей на устройствах с iOS 11. Более того, защитный режим USB restricted mode был усовершенствован: теперь USB-порт (а точнее, возможность передачи данных через физический коннектор Lightning) отключается сразу же, как только ты заблокируешь экран устройства. Правда, только в тех случаях, если ты как минимум три дня не подключал телефон к компьютеру, проводной аудиосистеме или другим аксессуарам; если же подключал, то будет как раньше — через час. Кроме того, USB-порт теперь отключается и при вызове режима SOS (зажать кнопку питания и громкости).
С другой стороны, в iOS 12 присутствуют уязвимости, перекочевавшие в систему еще из 11-й версии ОС. В iOS 12 вплоть до версии 12.1.2 не были закрыты две важные уязвимости, позволяющие через эскалацию привилегий получить полный доступ к файловой системе без установки полноценного джейлбрейка. Соответственно, если в руки экспертов телефон с iOS 12.1.2 или более старой попадет в разблокированном состоянии, то данные из него улетят со свистом. В iOS 12.1.3 часть уязвимостей была закрыта (не все: GrayKey по-прежнему способен извлечь образ файловой системы), но полностью обезопасить устройства от известных на сегодняшний день эксплоитов смогла только iOS 12.1.4, которая вышла буквально на днях. Вывод? В совете «обновись до последней доступной версии прошивки» все-таки что-то есть!
Итак, как именно будут пытаться взломать твой iPhone с iOS 12?
Самый безопасный для тебя вариант — если в руки эксперта твой телефон попадет в выключенном состоянии. В этом случае начать перебор не удастся — по крайней мере до тех пор, пока разработчики не придумают, как обойти защитный режим USB (к слову, пока не придумали).
Если телефон был включен и разблокирован хотя бы раз после включения (но заблокирован на момент взлома), то сделать с ним что-то полезное тоже не получится. Да, можно попытаться подключить его к твоему компьютеру, чтобы создать резервную копию через iTunes; если не успел активироваться защитный режим USB и если ты хоть раз подключал свой iPhone к iTunes, то попытка может оказаться успешной. Как защититься? Установи длинный и сложный пароль на резервную копию.
Да, в iOS 12 (и в iOS 11) этот пароль можно сбросить — но только с самого iPhone и только если известен код блокировки. И даже тогда ты можешь дополнительно защитить пароль от сброса, установив пароль Screen Time.
Пароль Screen Time — не панацея. Вообще говоря, это «детская» защита, функция защиты от сброса пароля на резервную копию в ней вторична. Тем не менее обойти ее не получится даже перебором: iOS будет увеличивать задержки до тех пор, пока скорость перебора не упадет до одной попытки в час (начиная с десятой попытки).
Если забрали разблокированный телефон
В идеальном мире полиции пришлось бы проявить технические навыки и пользоваться блестящими устройствами, чтобы просто попытаться взломать твой смартфон. В большинстве же случаев полиция просто попытается извлечь из твоего смартфона максимум информации в рамках имеющихся полномочий за минимальное время. Уверенным голосом «попросить» разблокировать телефон, после чего унести разблокированный телефон в отдельную комнату — самый типичный случай для (не льсти себе) мелких правонарушителей. Давай посмотрим, что может сделать iOS для защиты твоих данных в этом случае.
Итак, вводная: iPhone разблокирован и передан сотруднику, но код блокировки ты не сообщал. (В скобках: и не сообщай, нет у тебя такой обязанности в случае обычного задержания.) Что будет происходить дальше?
Во-первых, сотрудник может просто вручную просмотреть интересующие его разделы в устройстве. Здесь и постинги в соцсетях (уверен, на тебя там ничего не найдут, но статья за лайки — она довольно гибкая), и переписка, и сообщения SMS/iMessage, и, разумеется, фотографии.
Будут извлечены данные приложения «Здоровье», из которых можно будет сделать выводы о том, что именно ты делал в тот или иной момент (в частности, будет видно — двигался ты или сидел на месте, а если двигался — то не бежал ли). Нам известен не один, не два и даже не десяток случаев, когда рутинное задержание вдруг превращалось в арест и предъявление обвинения по факту найденной в смартфоне информации.
Как защититься от анализа в этом режиме? Никак, только не передавать полиции разблокированное устройство. Не отдать телефон совсем ты не можешь, но вот отказаться его разблокировать — пока что еще твое право (исключения бывают, например при пересечении границы; мы про них писали). Здесь отметим, что даже на устройстве с разблокированным экраном без кода блокировки не удастся ни просмотреть пароли из «связки ключей», ни отключить Find My iPhone, ни сбросить пароль от резервной копии iTunes, если ты его установил, ни даже подключить телефон к компьютеру: для этого теперь тоже нужен код блокировки.
Во-вторых, телефон могут подключить к комплексу GrayKey или подобному (правда, «подобных» на самом деле нет, но мало ли? Вдруг китайские дубликаторы жестких дисков научатся взламывать iPhone?). В этом случае спасти может лишь свежая версия iOS: напомним, вплоть до iOS 12.1.3 включительно нет никакой проблемы с тем, чтобы извлечь из устройства образ файловой системы. В iOS 12.1.4 уязвимость была закрыта. Надолго ли? Пока неизвестно.
Наконец, из телефона могут попытаться извлечь данные в виде резервной копии. Для этого потребуется как минимум подключить телефон к компьютеру, для чего эксперту понадобится код блокировки экрана. Можно попытаться обойти этот момент, используя файл lockdown из твоего компьютера. Впрочем, если ты установишь пароль на резервную копию и защитишь его от сброса при помощи пароля Screen Time, ты можешь полностью обезопасить себя с этой стороны.
Вывод? Если ты разблокировал iPhone и на телефоне установлена последняя версия iOS (на сегодня это 12.1.4), сотрудник, скорее всего, будет вынужден ограничиться «ручным» анализом на экране самого телефона.
Как будут взламывать твой смартфон на Android
Как и в случае с iPhone, в полиции попытаются заставить тебя разблокировать устройство. Если им это удастся и ты передашь в руки полиции разблокированный телефон, расслабься: дальнейшее от тебя не зависит; ты выдал все, что было можно. В отличие от iOS, которая пытается хоть как-нибудь защитить тебя даже в таких ситуациях, с экрана разблокированного смартфона следователь получит:
- разумеется, доступ ко всему содержимому карты памяти (виртуальной и реальной), включая фото и видео;
- почту, переписку в мессенджерах, тексты SMS;
- полный список паролей, сохраненных в Chrome (частенько там можно найти и пароль от твоего Google Account — кстати, проверь, так ли это);
- подробную историю местоположения. Очень подробную;
- данные Google Fit. Их можно экспортировать;
- звонки, контакты.
Мне очень хотелось бы написать подробную статью о том, как и чем можно взломать заблокированный смартфон на Android, но, боюсь, это невозможно: на руках у пользователей тысячи разнообразных моделей, основанных на десятках чипсетов в сотнях вариаций. С учетом разнообразия прошивок, версий самого Android и доступности актуальных патчей безопасности (та самая проблема фрагментации Android) сложилась ситуация, в которой даже крупнейший производитель криминалистических продуктов не знает, с какими устройствами работает их комплекс. «Попробуйте подключить» — стандартный ответ на вопрос, поддерживает ли комплекс Х смартфон Y.
К примеру, простой вопрос: можно ли взломать код блокировки у конкретной модели смартфона, а главное — нужно ли это делать или можно обойтись и так? Многочисленные статьи по безопасности в один голос рекомендуют устанавливать стойкий код блокировки, умалчивая о том, что примерно для каждого второго смартфона это совершенно бесполезно. Как определить, имеет ли смысл заморачиваться со сложным кодом блокировки или нужно копать в другую сторону?
Ответ связан с алгоритмом шифрования, используемого в конкретном устройстве. Как ты помнишь, все смартфоны, вышедшие с завода с Android 6 и более поздними версиями, обязаны зашифровать пользовательские данные к моменту окончания начальной настройки. Однако шифрование шифрованию рознь. В большинстве старых устройств используется так называемое полнодисковое шифрование Full Disk Encryption (FDE). В режиме FDE данные на пользовательском разделе зашифрованы посредством device credentials — ключа шифрования, который генерируется на основе некоего аппаратного ключа и фразы default_password.
Да, именно так — default_password защищает все твои данные. И что же, все пропало? Любой желающий может взять и расшифровать информацию? Не совсем. Ключ шифрования генерируется внутри Trusted Execution Environment (TEE) в момент загрузки устройства; в качестве исходных данных участвует уникальный для каждого устройства ключ, который за пределы TEE не выходит. Если из телефона извлечь чип памяти и скопировать из него информацию, то расшифровать данные без ключа из TEE не удастся. Соответственно, для расшифровки информации потребуется не просто вытащить из телефона данные (например, через режим EDL), а еще и взломать TEE или подменить загрузчик. В принципе, такие «расшифровывающие загрузчики» (decrypting bootloader) существуют, например у Cellebrite для целого ряда моделей, а иногда и целых семейств моделей, объединенных общим чипсетом. Тем не менее для использования этой возможности понадобится специальный комплекс, который и извлечет данные.
Даже если в твоем телефоне используется устаревшая защита FDE, ты можешь надежно защитить свои данные, активировав режим Secure Startup. В этом режиме ключ шифрования будет перешифрован данными аппаратного ключа и твоего кода блокировки (вместо default_password). Недостаток у этого метода тоже есть: телефон просто не загрузится вплоть до момента ввода кода блокировки; если твой телефон случайно перезагрузится, то ты не сможешь даже ответить на звонок, пока телефон не загрузится до конца.
Этот недостаток полностью устранен в новой пофайловой схеме шифрования, получившей название File Based Encryption (FBE). Устройства, зашифрованные FBE, используют user credentials (код блокировки) для шифрования большей части информации, в том числе всех персональных данных. При этом исполняемые файлы приложений, а также некоторые базы данных, необходимые для загрузки устройства, будут зашифрованы посредством device credentials (то есть данных исключительно аппаратного ключа). Режима Secure Startup при использовании FBE нет за ненужностью.
Для расшифровки данных как устройств с FDE, использующих режим Secure Startup, так и устройств с FBE необходимо взломать код блокировки. Конкретные процедуры отличаются в зависимости от чипсета, но общий принцип один: подключиться к USB-порту и запустить процедуру перебора.
Разумеется, в телефонах есть встроенная защита от таких атак. Мы уже описывали Qualcomm TrustZone, в рамках которой работает Trusted Execution Environment (TEE). В ней могут запускаться только так называемые трастлеты (trustlets), своеобразные микроприложения, подписанные ключом, который проверяется самой TEE. Именно здесь реализована проверка пасскода (через сервис GateKeeper). GateKeeper, в свою очередь, на аппаратном уровне ограничивает скорость перебора паролей; быстро перебрать даже код из четырех цифр не получится, а шесть цифр можно перебирать до бесконечности. Именно GateKeeper не даст взломать телефон, когда включен Secure Startup или если используется шифрование FBE.
Если есть защита, то будут и попытки ее взломать. В частности, для процессоров Qualcomm до Snapdragon 821 включительно существует эксплоит, позволяющий запустить на выполнение собственный трастлет и обойти ограничение на скорость перебора. В реальности же разработчики криминалистических комплексов относятся к этой уязвимости как к зубной боли: с одной стороны, уязвимость существует, она мозолит глаза; заказчики ее хотят. С другой — воспользоваться ей очень трудно: для каждого устройства нужно писать свой код, подбирать смещения, тестировать… Если бы речь шла об iPhone, количество актуальных чипсетов которого можно пересчитать по пальцам одной руки, — поддержка уязвимости такого уровня была бы реализована еще вчера. Но сотни модификаций чипсетов, использующихся в смартфонах с Android (причем каждая модель, для которой нужно запускать процесс разработки, попадет в руки полиции в единичных экземплярах), делают такую разработку экономически нецелесообразной.
Для флагманских смартфонов на процессорах Qualcomm возможность вытащить данные через уязвимости выглядит приблизительно так:
- для старых устройств (до Snapdragon 821 включительно) с эксплоитами иногда можно взломать пасскод, если не установлен Secure Startup (способов обнаружено множество);
- для старых устройств с включенным Secure Startup либо с шифрованием FBE скорость перебора ограничена GateKeeper. Атака на «холодное» устройство (после перезагрузки или включения) практически не реализуется за исключением единичных популярных моделей (проблема «неуловимого Джо»);
- для новых устройств (со Snapdragon 835 и новее) недоступны эксплоиты EDL, недоступен эксплоит TEE и даже в редких случаях, когда используется шифрование FDE, расшифровать содержимое раздела данных довольно непросто (но в отдельных случаях можно, эксплоиты существуют);
- наконец, для новых устройств (SD835 и новее), использующих шифрование FBE, никакие эксплоиты не работают: ключ шифрования зависит от пароля, а перебор очень медленный (GateKeeper).
Для начала проверь, какая система шифрования используется на твоем устройстве. Для этого выполни через ADB следующую команду:
$ adb shell getprop ro.crypto.type
Если команда вернула слово file, то твой смартфон использует шифрование FBE.
Если используется пофайловое шифрование FBE:
- установи код блокировки длиной не менее шести цифр (если позволяет устройство);
- отключи отладочный режим USB Debugging.
- зайди в настройки и удали текущий код блокировки;
- создай новый код блокировки. Система запросит, хочешь ли ты включить режим безопасной загрузки. Подтверди запрос;
- не забудь отключить отладочный режим USB Debugging.
Источник: xakep.ru
التعديل الأخير بواسطة المشرف: