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

Каждая уязвимость проделывает брешь в системе безопасности, давая атакующей стороне возможность обходить традиционные средства защиты. Цифровая подпись приложений, репутационная модель, резидентный антивирусный мониторинг – всё это оказывается бесполезным, если используется эксплоит. Взгляните, к примеру, на демонстрацию использования уязвимости Stagefright.

Основным вектором атаки в настоящее время стали всевозможные мобильные устройства. Смартфоны, планшеты, фаблеты и прочие гаджеты интересны злоумышленникам по целому ряду причин:

  • они почти всё время подключены к интернету через Wi-Fi или мобильную сеть оператора;
  • мощные многоядерные конфигурации и постоянный доступ делают их идеальными платформами для майнинга биткоинов, DDoS-атак и других действий в составе ботнета;
  • пользователь с ними не расстаётся, поэтому они собирают максимально возможное количество персональных данных;
  • все собранные данные хранятся в файлах по известным типовым путям и связаны с одной учётной записью;
  • для полноценного использования гаджета требуется зарегистрировать аккаунт, взломав который можно получить доступ к данным пользователя сразу в нескольких сервисах;
  • к аккаунту часто привязаны банковские карты, а запрос подтверждения всех транзакций с ними приходит на то же (взломанное) устройство.

Центральный банк Российской Федерации оценивает общие потери за прошлый год от мошенничества с банковскими счетами на сумму 3,5 млрд руб. Большая часть инцидентов произошла с использованием троянов для мобильных ОС, нацеленных на кражу платёжных данных или имитацию банковских операций от имени пользователя. По данным «Лаборатории Касперского» в 2014 году их число увеличилось в девять раз. Предварительная оценка итогов 2015 года демонстрирует продолжающийся рост числа таких инцидентов.

Vulnerable_Android-m

Большинство встречающихся в диком виде троянов для мобильных ОС довольно примитивны. Они распространяются методом социального инжиниринга, маскируясь под обновления, антивирусы или популярные программы – например, flash-player. Заражение ими происходит исключительно из-за некомпетентности самих пользователей. Однако есть и другой класс вредоносных программ, внедрение которых происходит автоматически. Используя известные бреши или уязвимости нулевого дня, они скрыто проникают в систему и перехватывают управление над ней.

Каждая обнаруженная уязвимость фиксируется Национальным институтом стандартов и технологий. В процессе изучения она получает свой номер в базе MITRE (СVE-*). После выпуска патча все детали о ней становятся общедоступными. Проблема в том, что многие детально описанные уязвимости продолжают использовать и после выхода патчей – просто потому, что у разработчиков нет возможности оперативно доставлять их на все устройства сразу. Если уязвимость выявляется в компонентах ядра или популярных библиотеках, то она затрагивает сразу несколько операционных систем.

Развитие мобильных ОС.
Развитие мобильных ОС.

Особенно эта проблема актуальна для ОС Android, на основе которой каждый производитель создаёт свою уникальную сборку – с фирменной оболочкой и напичканную интегрированными приложениями. Аппаратная платформа в каждом случае тоже может быть любой, поэтому Google спешно латает дыры только в собственных устройствах серии Nexus с «голым Андроидом». Всего в базе насчитывается 138 уязвимостей.

Фрагмент списка известных уязвимостей в ОС Android (скриншот: cvedetails.com).
Фрагмент списка известных уязвимостей в ОС Android (скриншот: cvedetails.com).

По данным IDC доля ОС Android во втором квартале 2015 года составила 82,8%. Начиная с 2011 года это самая популярная мобильная операционка, поэтому её и атакуют чаще других. Быстрый выход новых версий с пакетами исправлений слабо улучшает ситуацию. После презентации новой прошивки по данным телеметрии Google долгое время продолжают преобладать старые.

Текущая доля версий ОС Android (изображение: developer.android.com).
Текущая доля версий ОС Android (изображение: developer.android.com).

Мониторинг на сайте AppBrain SDK показывает, что и среди разработчиков приложений для Android доминирует v.4.4 (KitKat) с показателем 41,2 %. Она была представлена ровно два года назад – в октябре 2013. Совокупная доля предыдущих версий 4.1 – 4.3 (Jelly Bean) занимает чуть меньше трети. Более свежие версии 5.0-5.1 (Lollipop) пока установлены лишь на пятую часть устройств, а самая новая – 6.0 (Marshmallow) и вовсе используется единицами (0,2 %).

Популярность Android SDK разных версий (по данным appbrain.com).
Популярность Android SDK разных версий (по данным appbrain.com).

Сейчас можно выделить восемь уязвимостей, которые продолжают активно эксплуатировать в атаках на ОС Android:

  1. Heartbleed (CVE-2014-0160, OpenSSL). О ней мы подробно писали в нескольких статьях;
  2. Stagefright (CVE-2015-1538, CVE-2015-1539, CVE-2015-3824, CVE-2015-3826, CVE-2015-3827, CVE-2015-3828 и CVE-2015-3829). Эта серия уязвимостей в мультимедийном-движке недавно стала ещё более актуальной.
  3. Shellshock или Bashdoor (CVE-2014-6271). Командная оболочка и парсер CGI-скриптов Bash выполняет без проверки команды, внедрённые в определение функции. Эта проблема тоже была подробно рассмотрена нами ранее.

Следующие уязвимости затрагивают преимущественно старые устройства (с Android 2.x), но в отдельных случаях могут использоваться и на более современных прошивках с Android 4.x.

  1. Serialization (CVE-2015-3825) – уязвимый класс сетрификатов OpenSSL X509;
  2. Futex / TowelRoot (CVE-2014-3153) – ошибка в подсистеме реализации семафоров и мьютексов;
  3. Keystore buffer (CVE-2014-3100) – переполнение буфера функции encode_key в Android 4.3;
  4. Fake ID (Google bug 13678484) – неправильная проверка цепочки сертификатов приложения в Android v.2.1 – 4.4.
  5. Master Key (CVE-2013-4787) – ошибка в системе валидации компонентов APK в Android младше 4.2.1;

Из средств выявления уязвимостей мы выбрали несколько бесплатных приложений с официального магазина Google Play. Каждое из них было проверено на смартфонах с разными версиями ОС Android. Результаты нашего исследования и комментарии экспертов читайте в следующей статье.