Весной 2015 года исследователи обнаружили ряд критических уязвимостей в компоненте ядра мобильной ОС Android под названием Stagefright (библиотека для работы с файлами мультимедиа, например PDF). Ошибки безопасности позволяли злоумышленникамии удаленно получать доступ к смартфону, например, с помощью отправки зловредного MMS-сообщения — для проведения подобной атаки нужно знать лишь номер телефона жертвы.



На этой неделе был опубликован код эксплойта, использующий ошибки безопасности в компоненте Stagefright. Эти уязвимости были обнаружены исследователями компании Zimperium, которая в своем блоге описала атаку с помощью специально созданного эксплойта.

Исследователи передали разработчикам ОС информацию об уязвимостиях в апреле и мае 2015 года. С тех пор специалисты Google работали над исправлениями безопасности, которые затем передавались партнерам (в том числе производителям смартфонов), однако решить проблему до конца пока не удалось.

К примеру, выпущенные патчи для Hangouts и Messenger блокируют лишь описанную в блоге Zimperium атаку с помощью зловредного MMS-сообщения, оставляя возможности для других сценариев взлома смартфонов — например, с помощью ссылки, ведущий на сайт, содержащий эксплойт. Кроме того, некоторые патчи были столь некачественными, что злоумышленники все равно могли эксплуатировать уязвимости даже после их установки (например, CVE-2015-3864). По данным исследователей безопасности, даже устройство Nexus 5 со всеми доступными в данный момент патчами по прежнему уязвимо к атакам.

Сложности с исправлением ошибок безопасности побудили Google попросить исследователей из Zimperium отложить публикацию кода proof-of-concet-эксплойта, однако 9 сентября компания все же разместила его в своем блоге.

Python-скрипт генерирует медиафайл в формате MP4, эксплуатирующий уязвимость CVE-2015-1538 и предоставляющий атакующему доступ к устройству. Затем злоумышленник может удаленно делать фотографии или прослушивать аудио через микрофон смартфона. Из-за внедрения новых механизмов защиты, эксплойт не работает для новой версии Android 5.0.

Исследователи Zimperium стали не единственными, кто обнаружил уязвимости в компоненте Stagefright. 36-летний исследователь из Москвы Евгений Легеров также обнаружил две уязвимости нулевого дня в этом компоненте. Google выпустила ряд патчей для партнеров (один, два, три), исправляющих найденные Легеровым уязвимости.

На конференциях по информационной безопасности исследователи Positive Technologies также демонстрировали результаты исследования защищенности 4G-коммуникаций и SIM-карт (их тоже можно взломать).

Во время прошедшего в мае в Москве форума Positive Hack Days также проводился конкурс по взлому мобильной связи MiTM Mobile — разбор его заданий мы публиковали на Хабре (некоторые посетители мероприятия получили сообщения о взломе своих устройств). По ссылке представлена запись вебинара по данной теме.

Комментарии (5)


  1. Disen
    10.09.2015 12:57
    +2

    Йо-хо-хо! Становится как-то неуютно, когда понимашь, что теперь ломануть твой смартфон сможет любой скрипт-кидди.


  1. kay
    10.09.2015 17:49

    Хочу наконец отрутовать свой телефон. Сгенерировал файл. Как мне теперь его запустить? MMS на телефоне нет, видео через Hangout не отправляется. Прямиком на телефоне видео не открывается. Каккие еще способы?

    UPD: вижу, что exploit написан для Android 4.0.4. Ок, придётся еще ждать…


    1. orcy
      10.09.2015 20:21

      Не вникал в суть уязвимости, но где-то с Android 4.3 гугл включил enforced режим для SELinux и делал настройку политик таким образом чтобы уязвимости в тех или иных системных компонентах получали бы ограниченный доступ. Видимо это тот случай когда их идея оказалась верной.


  1. and7ey
    10.09.2015 22:52

    Как это работает? Как злоумышленник получает доступ к камере телефона?
    При запуске скрипта генерации видеофайла надо параметры указать —

    parser.add_argument(‘-c’, ‘–connectback-host’, dest=’cbhost’, default=’31.3.3.7?)
    parser.add_argument(‘-p’, ‘–connectback-port’, dest=’cbport’, type=int, default=12345)
    parser.add_argument(‘-s’, ‘–spray-address’, dest=’spray_addr’, type=addr, default=None)
    parser.add_argument(‘-r’, ‘–rop-pivot’, dest=’rop_pivot’, type=addr, default=None)
    parser.add_argument(‘-o’, ‘–output-file’, dest=’output_file’, default=’cve-2015-1538-1.mp4?)

    Что на хосте-то должно находиться?


    1. kay
      11.09.2015 10:07

      nc -lp 12345