В очередном обновлении защищённой мобильной платформы GrapheneOS 2024053100 появилась функция экстренной блокировки данных на устройстве. Пользователю предоставлена возможность задания дополнительного пароля и PIN-кода, ввод которых приведёт к очистке всех ключей в аппаратных хранилищах, включая ключи, используемые для шифрования данных на накопителе, а также к очистке eSIM и перезагрузке. Таким образом, в случае оказания давления на пользователя и его принуждения к разблокировке экрана или при появлении угрозы попадания смартфона не в те руки, владелец устройства может ввести деструктивный PIN-код и блокировать данные без возможности восстановления доступа.
Проект GrapheneOS развивает ответвление от кодовой базы Android (AOSP, Android Open Source Project), расширенное и изменённое для усиления безопасности и обеспечения конфиденциальности. Официально поддерживается большинство актуальных устройств Google Pixel (Pixel 4/5/6/7/8, Pixel Fold, Pixel Tablet). Наработки проекта распространяются под лицензией MIT. В состав включены многие экспериментальные технологии, связанные с усилением изоляции приложений, детальным управлением доступом, блокированием проявления типовых уязвимостей и усложнением работы эксплоитов.
Например, в платформе применяется собственная реализация malloc и
модифицированный вариант libc с защитой от повреждения памяти, а также более жёсткое разделение адресного пространства процессов. Вместо JIT в Android Runtime применяется только упреждающая (AOT, ahead-of-time) компиляция. В ядре Linux включены многие дополнительные механизмы защиты, например, в slub добавляются канареечные метки для блокирования переполнения буферов. Для усиления изоляции приложений задействованы SELinux и seccomp-bpf.
Имеется возможность выборочного предоставления доступа отдельным приложениям к сетевым операциям, датчикам, адресной книге и периферийным устройствам (USB, камере). По умолчанию запрещено получение сведений о IMEI, MAC-адресе, серийном номере SIM-карты и других аппаратных идентификаторах. Чтение из буфера обмена разрешено только приложениям, в которых в данный момент активен фокус ввода. Включены дополнительные меры для изоляции связанных с Wi-Fi и Bluetooth процессов и предотвращения утечек в результате беспроводной активности. Многие из разработанных в рамках проекта механизмов усиления безопасности перенесены в основную кодовую базу Android.
В GrapheneOS применяется криптографическая верификация загружаемых компонентов и расширенное шифрование данных на уровне файловых систем ext4 и f2fs (данные шифруются при помощи AES-256-XTS, а имена файлов – AES-256-CTS c использованием HKDF-SHA512 для генерации отдельного ключа для каждого файла), а не блочного устройства. Данные в системных разделах и в каждом профиле пользователя шифруются разными ключами. Используются доступные аппаратные возможности для ускорения операций шифрования. На экране блокировки отображается кнопка завершения сеанса, после нажатия которой ключи для расшифровки сбрасываются и хранилище переводится в неактивированное состояние. Имеется настройка для запрета установки дополнительных приложений в выбранных профилях пользователей. Для защиты от подбора паролей задействована система задержек, зависящих от числа неудачных попыток (от 30 секунд до 1 дня).
В состав GrapheneOS принципиально не включаются приложения и сервисы Google, а также альтернативные реализации сервисов Google, такие как microG. При этом имеется возможность установки сервисов Google Play в отдельном изолированном окружении, не имеющем специальных привилегий. Проектом также развивается несколько собственных приложений, сфокусированных на защите информации и приватности. В частности, предлагаются браузер Vanadium на базе Chromium и модифицированный вариант движка WebView, защищённый PDF-просмотрщик, межсетевой экран, приложение Auditor для верификации устройств и выявления вторжений, приложение для работы с камерой, нацеленное на обеспечение конфиденциальности, и система создания шифрованных резервных копий Seedvault.