Исследователи информационной безопасности обнаружили ряд серьезных уязвимостей в одном из компонентов ядра мобильной ОС Android под названием Stagefright (библиотека для работы с файлами мультимедиа, например PDF). Первым о проблемах в компоненте Stagefright заявил исследователь из компании Zimperium Labs Джошуа Дрейк (Joshua J. Drake). Кроме того, об обнаружении серьезной уязвимости в Android заявила компания TrendMicro.

Stagefright


Исследователь опубликовал эксплойт, демонстрирующий атаку с помощью зловредного MMS-сообщения — для ее осуществления злоумышленнику нужно знать лишь номер телефона жертвы. При этом, пользователю не нужно даже осуществлять никаких действий с сообщением (открывать файл, кликать по ссылкам и т.п.), вредоносный код исполняется автоматически.



Как сообщается в посте в блоге ZImperium, хакеры могут даже удалить само сообщение до того, как пользватель его увидит (в таком случае смартфон покажет только оповещение о входящем сообщении).



Список уязвимых устройств

По словам Дрейка, несмотря на наличие в Android специальной песочницы безопасности, которая блокирует для большинства приложений возможность доступа к пользовательским данным других программ, возможно создание эксплойтов, которые получают доступ к аудио и видео-потокам смартфона, а также к внутреннему хранилищу.

Уязвимости подвержены телефоны под управлением Android от версии 2.2 до версии 5.1 (по оценкам СМИ, всего уязвимы до 950 миллионов смартфонов и планшетов по всему миру).

Как пишет издание Ars Technica, уязвимость Stagefright также затрагивает браузер Firefox на всех платформах, кроме Linux (включая Firefox OS). Редакция связалась с Джошуа Дрейком, который подтвердил наличие проблем:

Если вы установите Firefox 38, то через Firefox провести на вас атаку больше не удастся. Однако, если вы загрузите зловредное видео через браузер с тегом <video width="300" height="150">, а не станете его проигрывать, оно все равно загрузит вредоносный Android-код.

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

Джошуа Дрейк передал информацию об уязвимости в Google (вместе с возможными патчами), и компания выплатила ему вознаграждение в размере $1,337 (оповещение было отправлено до официально запуска bug bounty-программы для Android). Если бы информация об уязвимости была передана продавцам эксплойтов, то исследователь мог бы рассчитывать на сумму в районе $100 тысяч — компания Zerodium в своем Twitter заявила, что готова платить за подобные уязвимости именно столько:



Пока что патчи получили только Silent Circle Blackphone и устройства с прошивкой Cyanogen, обнаруженные Евгением Легеровым уязвимости также добавлены в набор эксплойтов VulnDisco (доступ к нему есть у правительственных и коммерческих организаций, использующих инструмент для тестирования на проникновение Canvas). Легеров сообщил журналистам, что его команда предоставляет заказчикам эксплойтов для внутреннего тестирования, поэтому их функциональность урезана и не позволяет проводить полномасштабные реальные атаки.

Специалисты Zimperium также рекомендуют пользователям Android обновить ОС до последней версии (хотя и указывают на тот факт, что неизвестно, когда появится патч, и будет ли он для более старых устройств — для них рекомендуется устанавливать прошивку Cyanogen), отключить автоматическую загрузку MMS (для Hangouts и «дефолтного» приложения для SMS).

Атака на медиасервер


Помимо уязвимости Stagefright, об обнаружении серьезной ошибки безопасности в Android (версии, начиная с 4.3 Jelly Bean до 5.1.1 Lollipop, то есть более половины всех Android-устройств в мире) заявила компания TrendMicro. Экслуатация этой уязвимости возможна с помощью установки на устройство вредоносного приложения (вызывает падение операционной системы) или с помощью перенаправления пользователя на подготовленный злоумышленниками сайт.



Уязвимость обнаружена в сервисе медиасервера, который Android использует для индексации медиафайлов, хранимых на устройстве. Сервис не может корректно обработать зловредное видео (обычно имеет расширение .mkv) с помощью контейнера Matroska, что приводит к падению всей операционной системы.TrendMicro опубликовала в блоге код файла frameworks/av/media/libstagefright/matroska/MatroskaExtractor.cpp, демонстрирующий ошибку:

865 size_t offset = 1;
866 size_t len1 = 0;
867 while (offset < codecPrivateSize && codecPrivate[offset] == 0xff) {//codecPrivate is controlled by the mkv file
868 len1 += 0xff;
869 ++offset;
870 }
871 if (offset >= codecPrivateSize) {
872 return ERROR_MALFORMED;
873 }
874 len1 += codecPrivate[offset++];
875
876 size_t len2 = 0;
877 while (offset < codecPrivateSize && codecPrivate[offset] == 0xff) {
878 len2 += 0xff;
879 ++offset;
880 }
881 if (offset >= codecPrivateSize) {
882 return ERROR_MALFORMED;
883 }
884 len2 += codecPrivate[offset++];
885
886 if (codecPrivateSize < offset + len1 + len2) {//len1 or len2 maybe 0xffffffff, then integer overflow happened
887 return ERROR_MALFORMED;
888 }
889
890 if (codecPrivate[offset] != 0x01) {
891 return ERROR_MALFORMED;
892 }
893 meta->setData(kKeyVorbisInfo, 0, &codecPrivate[offset], len1);//crash in here

