Copperhead OS

Copperhead OS

Совсем недавно мы провожали в последний путь любимую прошивку CyanogenMod. Было грустно хоронить Цианоген, даже не смотря на то, что на смену ей пришла Lineage OS, которая по идее должна продолжить правое дело Цианоген.

Но недавно откуда не возьмись появилась прошивка Copperhead OS, которая обещает быть ни чем не хуже, с хорошим уровнем защиты и анонимности, ведь она от разработчиков всеми известной Tor.

Итак, как вы поняли сегодня будет обзор Copperhead OS. Я расскажу о том, что такое Copperhead OS, как она работает и в каких случаях данная прошивка может вам понадобится. Кроме этого вы узнаете как ее правильно установить и все такое.

Copperhead OS

Содержание

  • Предисловие
  • Обзор Copperhead OS
  • Установка Copperhead OS
  • Заключение и отзывы

Обзор Copperhead OS

Главная особенность прошивки Copperhead OS — существенно расширенные инструменты предотвращения взлома. Copperhead OS включает в себя улучшенную реализацию аллокатора памяти (malloc) из OpenBSD, который рандомизирует выделяемые приложению страницы и заполняет мусором возвращаемые страницы памяти. Этот процесс делает атаки класса «Use-after-free» очень сложными в реализации. OpenBSD malloc тоже размещает метки в конце выделяемых областей памяти, которые проверяются при ее освобождении. Это позволяет бороться с атаками типа «Heap overflow».

CopperheadOS

При сборке Copperhead OS используются средства компилятора для предотвращения срыва стека. В частности, механизмы _FORTIFY_SOURCE в GCC (Android < 7.0), -fsanitize=bounds, -fsanitize=object-size в Clang (Android 7.0), механизм -fsanitize=integer для защиты от целочисленного переполнения (integer overflow). Данные средства использует Google в AOSP, но авторы CopperheadOS расширили их применение для гораздо большего количества функций стандартной библиотеки языка СИ (и, что не менее важно, закоммитили в апстрим).

Для защиты от модификации кода CopperheadOS использует механизм доверенной загрузки, впервые появившийся в версиях Android 4.4, и кроме того не полагается на заблаговременно оптимизированный код приложений из каталога /data/dalvik-cache. Последний нужен для быстрого запуска приложений и генерируется во время первой загрузки смартфона (сообщение «Оптимизация приложений…»). Однако он же может быть использован для внедрения в систему зловредного кода: нет смысла подменять само приложение в разделе /system — механизм доверенной загрузки откажется загружать смартфон после модификации системного раздела, а вот оптимизированный код в /data/dalvik/cache ни у кого подозрений не вызовет.

Ядро Copperhead OS собрано с патчем PaX, включающим в себя несколько механизмов предотвращения атак:

  • PAX_RANDMMAP — более продвинутая, в сравнении с применяемой в стандартном ядре Android, реализация механизма рандомизации адресного пространства (ASLR), затрудняющая атаки, направленные на переполнение буфера и хипа;
  • PAX_PAGEEXEC — механизм защиты страниц данных от исполнения, который убивает приложение, как только оно попытается исполнить код в области данных (в ядре Android есть такой механизм, но он действует более мягко);
  • PAX_MPROTECT — препятствует модификации кода приложения во время исполнения;
  • PAX_MEMORY_SANITIZE — обнуляет страницу памяти при ее освобождении (только для пространства ядра);
  • PAX_REFCOUNT — система автоматического освобождения неиспользуемых объектов в памяти, позволяет предотвратить атаки типа «Use-after-free (только для пространства ядра);
  • PAX_USERCOPY — защита от переполнения буфера путем сверки размера объекта (только для пространства ядра);
  • PAX_KERNEXEC — защита страниц памяти от исполнения (только для пространства ядра).

В Copperhead OS более строгие правила SELinux — системы разграничения прав доступа к файлам, системным вызовам и железу. К примеру, здесь нельзя выполнить код из временных каталогов (подключенных с помощью псевдоФС tmpfs), невозможно получить доступ к важным системным данным и информации о других процессах с помощью чтения файлов каталога /proc.

CopperheadOS включает в себя большое количество других ограничений. По умолчанию дефолтное приложение камеры не указывает в метаданных снимка место проведения съемки, а экран не отображает уведомления, которые могут раскрыть важную конфиденциальную информацию (В Андроид и iOS позволяют показ таких push-уведомлений, с опцией отключения).

Работающие в фоне приложения не могут получить доступ к буферу обмена (что влияет на функциональность некоторых нужных приложений из GooglePlay).

MAC-адрес всех сетевых интерфейсов рандомизируется по умолчанию.

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

Сам Chromium, на котором основывается WebView, включает в себя ряд ограничений и настроек, нацеленных на защиту от утечек информации: отключены исправление ошибок в адресной строке, предзагрузка веб-страниц, контекстный поиск, метрики и аудит гиперссылок. В качестве поисковой системы по умолчанию используется анонимный поиск DuckDuckGo.

Инструменты от Tor

Copperhead OS — это  всего лишь базовая часть прошивки. Поверх нее работают еще несколько инструментов: Orbot, orWall, F-Droid, My App List и Google Play, включенный в базовую поставку не столько по причине доступа к маркету приложений (его функции здесь выполняет магазин F-Droid), сколько по причине Signal,  который использует сервисы Google для получения push-уведомлений.

