Специалисты американо-израильской фирмы Zimperium обнаружили уязвимости в библиотеке мультимедиа-движка Stagefright, которые затрагивают около миллиарда устройств под управлением ОС Android. Все их можно удалённо взломать, если передать злонамеренно изменённый мультимедийный контент. Атакующий способен внедрить его в документы или веб-страницы, но самый опасный сценарий вообще не зависит от действий пользователя.
Открытый исходный код не даёт гарантий безопасности сам по себе. Это лишь техническая возможность проверить его при желании, но мотивация здесь обратно пропорциональна объёму. Исходный код проекта Android Open Source (AOSP) занимает десятки гигабайт. Даже при наличии профессионального интереса эксперты успевают проанализировать менее одного процента до того, как версия станет устаревшей. Поэтому глубокий анализ выполняется только для ключевых компонентов. Обычно это встроенные сервисы, криптографические средства, браузер и файловый менеджер. Однако порой серьёзные уязвимости находятся совсем в другом месте.
Вице-президент Zimperium zLabs Джошуа Дрейк (Joshua Drake) обнаружил сразу семь критических ошибок в Stagefright – библиотеке, которая обрабатывает несколько популярных медиа-форматов. Поскольку обработка мультимедиа требует высокой скорости, Stagefright реализована на C ++. Этот язык позволяет использовать прямые инструкции для работы с памятью, в отличие от виртуализированной модели Java. Как следствие, при возникновении ошибки во входных данных, программа на C++ может привести к их попаданию в другие области памяти в обход «песочницы» Java и других систем разграничения доступа.
На сегодня как минимум перечисленные уязвимости позволяют выполнить такой сценарий атаки. Это CVE-2015-1538, CVE-2015-1539, CVE-2015-3824, CVE-2015-3826, CVE-2015-3827, CVE-2015-3828 и CVE-2015-3829. Все они позволяют осуществить удаленное выполнение произвольного кода и повысить привилегии, получив доступ к фронтальной и тыловой камере, микрофону, а также возможность выполнять чтение и запись на карту памяти. Анализ исходного кода продолжается, и он наверняка таит множество других сюрпризов.
Опасность здесь в том, что вредоносный код может быть доставлен на любой смартфон или планшет под управлением ОС Android не только традиционными средствами из арсенала spear-fishing, но и через сотовую сеть оператора в обход антивирусных программ. Для этого требуется знать только номер телефона, а квалификация жертвы может быть любой. При массовой рассылке уязвимы оказываются абсолютно все, включая самих экспертов по безопасности и людей, скрывающих свой номер. Это редкий случай, когда от владельца смартфона почти ничего не зависит. Просто в какой-то момент его смартфон оказывается протроянен, получив модифицированное MMS-сообщение. Адресату даже не требуется открывать его.
Получив контроль над устройством, вредоносный код даже может удалить присланное MMS-сообщение, таким образом заметая следы. Если это произойдёт в момент, когда владелец не смотрит на экран смартфона, то он не увидит никаких признаков подозрительной активности.
Проблема усугубляется сразу несколькими факторами. Во-первых, Stagefright – это компонент встроенного сервиса, запускаемый с правами системы. Во-вторых, он крайне распространён. Найденные ошибки затрагивают помимо ОС Android разных поколений и другие программы, использующих уязвимую библиотеку. Например, они касаются также браузера Firefox (на всех платформах, кроме Linux) до версии 38. В-третьих, многие операторы сотовой связи автоматически подключают бесплатную услугу приёма MMS. Настройки высылаются при первой регистрации SIM-карты в сети. В-четвёртых, как разработчик ОС Android, Google не имеет технической возможности оперативно распространить исправления найденных ошибок.
Пока срочное латание дыр предпринимается только для последних аппаратов серии Nexus. К чести Google, компания сразу отреагировала на уведомление Zimperium. Совместными усилиями первый патч для Nexus 6 был готов через 48 часов, остальные появятся в ближайшее время.
Дрейк называет обнаруженную уязвимость самой серьёзной за всё время существования ОС «Android». По масштабам она превосходит даже критическую уязвимость во встроенном браузере, которую в начале прошлого года обнаружил сотрудник фирмы Rapid7. Её можно сравнить, скорее, с эксплоитами для командного процессора Bash или протокола HTTPS – Heartbleed, FREAK и LogJam.
Практически все производители смартфонов и планшетов используют собственные прошивки, а их обновление выполняют самостоятельно. Часто вариант «по воздуху» (OTA) не работает в определённом регионе, и пользователям приходится вручную скачивать прошивки, отслеживая их появление на сайте производителя. Новую версию с исправлениями критических уязвимостей можно вовсе не дождаться для морально устаревших моделей, поддержка которых прекращена по маркетинговым причинам.
Подробности исследования будут представлены в Лас-Вегасе: 5 августа на конференции Black Hat и 7 августа – на DEF CON 23. Пока лишь сообщается, что под удар попадают 95% владельцев всех гаджетов с ОС Android, начиная с версии 2.2. Устройства с Android 4.4 – 5.1.1 также в зоне риска, но технически реализовать на них описанный сценарий будет немного сложнее. Защищёнными оказываются разве что пользователи SilentCircle Blackphone с PrivatOS версии 1.1.7, но у них хватает своих специфических проблем. Единственный способ противостоять найденным угрозам – отключить доставку MMS в настройках своего тарифного плана или сделать её невозможной иначе до установки официального патча.