Сотрудники TrendMicro создали специальное приложение, которое использует эту уязвимость. Видео ниже демонстрирует атаку на смартфон с его помощью:


Удалось им воспроизвести и атаку с помощью URL. Для этого был создан специальный сайт, в HTML-код которого встроено зловредное видео. Во время загрузки сайта браузере Chrome наблюдался тот же эффект:



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

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

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

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


  1. crmMaster
    31.07.2015 11:49
    -10

    Рубрика «свежая новость»


    1. ptsecurity Автор
      31.07.2015 12:03
      +10

      У нас в публикации более развернутый взгляд на ситуацию все же


      1. dmbreaker
        31.07.2015 15:19
        +2

        Вы тогда заголовок поправьте, а то «Новые критические уязвимости в Android...» в первую очередь наводят на мысль о том, что это еще одна новая уязвимость.


        1. alexlash
          31.07.2015 15:25

          Там есть пересечения, но не все уязвимости были описаны на Хабре, при этом они и правда новые


  1. priv8v
    31.07.2015 11:54
    -7

    Слегка обсуждали тут: habrahabr.ru/post/263759 (подробностей было поменьше правда)


    1. NatalyM
      31.07.2015 11:56
      +12

      Ну в том посте вообще мало что ясно, какой-то рерайт на три абзаца


  1. Pasha4ur
    31.07.2015 11:56
    +3

    Специалисты Zimperium также рекомендуют пользователям Android обновить ОС до последней верси

    Беда в том, что производители в большинстве своем очень быстро забивают на обновление устройств. Так и будет большая часть из 950 млн потенциальных жертв ходить с огромной дырой в защите


    1. Alexey2005
      31.07.2015 17:53
      +3

      Вот интересно, как так получилось, что ОС Windows и Linux для x86-платформы можно установить даже на железо пятилетней давности, не дожидаясь, пока производители сделают для нас специальную сборку, а в случае с ARM-платформами всё завязано на производителей?
      И почему две вышеупомянутых ОСи могут получать обновления и патчи без проблем, а Android только переустанавливать целиком? Полное отсутствие модульности?


      1. Pasha4ur
        31.07.2015 18:18

        Я не знаю, как google такое допустил. Это просто epic fail

        Но факт, что Android движется по пути Symbian, когда девайсы очень быстро становились не поддерживаемыми производителями.

        Например, я в прошлом году купил Планшет Pipo u8 (4 ядра, 2 гб) для чтения. На момент покупки был 4.4.2. Через несколько месяцев вышли 4.4.4, а потом и 5. Производитель даже до 4.4.4 не обновил. Хотя планшет был типа топовый в линейке 7,9".

        Имхо, я нахожу все меньше смысла в покупке Android с таким подходом. Лучше уже переплатить (usb-otg, карты памяти) за урезанный iPad, но быть уверенным в защищенности.


        1. REU
          31.07.2015 22:54

          Покупайте нексусы. Или ставьте кастомные прошивки.


          1. Pasha4ur
            31.07.2015 23:41

            Нексусы для некоторых целей излишни + большие размеры.

            Я думаю, что если покупаешь девайс, то производитель и должен обеспечить его надежность. В сторонних прошивках могут быть вредоносные компоненты.


        1. TheRabbitFlash
          01.08.2015 15:33

          Ой… не ведитесь на эту защищенность. Если ничего не слышно особо про iOS — это не значит, что там сахар. Скорее всего Apple молча платит большие суммы денег за то, чтоб хакеры забыли о найденном.


          1. Pasha4ur
            01.08.2015 18:08
            +1

            Там хоть обновления приходят. А тут можно купить телефон на андроид и через полгода: «Сорри, мы прекратили выпуск обновлений для вашего устройства. Вы можете приобрести одно из наших новых устройств»

            Хотя у яблока много чего все равно нет.


            1. TheRabbitFlash
              01.08.2015 20:50

              Ну вот люди не понимают же, когда кричат «дайте опенсорс». Андроид дал им это и началось… Представьте, что если бы iOS была бы опенсорсная. Такие вот приколы, как с Андроидом — были бы тоже регулярно.


      1. vsb
        01.08.2015 19:12
        +2

        ОС Windows и Linux установить на произвольное железо пятилетней давности не получится. Получится установить только на то железо, для которого производители или кто-то ещё написал драйверы.

        В случае Windows драйверы есть практически на любые потребительские устройства, понятно — почему.

        В случае Linux ситуация с драйверами уже не такая прекрасная, но в целом для линукса написано множество драйверов, и очень многие устройства будут работать. Но только потому, что добровольцы или изготовитель написали драйверы.

        Также надо понимать, что в случае персонального компьютера изготовитель компонентов это одно лицо, а сборщик компьютера это другое лицо (зачастую сам пользователь).

        В случае Android (надо заметить, что под капотом у него тот же Linux) ситуация в корне противоположная. Во-первых устройство продаётся целиком, а не по компонентам. Поэтому драйвер для вашей фотокамеры её изготовитель вам не даст. Он его даст специалистам из Samsung, например. Которые его (и другие драйверы) упакуют в дистрибутив и вы его скачаете в виде обновления.

        Во-вторых (тут уже речь пойдёт про Linux vs Windows) в Linux нет стабильного ядерного API. Это значит, что если для устройства были написаны драйверы для версии ядра 3.2, то на ядре 3.0 или 3.3 они могут не заработать. Т.е. драйверы в Linux жёстко привязаны к конкретному ядру. И версии Android так же привязаны к конкретному ядру. Соответственно вам надо ждать, пока ваш производитель соизволит обновить все драйверы под новую версию андроида. А если ему эти драйверы дают без исходников и компания-производитель любого компонента в вашем телефоне перестала выпускать новые драйверы, то у вашего производителя просто нет никаких вариантов дать вам новую мажорную версию андроида.

        В Windows ядерное API в целом постабильней, хотя чудес, конечно, не бывает и в Windows 10 ваш драйвер с Windows 2000 может и не запуститься.

        В случае персональных компьютеров большинство драйверов под Linux имеют открытые исходники и чаще всего находятся прямо в дереве исходников самого ядра. Поэтому при изменениях в ядре делают изменения и в этих исходниках так, что они продолжают работать.

        Поэтому хотите «вечный» андроид — ищите производителя, который будет поставлять все ядерные драйверы к своим устройствам в исходном коде. Тогда есть большая вероятность что он или добровольцы смогут поддерживать эти драйверы в актуальном состоянии и у вас будет возможность запускать любую версию андроида на своём устройстве.


        1. ValdikSS
          02.08.2015 20:03

          Дело не сколько в драйверах, сколько, во-первых, в отсутствии унификации (блин, да у нас все еще не просто универсального загрузчика-то нет, а нет даже стандарта, что и как грузить!), а во-вторых, в том, что не каждому производителю вообще под силу поддерживать конкретный SoC, т.к. это делают разработчики SoC. Производитель SoC не портирует новую версию Android под этот SoC — разработчики телефона не будут и заморачиваться.


      1. Zuy
        01.08.2015 20:36

        Для установки патчей в Андроид не нужно переустанавливать систему целиком. Через OTA можно обновить любой компонент, что Google иногда и делает для nexus устройств.
        Каждый производитель устройств по сути собирает свою версию ОС на основе исходников из AOSP. Google не имеет никакого представления о том, что было сделано с исходниками перед тем как производитель собрал прошивку. Собственно по этому только производитель и может собрать обновление для распространения.
        Например рассмотрим обсуждаемую тут библиотеку stagefright. Это обычная Linux библиотека в виде so файла. Если бы Google собирал бинарники для всех устройств то не было бы никаких проблем распространить обновление через OTA. А по факту получается, что никто кроме производителя не знает в каком виде эта библиотека реально попала в прошивку.
        Я бы сказал, что проблема обновления Андроида — это в какой-то степени плата за его open source.


  1. Sergiy
    31.07.2015 12:10

    $1,337 — я понимаю, «элит» и все такое, но как то кисло выглядит, хоть и было отправлено до запуска bug bounty, могли бы и получше отблагодарить.


    1. REU
      31.07.2015 12:31
      +7

      31,337


      1. willson
        31.07.2015 16:56
        +1

        Leet же


  1. Solovej
    31.07.2015 19:58

    В конце статьи не хватает голосования.

    А что бы Вы сделали если бы нашли уязвимость?
    1. Сказали бы Google и получили за это 1.337 USD.
    2. Отдали бы Zerodium и 100.000 USD у вас в кармане.
    3. Никому не отдам…


    1. 0leGG
      31.07.2015 23:18
      +1

      И посчитать матожидание стоимость уязвимости


    1. FireStorm
      02.08.2015 12:36

      Не 100 000, а «до 100 000». Во сколько была бы ими реально оценена данная уязвимость, неизвестно.


  1. ForestQ
    01.08.2015 10:28
    +5

    Исследователи заявляют о том, что защититься от данной уязвимости можно с помощью специальных защитных приложений для мобильных устройств.
    Так как защититься то?


  1. TheRabbitFlash
    01.08.2015 15:39

    Кто там кричал про дырявость флеша и рвал майки на британский флаг?


    1. mtp
      15.08.2015 15:58

      Одно другому не мешает. Флэш — удивительно дырявая платформа, и это продолжается уже лет десять так.


      1. TheRabbitFlash
        15.08.2015 16:18

        Расскажите это тем, кто удаляет плагины и потом ругается, что без них компы заражаются