Два основных и важных компонента здесь — это конечно же orWall и Orbot. Первый — сборка Tor для Android, способная работать либо как локальный SOCKS-прокси, перенаправляющий  весь трафик в Tor, либо в режиме root, когда трафик заворачивается в Tor фаерволом Iptables, что позволяет избежать каких-либо утечек.

orbot инструкция
Нажмите и удерживайте кнопку включения

Однако по умолчанию прошивка не использует ни тот ни другой метод, а полагается на orWall, своего рода обертку для фаервола, которая дает возможность заворачивать трафик в Orbot выборочно, для каждого отдельного приложения. С помощью этого вы сможете запросто контролировать, кто будет ходить с помощью Tor, кто напрямую, а кому доступ в интернет будет запрещен вообще.

Инструмент OrWall полностью блокирует все интернет-соединения до тех пор, пока прошивка не будет окончательно загружена. Это позволяет избежать любых утечек данных в случаях, если вы намерены выходить в интернет исключительно через Tor или полностью заблокировать доступ в интернет не вызывающему доверия приложению.

Copperhead инструкция

My App List — это еще одно довольно интересное приложение в этой прошивке. Изначально оно создано как удобный способ сохранить список всех установленных через F-Droid маркет приложений, но разрабы Tor задействовали ее для быстрой установки рекомендуемых программ. Они заранее подготовили список приложений, который может пригодиться среднестатистическому пользователю, и загрузили его в My App List.

Copperhead OS

В списке My App List есть:

  • Менеджер файлов Amaze
  • XMPP-клиенты Сonversations и Xabber
  • Читалка книг  Cool Reader
  • VoIP-клиенты CSipSimple и Linphone
  • Браузер Mozilla Firefox
  • Почтовый клиент K-9 Mail
  • Twitter-клиент Twidere
  • Онлайн-карты OsmAnd
  • Медиапроигрыватель VLC

Установка Copperhead OS

На данный момент прошивка Copperhead OS доступна только для Nexus 5X и 6P, но ее установка существенно отличается от установки того же CyanogenMod или любой другой кастомной прошивки. На самом деле это просто набор скpиптов для Linux, который выкачивает последнюю версию CopperheadOS с официального сайта, скачивает дополнительное ПО, интегрирует его в прошивку, подписывает ее и устанавливает на устройство с помощью утилиты Fastboot.

По этой причине для установки прошивки вам понадобятся:

  • Дистрибутив Linux
  • Java JDK
  • OpenSSL
  • Утилиты Cpio, Git, g++, GCC
  • Установленные ADB и Fastboot

Установка Copperhead OS с помощью Ubuntu

$ sudo apt-get install android-tools-adb android-tools-fastboot
$ sudo apt-get install openjdk-7-jdk
$ sudo apt-get install build-essential git
$ sudo apt-get install libssl-dev

Кликайте сюда, если не можете скопировать команды.

Теперь нужно активировать на смартфоне отладку по USB. Сделать это можно в настройках:

Settings —> About Phone, 5 тапов по Build Number.

Далее:

Settings —> Developer Options —> Allow USB Debugging, а также Enable OEM unlock.

После этого подключаем устройство по USB и выполняем эту команду:

$ sudo adb devices

В ответ телефон должен вывести диалоговое окно с вопросом о доверии ПК, с ним конечно же надо согласиться.

Теперь необходимо скачать скрипты и запустить процесс прошивки:

Имейте ввиду! После этой операции все данные на устройстве будут удаленны!

$ git clone https://github.com/mikeperry-tor/mission-improbable/
$ cd mission-improbable
$ ./run_all.sh

Скрипт проведет вас через все этапы установки.

Заключение

Прошивка от создателей Tor — несомненно интересная идея. Используя ее правильным образом, вы сможете получить реально не отслеживаемый при помощи интернет-сети телефон.

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

На этом все. Всем удачи и информационной безопасности!

В статье использованы материалы сайта:
Хaкер, OpenWall, Copperhead.co

Совсем недавно мы провожали в последний путь любимую прошивку CyanogenMod. Было грустно хоронить Цианоген, даже не смотря на то, что на смену ей пришла Lineage OS, которая по идее должна продолжить правое дело Цианоген. Но недавно откуда не возьмись появилась прошивка Copperhead OS, которая обещает быть ни чем не хуже, с хорошим уровнем защиты и анонимности, ведь она от разработчиков всеми известной Tor. Итак, как вы поняли сегодня будет обзор Copperhead OS. Я расскажу о том, что такое Copperhead OS, как она работает и в каких случаях данная прошивка может вам понадобится. Кроме этого вы узнаете как ее правильно установить…

Оценка прошивки Copperhead OS

Наша оценка

В целом прошивка понравилась. Наша оценка - хорошо!

Оценка пользователей: 3.92 ( 10 оценок)

4 комментария

  1. Михаил

    Как узнать можно ли установить на мой телефон? У меня Meizu M2, есть ли гарантия, что если все сделаю по инструкции телефон не сломается?

    • max

      copperhead не встанет на meizu

    • Михамл

      Спасибо!

  2. Серж

    У меня выдает
    #Usage: ./run_all.sh [] []
    о чем это говорит и почему?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *