Category: Для мобильных устройств

  • Памятка по предупреждению «пыточного» криптоанализа

    Среди аудитории интернет-ресурса «Может, вам повезёт?» существует своеобразная «прослойка» поборников теории абсолютной бесполезности мер безопасности мобильных устройств (вроде чипов Secure Element) по причине того, что «секрет» от них можно получить попросту запытав владельца.

    Подобные явления, разумеется, имеют место быть, вот только составляют одну из самых «узких» крайностей в так называемом «моделировании угроз», т. е. статистическое большинство даже при желании «допрыгнуть» до этого не может. Тем не менее, вы уверены, что с вами это непременно произойдёт. Что делать?

    Во-первых, вам нужно прекратить хранить какие-либо чувствительные данные на «потребительских» устройствах. То есть, про любимый iPhone, iPad и прочие девайсы вам необходимо забыть.

    Вместо этого для всех «важных» дел вам необходимо приобрести простенький телефон Pixel. Не обязательно «метить» на последние модели 10-го поколения, а также на варианты Pro. Pixel 9a стоит в районе двадцати девяти тысяч рублей (~$300 долларов США), но в плане безопасности ничем не отличается от Pro XL того же поколения. Дата окончания поддержки — апрель 2032-го.

    Далее вам необходимо установить на свежеприобретенный телефон операционную систему GrapheneOS. Это делается через браузер на любом компьютере за ~12 минут. Путём последовательного нажатия кнопок на экране, разумеется.

    Важно: сверьте контрольную сумму ключа AVB после установки с точно подлинным. Желательно сразу с нескольких устройств. Для работы Verified Boot далее вручную это делать не надо.

    После настройки ОС и установки сильного пароля (!) вам необходимо проследовать по пути Settings -> Security & Privacy -> Device Unlock -> Duress PIN и ввести свой пароль. После этого надо придумать заведомо ложный пароль/ПИН-код и запомнить его. Он будет использоваться для экстренного стирания устройства. В том же разделе находится секция Exploit Protection, где рекомендуется отключить порт USB-C и поставить автоматическую перезагрузку на значение меньше 4-х часов.

    Подробнее о работе Duress PIN можно прочитать здесь. Если кратко — ключи восстановить нельзя, даже если вы позже назовете пароль, а также «результат» процесса можно списать на обычное повреждение раздела /data.

    GrapheneOS — дериватив Android, имеющий полную совместимость с стандартыми приложениями .apk. Ощущается Pixel на GrapheneOS как обычный телефон с Android из среднего сегмента.

    Касательно советов по применению Duress PIN; желательно применить его до того, как вас непосредственно «прижмут». Соответственно, для этого вам необходимо пользоваться собственным «чутьем». Никакая программа не сможет его заменить.

  • Про iPhone репортёра Washington Post

    На днях появилось известие о том, что у ФБР не получилось «открыть» достаточно старый Apple iPhone 13 и Macbook Pro репортёра Washington Post. Стоит отметить, что автор «Может, вам повезёт?» при первом прочтении был весьма удивлён — как правило, устройства Apple, как и например Google Pixel на «заводской» ОС могут быть спокойно взломаны соответствующими аппаратными комплексами.

    Полноценно подтвердить или опровергнуть возможность подобного «исхода», к сожалению, не представляется возможным — ведь в материалах отсутствуют упоминания ключевых факторов, от которых зависит успех большинства криминалистических «исследований». Из доступной информации — то, что Face ID был отключен, и то, что оба устройства находились в режиме блокировки (Lockdown Mode).

    Что же отсутствует? Описание состояния устройства — Before First Unlock [BFU] или After First Unlock [AFU]. Соответственно, первый акроним относится к состоянию после выключения/перезагрузки но без ввода пароля (далее — секрет), второй — уже после. Подробнее о них можно прочитать в этой статье.

    Это абсолютно ключевая деталь, которая определяет порядка 70% успеха во взломе устройства. Если устройство в AFU, поверхность, которую можно атаковать, кратно больше, и vice versa. Без упоминания этой детали сказать что-то крайне затруднительно.

    Также, отсутствует упоминание характера «секрета», который репортер использовал для доступа к устройствам. Это также крайне важно, ведь «слабые» значения полностью зависят от замедления криптографическим сопроцессором (Secure Element), в данном случае — Apple SEP. Соответственно, если «комплексы» ФБР могут обойти названное замедление, любой пароль менее 32 случайных символов становится «приговором» владельцу.

    В статье также упоминается то, что телефоны iPhone автоматически запрещают любые новые соединения по USB, пока устройство не будет разблокировано, но, по крайней мере, в 13-ом поколении эта «защита» поверхностная. Даже последние модели уступают в этом вопросе GrapheneOS, которая позволяет полностью отключить порт на «железном» уровне.

    Без отсутствующих деталей сложно сказать, сколько в этой новости «правды», а также есть ли она там вообще. Вердикт автора «Может, вам повезёт?» — «конструкция» неимоверно шаткая.

  • Актуальная «матрица поддержки» устройств Google Pixel «открывашками» Cellebrite Premium

    Это обновлённая «матрица поддержки» премиальных комплектов для проведения «криминалистических исследований» Cellebrite Premium. Ресурс «Может, вам повезёт?» уже публиковал аналогичную таблицу за 2024 год.

    Стоит отметить, что многократно рекомендуемое ресурсом «Может, вам повезёт?» девятое поколение Google Pixel на данный момент можно «открыть» только на «заводской» ОС. «Прогрызть» GrapheneOS все еще не представляется возможным.

    Сотрудник Cellebrite, Алекс Ранкмор. Именно он проводил презентацию этой «матрицы».

  • Как работает Duress PIN?

    Каким образом работает Duress PIN в GrapheneOS и как его правильно использовать по «назначению»?

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

    Duress PIN также упоминался в недавнем материале о «лабораторном криптоанализе» в контексте единственного более-менее стойкого метода защиты, ведь «спорить» с несуществующими ключами шифрования можно только сломав сам шифр — что, даже для Rijndael (AES), перспектива ну уж очень далекая.

    Переходя к «теме». Duress PIN/Password — уникальная комбинация, при введении которой в любое окно аутентификации системы отсылается специальная «команда» в криптографический процессор Titan M/M2. Соответственно, после получения такого «письма счастья», Titan уничтожает ключи, что приводит к панике ядра и последующему выключению.

    Так как зашифрованные данные после такого «фокуса» не удаляются, продолжить пользоваться телефоном можно будет только после форматирования раздела /data, что вам будет предложено сделать в процессе загрузки. Это позволяет «списать» невозможность загрузить систему на ошибки GrapheneOS, коих, на памяти автора «Может, вам повезёт?» было некоторое количество.

    Как использовать? Стоит заметить, что нежелательно чтобы «доходило» до непосредственного «выбивания» паролей из вас. Золотой стандарт — «вбивать» Duress PIN при «стойком» чувстве «неладного» в вашем окружении. Проще говоря — ориентироваться на «чутье».

  • «Открываем» самые «непробиваемые» устройства

    Для устройств вроде Google Pixel 9, об которые «ломают» зубы даже самые дорогие «открывашки» Cellebrite Premium уготовлен «специальный» метод получения «секретов» — лабораторный криптоанализ.

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

    Задача подобных «лабораторий» — заставить криптографический чип (Secure Element) вести себя «хаотично», что даст ход «утечкам информации», по которым можно восстановить ключи, которые чип «хранит».

    Общее название подобных «атак» — Fault Injection, и они проявляются во множестве способов физического воздействия на чип. Из наиболее «популярных»: лазеры, электромагнитное излучение, манипуляция питания, и им подобные.

    Ввиду того, что многие методы Fault Injection носят определённый уровень «секретности», сказать, какие чипы наиболее уязвимы — достаточно сложно. Единственное что можно отметить — Apple SEP и Samsung Knox более подвержены подобным атакам, Google Titan M2 — меньше.

    Единственное, что можно порекомендовать против таких «методов» — имейте при себе способ быстро «уничтожить» ключи из Secure Element, например, тот же Duress PIN в GrapheneOS.

  • Конкретные уязвимости в процессорах Apple

    Из-за спекулятивного выполнения кода страдают не только компьютеры Macintosh, но и телефоны iPhone и планшеты iPad — у них существует свой GoFetch, поделенный на два — SLAP и FLOP.

    FLOP является наиболее «опасным» из пары; если заставить систему LVP (Load Value Predictor), которая отвечает за спекулятивное выполнение «спекулятивно» же выполнить вредоносный код, то можно читать регионы памяти, взаимодействовать с которыми нельзя.

    SLAP же эксплотирует LAP (Load Address Predictor), из названия которого следует, что он предсказывает адреса регионов памяти. Если заставить LAP предсказать «не туда», можно получить адрес, например, соседней вкладки браузера с чувствительными данными.

    Стоит отметить, что обе уязвимости являются архитектурными, т. е. «починить» их обновлением прошивки можно только отчасти.

    По данным канала «Может, вам повезёт?», уязвимости FLOP и SLAP уже применяются в полицейских «открывашках», пионером же на данном «фронте» является компания Cellebrite. Наши отечественные «умельцы», со свойственным им опозданием, но начинают «догонять» своих израильских «коллег».

  • Почему технику Apple так легко «открыть»?

    Именно утечки информации из процессоров Apple делают их взлом полицейскими «открывашками» тривиальным.

    Упомянутая мной уязвимость GoFetch проростает именно из безрассудной погони за производительностью — в процессорах Apple Silicon есть DMP (Data-memory dependent prefetcher), который спекулятивно ищет «указатели» в кэше процессора и спеулятивно же назначает для них регионы в памяти. Это приводит к повышению производительности на 20-30%, но позволяет «подобрать» ключи шифрования просто «понаблюдав» за структурными изменениями кэша некоторое время. Зачастую «наблюдать» нужно не более 10-ти часов.

    Нет никаких сомнений, что этим пользуются разработчики «открывашек», вроде израильской Cellebrite или отечественной же Oxygen Forensics. Таких утечек «навалом» и в iPhone — но ввиду сложности «темы» о них сейчас готовится отдельный материал.

  • Полезные настройки GrapheneOS

    Коротко пробежимся по «полезным» настройкам GrapheneOS, которые могут вам «пригодиться»:

    — Settings -> Security & Privacy -> Exploit Protection -> USB-C mode: этот пункт позволяет вам отключить порт USB-C совсем, либо же отключить только передачу данных. По умолчанию стоит Charging-only when locked, except BFU, но я рекомендую поменять это на Charging-only или Off. На моем Pixel порт выключен полностью.

    — Settings -> Security & Privacy -> Exploit Protection -> Auto-reboot: Это «краеугольный камень», который убивает любую «открывашку». Если вы не разблокируете телефон за X минут/часов, он автоматически перезагрузится и зашифрует данные. Почему это крайне важно можно почитать тут. Я рекомендую ставить на три или один час. По личному опыту, вводить пароль каждые три часа не вызывает особого «геморроя»

    — Settings -> Security & Privacy -> Exploit Protection -> DCL via storage/memory, native code debugging, тп.: Здесь желательно все включить(в случае с MTE/malloc), а ненужное(DCL) отключить. Если что-то сломается — каждое приложение можно настроить отдельно, хотя ломается крайне редко.

    — Settings -> Security & Privacy -> Exploit Protection -> Advanced: В этом меню я рекомендую отключить Exploit Protection Compatibility mode, а также автоматическое разрешение доступа к сенсорам. Остальное, вроде метаданных EXIF у скриншотов — на ваше усмотрение.

    — Settings -> Security & Privacy -> Device Unlock -> Duress Password: тут можно задать «ложный пароль», при вводе которого в любое поле ввода пароля системы ваш телефон вас «поймет» и уничтожит все данные, в т. ч. ключи шифрования из Titan M2. Крайне полезно когда пароль из вас «выбивают».

  • Какой телефон мне выбрать?

    Если же вы рассчитываете, что ваш телефон может «попасть» на стол к «цифровым криминалистам», я рекомендую рассмотреть покупку простенького Google Pixel 8/9 поколения для последующего использования GrapheneOS. Исходя из сообщений «злых таксистов», а также слитой презентации премиальной «открывашки» Cellebrite Premium — «открыть» Pixel 6-ого поколения и выше с GrapheneOS сейчас нельзя.

    Почему именно последние два поколения? В них был добавлен ARM MTE [Memory Tagging Extension], который многократно усложняет искажение памяти системы. Необходимо отметить, что именно на атаках искажения памяти построено большинство современных эксплоитов.

    Что касается личного опыта, то у автора канала «Может, вам повезет?» за время использования GrapheneOS на одном из последних Google Pixel не возникло ни одного нарекания, даже с максимальными настройками безопасности.

  • Как работает «цифровая криминалистика»?

    Для технически-грамотной части моих читателей один лишь «список» брендов мог показаться поверхностным. С этим «сентиментом» я полностью согласен, ведь одних «очертаний» проблемы недостаточно для построения качественного «решения».

    Основы. Современные мобильные устройства имеют два основополагающих состояния: Before First Unlock [BFU] и After First Unlock [AFU]. Разграничение между ними крайне простое: если вы перезагрузили телефон, но все еще не ввели пароль — это BFU. Если перезагрузили и ввели пароль — это AFU. Стоит отметить, что не обязательно именно перезагружать — обычное выключение работает точно также. Не смотря на мнимую простоту вопроса, разница между ними определяет «успех» большинства операций по «взлому» в «цифровой криминалистике», ибо в BFU нету ключей шифрования в памяти, работают только несколько самых основных системных сервисов, а порт USB зачастую отключен. AFU по праву считается более легкой «целью», ибо ключи шифрования и данные уже находятся в памяти, а также работает колоссальное количество разных процессов, что многократно умножает количество уязвимостей.

    Крайне важным фактором является наличие такой штуки как «Secure Element», в котором хранятся ключи. Это криптографический чип, который не зависит от «Application Processor», т. е. основного чипа системы. У всех устройств Apple это SEP [Secure Enclave Processor], у телефонов Google Pixel — Titan. Именно уязвимость checkm8 в SEP делает «взлом» iPhone X и ниже тривиальной задачей даже для условного «школьника».

    Зачастую «заставить» Secure Element «выдать» ключи — задача крайне нетривиальная, поэтому даже самые дорогие «планшеты» Cellebrite Premium зачастую застревают в BFU. По этой же причине AFU является наименее безопасным; ключи уже в памяти.

    Заслуженное первенство в сфере противодействия «цифровой криминалистике» занимает Titan M2 ввиду того, что с ним можно взаимодействовать используя открытые хорошо задокументированные пути, чем и пользуются дистрибутивы Android Open Source Project. Ярким примером такого «взаимодействия» можно назвать GrapheneOS — Titan там используется и для проверки подлинности системы [Android Verified Boot] и для хранения ключей.