Category: Цифровая Криминалистика

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

    Как можно «открыть» конвенционально «непробиваемые» устройства?

    Для устройств вроде 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 — но ввиду сложности «темы» о них сейчас готовится отдельный материал.

  • А если «секреты» из меня будут выбивать?

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

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

    Так как VeraCrypt долгое время разрабатывался одним человеком во Франции, порекомендовать его я не могу ввиду жуткой централизации разработки. Что я могу порекомендовать для такого «сценария» — dm-crypt в «простом» режиме.

    Так как «секрет» используется как ключ шифрования напрямую, в настоящее время доказать присутствие контейнера dm-crypt крайне сложно. Снаружи зашифрованный диск выглядит как «пустышка» без какой-либо таблицы разделов и/или заголовка.

    Единственный минус dm-crypt — нужно помнить все параметры шифрования, а также использовать сложный «секрет», т. к. никакой защиты от «перебора», вроде той же функции вычисления ключа, как в LUKS, нет.

  • Может ли российская полиция «открывать» компьютеры?

    Может ли российская полиция «открывать» компьютеры?

    Основы. Под «компьютером» подразумевается выключенный стационарный/ноутбук на платформе x86 с зашифрованным «винтом». Для шифрования используется LUKS/VeraCrypt/Bitlocker. Используется «традиционная» модель, при которой во время загрузки вас просят ввести «секрет» (т. е. пароль), который проходит через «функцию вычисления ключа», и в итоге превращается либо в ключ от вашего диска, либо же в «тыкву».

    Так как ключа шифрования не существует в памяти на момент загрузки, данную модель крайне сложно «сломать» даже при стандартных параметрах, например, LUKS2. Единственная «ахилесова пята» — если у вас стоит плохой «секрет», его просто «подберут» вставив ваш винт в другой компьютер. «Открывашки» в этом случае также несут мизерное количество пользы.

    Сравнительно худшую безопасность имеют контейнеры Bitlocker и VeraCrypt, так как первый создан компанией с «приятельскими» отношениями с госдепартаментом США и имеет закрытый код, а второй создаётся одним «индусом» во Франции, ввиду чего не имеет такого же количества «проверок» по сравнению с, например, LUKS.

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

  • Полезные настройки 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] и для хранения ключей.

  • Может ли российская полиция взламывать «свежие» модели телефонов?

    Может ли российская полиция взламывать «свежие» модели телефонов?

    Под термином «взлом» я подразумеваю «цифровую криминалистику», эвфемизм, призванный сгладить слово «взлом» в контексте оперативно-разыскной деятельности.

    Отвечая на вопрос — да, может, но вероятность «успеха» глубоко зависит от производителя, модели телефона, а также наличия последних обновлений.
    Можно точно сказать, что все китайские производители — Xiaomi, Huawei, Oppo и так далее «открываются» отечественными комплектами «Мобильный Криминалист» без особого труда. Телефоны Samsung несколько лучше, но зачастую «лучше» существует только в последних «флагманах». Первопричиной такой «неопределенности» является факт, что каждый производитель устройств с Android «лепит» меры безопасности как он «хочет».

    Исключением из «правила» являются модели Google Pixel начиная с шестого поколения, при условии установленной GrapheneOS. GrapheneOS — дистрибутив Android Open Source Project, который добавляет «полезные» модификации к ОС Android вроде отключения контроллера порта USB-C и использования «железных» мер защиты памяти, что сокращает эффективность любых комплектов «мобильной криминалистики» к предельно низким значениям.

    Apple iPhone «открыть» достаточно сложно, но, зачастую это применимо только к двум последним поколениям. В российской «практике» известны случаи «взлома» 14-того поколения. Большую роль играет «состояние» телефона, в котором он попал в руки «криминалистов» — выключенные «айфоны» взломать в разы сложнее, чем включенные, ввиду наличия ключей шифрования и обилия процессов в «запущенной» ОС.