Этот год стал особенно урожайными на критические ошибки в ключевых компонентах операционных систем и популярных программах. Многие из них актуальны до сих пор, ставя под удар миллионы пользователей морально устаревших устройств, на которые так и не были доставлены обновления. В этой статье мы рассмотрим основные уязвимости ОС Android, а затем опишем способы их обнаружения самим пользователем.
Каждая уязвимость проделывает брешь в системе безопасности, давая атакующей стороне возможность обходить традиционные средства защиты. Цифровая подпись приложений, репутационная модель, резидентный антивирусный мониторинг – всё это оказывается бесполезным, если используется эксплоит. Взгляните, к примеру, на демонстрацию использования уязвимости Stagefright.
https://youtu.be/PxQc5gOHnKs
Основным вектором атаки в настоящее время стали всевозможные мобильные устройства. Смартфоны, планшеты, фаблеты и прочие гаджеты интересны злоумышленникам по целому ряду причин:
- они почти всё время подключены к интернету через Wi-Fi или мобильную сеть оператора;
- мощные многоядерные конфигурации и постоянный доступ делают их идеальными платформами для майнинга биткоинов, DDoS-атак и других действий в составе ботнета;
- пользователь с ними не расстаётся, поэтому они собирают максимально возможное количество персональных данных;
- все собранные данные хранятся в файлах по известным типовым путям и связаны с одной учётной записью;
- для полноценного использования гаджета требуется зарегистрировать аккаунт, взломав который можно получить доступ к данным пользователя сразу в нескольких сервисах;
- к аккаунту часто привязаны банковские карты, а запрос подтверждения всех транзакций с ними приходит на то же (взломанное) устройство.
Центральный банк Российской Федерации оценивает общие потери за прошлый год от мошенничества с банковскими счетами на сумму 3,5 млрд руб. Большая часть инцидентов произошла с использованием троянов для мобильных ОС, нацеленных на кражу платёжных данных или имитацию банковских операций от имени пользователя. По данным «Лаборатории Касперского» в 2014 году их число увеличилось в девять раз. Предварительная оценка итогов 2015 года демонстрирует продолжающийся рост числа таких инцидентов.
Большинство встречающихся в диком виде троянов для мобильных ОС довольно примитивны. Они распространяются методом социального инжиниринга, маскируясь под обновления, антивирусы или популярные программы – например, flash-player. Заражение ими происходит исключительно из-за некомпетентности самих пользователей. Однако есть и другой класс вредоносных программ, внедрение которых происходит автоматически. Используя известные бреши или уязвимости нулевого дня, они скрыто проникают в систему и перехватывают управление над ней.
Каждая обнаруженная уязвимость фиксируется Национальным институтом стандартов и технологий. В процессе изучения она получает свой номер в базе MITRE (СVE-*). После выпуска патча все детали о ней становятся общедоступными. Проблема в том, что многие детально описанные уязвимости продолжают использовать и после выхода патчей – просто потому, что у разработчиков нет возможности оперативно доставлять их на все устройства сразу. Если уязвимость выявляется в компонентах ядра или популярных библиотеках, то она затрагивает сразу несколько операционных систем.
Особенно эта проблема актуальна для ОС Android, на основе которой каждый производитель создаёт свою уникальную сборку – с фирменной оболочкой и напичканную интегрированными приложениями. Аппаратная платформа в каждом случае тоже может быть любой, поэтому Google спешно латает дыры только в собственных устройствах серии Nexus с «голым Андроидом». Всего в базе насчитывается 138 уязвимостей.
По данным IDC доля ОС Android во втором квартале 2015 года составила 82,8%. Начиная с 2011 года это самая популярная мобильная операционка, поэтому её и атакуют чаще других. Быстрый выход новых версий с пакетами исправлений слабо улучшает ситуацию. После презентации новой прошивки по данным телеметрии Google долгое время продолжают преобладать старые.
Мониторинг на сайте 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:
- Heartbleed (CVE-2014-0160, OpenSSL). О ней мы подробно писали в нескольких статьях;
- Stagefright (CVE-2015-1538, CVE-2015-1539, CVE-2015-3824, CVE-2015-3826, CVE-2015-3827, CVE-2015-3828 и CVE-2015-3829). Эта серия уязвимостей в мультимедийном-движке недавно стала ещё более актуальной.
- Shellshock или Bashdoor (CVE-2014-6271). Командная оболочка и парсер CGI-скриптов Bash выполняет без проверки команды, внедрённые в определение функции. Эта проблема тоже была подробно рассмотрена нами ранее.
Следующие уязвимости затрагивают преимущественно старые устройства (с Android 2.x), но в отдельных случаях могут использоваться и на более современных прошивках с Android 4.x.
- Serialization (CVE-2015-3825) – уязвимый класс сетрификатов OpenSSL X509;
- Futex / TowelRoot (CVE-2014-3153) – ошибка в подсистеме реализации семафоров и мьютексов;
- Keystore buffer (CVE-2014-3100) – переполнение буфера функции encode_key в Android 4.3;
- Fake ID (Google bug 13678484) – неправильная проверка цепочки сертификатов приложения в Android v.2.1 – 4.4.
- Master Key (CVE-2013-4787) — ошибка в системе валидации компонентов APK в Android младше 4.2.1;
Из средств выявления уязвимостей мы выбрали несколько бесплатных приложений с официального магазина Google Play. Каждое из них было проверено на смартфонах с разными версиями ОС Android. Результаты нашего исследования и комментарии экспертов читайте в следующей статье.