Компания
310,96
рейтинг
31 июля 2015 в 11:45

Разработка → Новые критические уязвимости в Android: В чем проблема, и как защититься



Исследователи информационной безопасности обнаружили ряд серьезных уязвимостей в одном из компонентов ядра мобильной ОС 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 — разбор его заданий мы публиковали на Хабре (некоторые посетители мероприятия получили сообщения о взломе своих устройств). Вот здесь представлена запись вебинара по данной теме.
Автор: @ptsecurity
Positive Technologies
рейтинг 310,96

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

  • –10
    Рубрика «свежая новость»
    • +10
      У нас в публикации более развернутый взгляд на ситуацию все же
      • +2
        Вы тогда заголовок поправьте, а то «Новые критические уязвимости в Android...» в первую очередь наводят на мысль о том, что это еще одна новая уязвимость.
        • 0
          Там есть пересечения, но не все уязвимости были описаны на Хабре, при этом они и правда новые
  • –7
    Слегка обсуждали тут: habrahabr.ru/post/263759 (подробностей было поменьше правда)
    • +12
      Ну в том посте вообще мало что ясно, какой-то рерайт на три абзаца
  • +3
    Специалисты Zimperium также рекомендуют пользователям Android обновить ОС до последней верси

    Беда в том, что производители в большинстве своем очень быстро забивают на обновление устройств. Так и будет большая часть из 950 млн потенциальных жертв ходить с огромной дырой в защите
    • +3
      Вот интересно, как так получилось, что ОС Windows и Linux для x86-платформы можно установить даже на железо пятилетней давности, не дожидаясь, пока производители сделают для нас специальную сборку, а в случае с ARM-платформами всё завязано на производителей?
      И почему две вышеупомянутых ОСи могут получать обновления и патчи без проблем, а Android только переустанавливать целиком? Полное отсутствие модульности?
      • 0
        Я не знаю, как 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, но быть уверенным в защищенности.
        • 0
          Покупайте нексусы. Или ставьте кастомные прошивки.
          • 0
            Нексусы для некоторых целей излишни + большие размеры.

            Я думаю, что если покупаешь девайс, то производитель и должен обеспечить его надежность. В сторонних прошивках могут быть вредоносные компоненты.
        • 0
          Ой… не ведитесь на эту защищенность. Если ничего не слышно особо про iOS — это не значит, что там сахар. Скорее всего Apple молча платит большие суммы денег за то, чтоб хакеры забыли о найденном.
          • +1
            Там хоть обновления приходят. А тут можно купить телефон на андроид и через полгода: «Сорри, мы прекратили выпуск обновлений для вашего устройства. Вы можете приобрести одно из наших новых устройств»

            Хотя у яблока много чего все равно нет.
            • 0
              Ну вот люди не понимают же, когда кричат «дайте опенсорс». Андроид дал им это и началось… Представьте, что если бы iOS была бы опенсорсная. Такие вот приколы, как с Андроидом — были бы тоже регулярно.
      • +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 имеют открытые исходники и чаще всего находятся прямо в дереве исходников самого ядра. Поэтому при изменениях в ядре делают изменения и в этих исходниках так, что они продолжают работать.

        Поэтому хотите «вечный» андроид — ищите производителя, который будет поставлять все ядерные драйверы к своим устройствам в исходном коде. Тогда есть большая вероятность что он или добровольцы смогут поддерживать эти драйверы в актуальном состоянии и у вас будет возможность запускать любую версию андроида на своём устройстве.
        • 0
          Дело не сколько в драйверах, сколько, во-первых, в отсутствии унификации (блин, да у нас все еще не просто универсального загрузчика-то нет, а нет даже стандарта, что и как грузить!), а во-вторых, в том, что не каждому производителю вообще под силу поддерживать конкретный SoC, т.к. это делают разработчики SoC. Производитель SoC не портирует новую версию Android под этот SoC — разработчики телефона не будут и заморачиваться.
      • 0
        Для установки патчей в Андроид не нужно переустанавливать систему целиком. Через OTA можно обновить любой компонент, что Google иногда и делает для nexus устройств.
        Каждый производитель устройств по сути собирает свою версию ОС на основе исходников из AOSP. Google не имеет никакого представления о том, что было сделано с исходниками перед тем как производитель собрал прошивку. Собственно по этому только производитель и может собрать обновление для распространения.
        Например рассмотрим обсуждаемую тут библиотеку stagefright. Это обычная Linux библиотека в виде so файла. Если бы Google собирал бинарники для всех устройств то не было бы никаких проблем распространить обновление через OTA. А по факту получается, что никто кроме производителя не знает в каком виде эта библиотека реально попала в прошивку.
        Я бы сказал, что проблема обновления Андроида — это в какой-то степени плата за его open source.
  • 0
    $1,337 — я понимаю, «элит» и все такое, но как то кисло выглядит, хоть и было отправлено до запуска bug bounty, могли бы и получше отблагодарить.
    • +7
      31,337
  • 0
    В конце статьи не хватает голосования.

    А что бы Вы сделали если бы нашли уязвимость?
    1. Сказали бы Google и получили за это 1.337 USD.
    2. Отдали бы Zerodium и 100.000 USD у вас в кармане.
    3. Никому не отдам…
    • +1
      И посчитать матожидание стоимость уязвимости
    • 0
      Не 100 000, а «до 100 000». Во сколько была бы ими реально оценена данная уязвимость, неизвестно.
  • +5
    Исследователи заявляют о том, что защититься от данной уязвимости можно с помощью специальных защитных приложений для мобильных устройств.
    Так как защититься то?
  • 0
    Кто там кричал про дырявость флеша и рвал майки на британский флаг?
    • 0
      Одно другому не мешает. Флэш — удивительно дырявая платформа, и это продолжается уже лет десять так.
      • 0
        Расскажите это тем, кто удаляет плагины и потом ругается, что без них компы заражаются

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

Самое читаемое Разработка