CopperheadOS
CopperheadOS — мобильная операционная система для смартфонов, основанная на мобильной платформе Android. Система добавляет функции конфиденциальности и безопасности к официальным выпускам Android Open Source Project от Google. Разработка осуществляется компанией Copperhead — канадской организацией в сфере информационной безопасности. Лицензируется по лицензии Creative Commons BY-NC-SA 4.0, однако её исходный код не доступен для свободного скачивания.
CopperheadOS официально поддерживает смартфоны из продуктовой линейки Pixel; другие устройства не поддерживаются для оптимизации ресурсов разработки. В системе реализованы дополнения безопасности, которые отсутствуют в стандартном Android, например, усиленная версия ядра Linux, а также возможность использования различных паролей для разблокировки устройства и для шифрования. Вместо магазина приложений Google Play по умолчанию используется F-Droid, что снижает риск установки вредоносных приложений.
Общие сведения
| CopperheadOS | |
|---|---|
| Разработчик | Copperhead |
| Семейство ОС | Unix-подобные |
| Основана на | Android |
| Исходный код | проприетарный |
| Первый выпуск | 2015 |
| Последняя версия |
|
| Метод обновления | через Интернет (OTA) или sideload-пакеты обновлений |
| Менеджеры пакетов | APK (в комплекте F-Droid как фронтенд) |
| Лицензия | CC BY-NC-SA 4.0 |
| Состояние | активное |
| Веб-сайт | copperhead.co |
История
Проект CopperheadOS был запущен в 2014 году компанией Copperhead, базирующейся в Торонто, Канада. Компания основана в том же году Джеймсом Дональдсоном (CEO) и Дэниелом Микаем (CTO, ведущий разработчик), изначально работала с клиентами из юридической и разведывательной сфер Канады. В процессе работы основатели обратили внимание на отсутствие защищённых, открытых операционных систем для мобильных устройств и создали CopperheadOS под открытой лицензией, чтобы восполнить этот недостаток[2].
О развитии CopperheadOS было объявлено в апреле 2015 года. Согласно анонсу, ОС позиционировалась как «по умолчанию защищённая версия Android» для пользователей, обеспокоенных приватностью[3]. Изначально CopperheadOS распространялась под лицензией GNU General Public License, а разработки размещались на GitHub[4]. Компания Copperhead передала ряд исправлений и доработок, сделанных для CopperheadOS, в Android Open Source Project, основной проект Android от Google[5].
В августе 2015 года состоялся выпуск первой альфа-версии CopperheadOS[6]. На тот момент проект базировался на CyanogenMod, поддерживал Google Nexus 5 и Samsung Galaxy S4[7]. Затем в феврале 2016 появилась бета-версия с поддержкой Nexus 5, Nexus 9 и Nexus 5X, уже построенная напрямую на Android Open Source Project, без CyanogenMod, как и дальнейшие релизы. Отказ от CyanogenMod и отсутствие поддержки производителя привели к прекращению поддержки Samsung Galaxy S4[8]. В мае 2016 Copperhead запустила интернет-магазин, где можно было приобрести Nexus 5X с предустановленной CopperheadOS, а в июле того же года — Nexus 6P[9].
С октября 2016, начиная с версий CopperheadOS на базе Android 7.0 Nougat, проект перешёл на лицензию Creative Commons Attribution-NonCommercial-ShareAlike (BY-NC-SA)[10]. По словам Дональдсона, это было сделано для предотвращения несанкционированного использования кода другими компаниями без оплаты лицензии Copperhead, а также для обеспечения устойчивого развития проекта.
В марте 2017 Copperhead начала продавать смартфоны Google Pixel с предустановленной CopperheadOS[11], тогда как для устройств Nexus можно было бесплатно скачать и установить CopperheadOS самостоятельно[12]. Для моделей Pixel возможность самостоятельной установки не предусматривалась[13]. Пользователи могли купить телефон с CopperheadOS напрямую или отправить свой аппарат в Copperhead для установки. Это было сделано во избежание нарушений некоммерческой лицензии: конкуренты Copperhead продавали Nexus с CopperheadOS без коммерческой лицензии, и компания решила предотвратить такие случаи для Pixel[13]. В ноябре того же года сервер обновлений Nexus был временно отключён для предотвращения дальнейших нарушений, но вскоре возобновил работу[13].
В январе 2018 вышла альфа-версия CopperheadOS для Pixel 2 и Pixel 2 XL. Официальные релизы для этих моделей помечались как «для внутреннего использования» и были недоступны для широкого скачивания, в то время как для Nexus по-прежнему распространялись публичные релизы[14].
Разногласия между двумя основателями по вопросам ведения бизнеса обострились в первой половине 2018 года и в июне Микай был уволен Дональдсоном[15].[16] В ответ Микай опубликовал уведомление об увольнении на Reddit и удалил криптографические ключи, необходимые для выпуска обновлений[15].[17] По собственным словам, он считал, что «компания и инфраструктура скомпрометированы» и хотел «предотвратить возможный вред пользователям»[18]. В результате Copperhead несколько месяцев не выпускала обновлений[16]. Микай продолжил работу над открытыми частями CopperheadOS как проект Android Hardening, впоследствии переименованный в GrapheneOS[19]. По словам Дональдсона, по состоянию на февраль 2019 между ним и Микаем шёл судебный спор по этому инциденту[20].
Следующий релиз CopperheadOS после ухода Микая вышел в марте 2019, уже на базе Android Pie (9) — с поддержкой Pixel, Pixel XL, Pixel 2 и Pixel 2 XL. Устройства с предустановленной системой были доступны в магазине Copperhead[21]. В феврале 2020 появился вариант на Android 10 для Pixel 2 и Pixel 2 XL[22]. К июню 2020 исходники и образы CopperheadOS перестали быть доступны публично и выдаются только участникам партнёрской сети компании: причиной названы массовые нарушения некоммерческой лицензии[23].
В ноябре 2020 компания выпустила версию CopperheadOS на базе Android 11[24]. В феврале 2022 появилась версия на Android 12, в которой добавили поддержку Pixel 4a, Pixel 4a 5G, Pixel 5, Pixel 5a и Pixel 6[25]. В феврале 2023 проект добавил поддержку Pixel 6a и Pixel 7 с выходом обновления до Android 13[26].
Архитектура и компоненты
CopperheadOS нацелена на усиление безопасности Android и затруднение эксплуатации уязвимостей. Как отмечал CEO Copperhead Джеймс Дональдсон в интервью 2016 года, задача системы — «повысить ресурсоёмкость атак до уровня, когда атакующий попросту прекратит попытки»[2]. В систему внедрены многочисленные доработки безопасности по сравнению с «чистым» Android — например, исправления PaX для ядра Linux, что улучшает защиту от выполнения кода во временных областях памяти[8]. Также реализованы улучшенные механизмы адресного случайного размещения, специальная реализация malloc с дополнительной рандомизацией, более строгие политики SELinux[8].[27] Дополнительно реализована верификация загрузки (verified boot), защищающая от вредоносных вмешательств в процесс загрузки устройства[28].
Интерфейс и программное обеспечение
В отличие от стандартного Android, CopperheadOS разделяет пароли для разблокировки устройства и для шифрования: пользователь может задать простой пароль для разблокировки, но после пяти неверных вводов устройство перезагружается и требуется уже сложный пароль для расшифровки[8] В системе сразу установлен магазин F-Droid для установки открытых программ, а не Google Play Store, что снижает риск случайной установки вредоносных приложений.[2].
Пакетная база и обновления
Поддержка аппаратных платформ
Официально поддерживаются только смартфоны линейки Google Pixel для ускорения выпуска обновлений безопасности и распределения ресурсов команды[29]. По состоянию на сентябрь 2022 года поддерживались Pixel 3a, Pixel 3a XL, Pixel 4, Pixel 4 XL, Pixel 4a, Pixel 4a (5G), Pixel 5, Pixel 5a и Pixel 6[30].
История версий
| Версия | Дата | Ветка/статус | Ключевые изменения | Примечания |
|---|---|---|---|---|
| Первая alpha | август 2015 | альфа | Базируется на CyanogenMod, поддержка Nexus 5 и Galaxy S4 | [6] |
| Бета | февраль 2016 | бета | Переход на Android Open Source Project, поддержка Nexus 5, Nexus 9, Nexus 5X | [8] |
| Android 7 (Nougat) | октябрь 2016 | стабильная | Смена лицензии на CC BY-NC-SA, ограничение доступа к коду | |
| Android 9 (Pie) | март 2019 | стабильная | Поддержка Pixel, Pixel XL, Pixel 2, Pixel 2 XL | [21] |
| Android 10 | февраль 2020 | стабильная | Для Pixel 2, Pixel 2 XL | [22] |
| Android 11 | ноябрь 2020 | стабильная | Поддержка новых моделей Pixel | [24] |
| Android 12 | февраль 2022 | стабильная | Поддержка Pixel 4a, Pixel 4a 5G, Pixel 5, Pixel 5a, Pixel 6 | [25] |
| Android 13 | февраль 2023 | стабильная | Поддержка Pixel 6a, Pixel 7 | [26] |