Главная » Мобильный шпионаж » Защита » Защита информации » Безопасность Андроид: Обзор инструментов безопасности Android 5.0 Lollipop

Безопасность Андроид: Обзор инструментов безопасности Android 5.0 Lollipop

Безопасность Андроид 5.0

Безопасность Android

Lollipop — самое значительное обновление Android со времен Ice Cream Sandwitch. Программисты Google переработали многие компоненты системы, полностью изменили интерфейс, добавили так давно ожидаемые функции из кастомных прошивок и версий системы разных производителей. Но едва ли не наибольшее количество изменений компания внесла в компоненты системы, отвечающие за безопасность смартфона и пользовательских данных.

Безопасность Android: История

Для Google безопасность Android всегда играла далеко не последнюю роль. С самых первых версий Android был снабжен набором мощных средств защиты, среди которых можно отметить сандбоксинг приложений, систему разграничения полномочий, единый RPC-механизм для всех приложений и системы (Binder), язык программирования с проверкой границ буферов, контролируемую среду исполнения (dalvik) и, конечно же, повсеместное использование цифровых подписей (в том числе для исполняемого кода).

Безопасность Android 5.0 Lollipop
Безопасность Android 5.0 Lollipop

С каждым новым релизом механизмы безопасности дорабатывались и расширялись. Сначала Google занялась проблемами переполнения буфера и интегрировала наработки проекта OpenBSD в свою системную библиотеку Bionic (реализации функций dmalloc и calloc, Android 1.5), затем добавила поддержку бита No execute (NX) в 2.3, модифицировала систему сборки исходников для поддержки опций компилятора -fstack-protector и Wformat-security -Werror=format-security (защита от срыва стека и ошибок форматирования строк).

В версии 3.0 появилась встроенная функция шифрования всех пользовательских данных, основанная на проверенном годами и сотнями тысяч пользователей модуле Linux-ядра dm-crypt.

В Android 4.0 — так давно ожидаемый в корпоративном секторе API KeyChain, позволяющий устанавливать в систему и использовать сторонние цифровые сертификаты.

В 4.1 была интегрирована функция шифрования установленных приложений (в первую очередь для защиты от копирования) и поддержка хардварного шифрования с помощью HAL-библиотеки keymaster (в зависимости от производителя она может использовать тот или иной механизм шифрования, например M-Shield в чипах серии ОМАР4, на котором базировался Galaxy Nexus).

Шифрование андроид
Включаем шифрование данных                          Выбираем пользователя

В феврале 2012 года Google переключилась на борьбу с вирусами и создала сервис онлайн-проверки приложений Bouncer, который запускал каждое публикуемое в Google Play приложение в эмуляторе и прогонял через многочисленные тесты, выявляя подозрительное поведение.

В ноябре того же года был запущен сервис онлайн-проверки программ на вирусы прямо на устройстве пользователя. Изначально он работал только на 4.2, но к июлю 2013-го был интегрирован в пакет Google Services и стал доступен для всех устройств от 2.3 и выше.

Начиная с апреля 2014-го проверка выполняется не только на этапе установки приложения, но и периодически для всего установленного софта. Для борьбы с SMS-троянами в Android 4.2 была интегрирована функция принудительного подтверждения отправки СМС на короткие номера.

Другим новшеством Android 4.2 стала интеграция в ОС подсистемы мандатного контроля доступа SELinux, которая изначально работала исключительно в «разрешающем режиме» (permissive mode), а в 4.4 была переведена в режим enforcing, но с использованием всего нескольких контекстов безопасности для низкоуровневых компонентов системы, что не слишком повышало защищенность. В качестве дополнительной меры в 4.3 был запрещен запуск Setuid бинарников из каталога /system и задействована полномочий (capabilities) ядра Linux для системных компонентов.

В целом за шесть лет развития Android Google проделала серьезную работу по улучшению общей безопасности системы, не скатившись при этом до уровня Apple с ее методом тотальной блокировки всего и вся. Операционная система осталась гибкой, полностью подчиненной пользователю, но при этом достаточно безопасной для того, чтобы не возникало необходимости установки антивирусов и «включения режима параноика».

Тем не менее оказалось, что планы Google простираются гораздо дальше того, что уже сделано. Android 5.0 включает в себя столько security specific новшеств, что дальше, кажется, уже некуда. Но начнем с двух главных героев новостей: шифрования, которое заставляет девайсы тормозить после обновления до 5.0, и SELinux, который ломает root.

шифрование данных андроид
Включаем шифрование данных

Шифрование по умолчанию

В очередной раз следуя нога в ногу за Apple, Google внедряет в Android функциональность, которая совсем недавно появилась в iOS. На этот раз речь идет о шифровании свежекупленного устройства — начиная с Lollipop, все пользовательские настройки и данные в каталоге /data, а вместе с ними и внутренняя (эмулируемая) карта памяти будут шифроваться в режиме реального времени без ведома пользователя.

На практике это означает только то, что та самая функция шифрования из 3.0 теперь будет включена по умолчанию, но с двумя важными оговорками:

  • для защиты ключа шифрования (Master Key) будет использован случайно сгенерированный ключ вместо ключа, полученного из PIN-кода экрана блокировки;
  • этот случайный ключ (Key Encryption Key, КЕК) теперь может храниться в области памяти, защищенной с помощью реализованного в процессоре механизма Trusted Execution Environment (l ЕЕ), такого, например, как Qualcomm Secure Execution Environment.

Другими словами, возможность расшифровки данных теперь доступна только одному небольшому компоненту ОС, а именно HAL-библиотеке masterkey, работающей с ТЕЕ. Ни пользователь, ни другие части системы не смогут получить ключ шифрования в ее обход, так же как это не получится сделать человеку, который попытается снять дамп памяти напрямую с чипов NAND.

Продолжение статьи на следующей странице.

  1. Джеймс Бонд

    Спасибо за статью, очень полезная и нужная информация для всех.

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

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