Пользователь
3,3
рейтинг
1 марта 2013 в 19:53

Разработка → Новая уязвимость нулевого дня в браузерных апплетах Java



Сегодня в сети появилась абсолютно новая уязвимость нулевого дня в Java, которая уже активно используется. Уязвимость была обнаружена фирмой FireEye посредством их технологии Malware Protection Cloud (MPC).

В отличие от других распространенных уязвимостей Java, где менеджер безопасности обходится простым путем, здесь используется произвольная запись и чтение памяти процесса виртуальной машины. После срабатывания уязвимости экслойт ищет адрес памяти, в котором содержится информация о внутренней структуре виртуальной машины, в том числе о статусе менеджера безопасности, а после перезаписывает в эту часть памяти ноль. Затем происходит загрузка Win32/McRat (Trojan-Dropper.Win32.Agent.bkvs) в виде файла svchost.jpg с того же сервера, где и находился вредоносный JAR, и его запуск. Пример HTTP GET-запроса от McRat в браузере с успешно выполнившейся уязвимостью приведен выше.

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

Специалисты компании говорят, что уязвимость работает в браузерах, использующих плагин Java версии 1.6 с обновлением 41 и Java версии 1.7 с обновлением 15. Пользователям рекомендуется отключить выполнение плагинов Java или сменить настройки статуса безопасности Java на высокие и не выполнять недоверенные апплеты.

Oracle выпустил оба обновления в качестве плановых 19 февраля этого года, в них исправлялись пять проблем безопасности. Аварийное обновление до него закрывало полсотни трудных мест, из-за которых были скомпрометированы машины крупных компаний, в их числе Apple, Facebook и Microsoft.

Отсутствие же исправлений или каких-либо средств защиты от новой уязвимости, кроме как отключения выполнения Java-апплетов в браузере, позволяет называть её уязвимостью нулевого дня. Частота их обнаружения заставляет высказывать неудовлетворенность безопасностью Java.
По материалам The Next Web и блога Fire Eye
Анатолий Будько @atomlib
карма
268,7
рейтинг 3,3
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

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

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

  • +3
    Для хрома заходим chrome://plugins/ и выключаем, если установлена Java
    • +5
      Лучше заходить на about:plugins — работает в Firefox, Opera и Chrome
    • +2
      [sarcasm] У меня теперь не работает порно :( [/sarcasm]
      • +3
        Кому такой способ не подходит )) проверям отключена ли Java в браузере идем по этой ссылке: www.java.com/en/download/testjava.jsp
  • НЛО прилетело и опубликовало эту надпись здесь
    • +3
      Просто обычно правильный админ разрешает загрузку и запуск апплетов только из trusted-zone к которым относятся и сайты ИБ тоже.
      • НЛО прилетело и опубликовало эту надпись здесь
        • +1
          Wietse Venema на эту тему говорил и не раз, что идеальный код и без багов невозможен в принципе.
  • +2
    Trojan-Dropper.Win32.Agent.bkvs работает только на Windows? Другие операционные системы не подвержены взлому через IcedTea-web?
    • +7
      Теоретически ничего не мешает в эксплоите определять операционную систему и подгружать соответствующую ей «полезную» нагрузку
  • +14
    шо, опять?
  • +2
    «произвольная запись и чтение памяти процесса виртуальной машины»
    Однако.
    Жаль не описали как это достигается.
    • +2
      Может быть, последствия sun.misc.Unsafe?
  • +2
    сменить настройки статуса безопасности Java на высокие и не выполнять недоверенные апплеты

    Так а разве по умолчанию в JRE не стоит статус «Высокий»? Или что имеется в виду?

    image
    • +3
      Это от Дариен Киндлунд и Йихонга Лина — у себя они High в отчёте даже закавычили. Видимо, это предупреждение для тех, кто устанавливал более низкий уровень безопасности.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      решето не только из дыр состоит в отличие от этого плагина, а тут скорее просто дырка от бублика
  • +4
    У меня в Хроме стоит, с момента появления этой фишки в каком-то из dev релизов опция «Click to play» — запуск плагинов только по клику. С возможностью создания белых списков сайтов конечно. Так вот, я никогда не встретил ни одного java элемента на странице. Они вообще где-то используются? И если да — то для чего?
    • +1
      Некоторые веб-клиенты для банков, утилиты для проверки аппаратного обеспечения прямо на сайте (это используют Intel, NVIDIA и, возможно, AMD). Это из того, что я встречал. Больше нигде Java-аплеты я не встречал :)
    • +1
      Некоторые вендоры очень любят использовать у себя, например, для удаленного управления серверами по IPMI. Многие IP-KVM также не хотят работать без java, видеорегистраторы, ip-камеры. Да много где используется, к сожалению, причем часто приходится тащить весь зоопарк версий, потому как не на всех работает как задумано.
      • +1
        Некоторые? Да почти любая реализация IPMI требует java. И что самое удивительное (потрошил одно время протокол) — там внутри тот же VNC с кучей проприетарных наворотов. Без которых он спокойно может работать. Казалось бы что мешало сделать прослойку для работы с обычным VNC, если мне нужна только консоль… И кстати, есть такие IP-KVM от startech. Внутри вроде чипы от raritan, но утверждать не берусь. Работают по чистому VNC. Всякие virtual cd и прочее — через OSD-меню. А, там еще и клава/мышка/привод — все по одному USB кабелю. По факту — образец как надо делать KVMы.
        • –1
          Да к счастью не все, есть те кто позволяет использовать как раз обычный vnc клиент для консоли, а весь остальной функционал реализован без java, но это скорее исключение, не буду называть конкретных производителей и модели, не тема топика. Есть и другие модели ip-kvm где java нет вообще, только vnc, но опять же нужно искать специально. Еще есть такой недо-биллинг UTM5 (пусть им будет стыдно), где вся админка и большинство модулей управляются, через страшный, глючный клиент на java. Куча всяких полу-умных железяк спаянных на коленке еще в конце 90х тоже любят java, перечислять можно бесконечно. Хорошо это или плохо другой вопрос, но то что за пределами серфинга от нее не уйти — это факт. Да дырявая, медленная, прожорливая, но отключить ее у себя многие просто не имеют возможности, вот и держим виртуалки с двумя десятками разных версий чтоб можно было выполнять свою работу.
          • +6
            Да дырявая, медленная, прожорливая…

            Вы не могли бы привести пример другой платформы, которая как и Java стоит на миллиарде компов и при этом никто годами не находит никаких уязвимостей, которая работает быстрее чем современная Java, потребляет мало памяти, но при этом является удобным и безопасным инструментом для разработчиков? На чём пишут те боги у которых недыряво, быстро, непрожорливо, качественно, кроссплатформенно и тд?

            Если на достаточно безопасной, проверенной и даже где-то консервативной Java некие люди не смогли написать стабильно работающее приложение, то скорее всего на других системах разработки они вообще ничего написать не смогли бы.
            • +1
              Не буду участвовать в холиварах. Мне как пользователю программного обеспечения глубоко сиренево на чем написан софт, будь то ява(джава), бэйзик или браинфак, как системного администратора меня полностью устроит vnc+ssh+shell, я не говорю о java как о сферическом языке в вакууме, я говорю о конкретных реализациях софта и почему-то так сложилось что именно на этом языке мне чаще всего попадаются корявые поделки в энтерпрайзе. То-ли входной уровень программистов в этот язык начинается с пансионата для имбицилов, то ли так сложилось исторически, то-ли мне так везет, но именно за разработки на этом языке иногда хочется убивать. Я не говорю что все программы такие, встречал очень красивые реализации, быстрые и без нареканий, но их так мало на общем фоне быдлософта и особенно обидно, что это лезет в энтерпрайз, управление устройствами и много куда, где просто не должно быть таких вещей. Где все те гениальные программисты Java находятся, когда очередной вендор включает в свой проект продукт, пользователь которого будет ежедневно плеваться от работы с ним и это всем известные компании, а не подвал дядюшки Ляо, неужели у них нет финансов или возможности выпустить удобный продукт, используя java? Берите на выбор штук 5 реализаций того же IPMI от разных вендоров на Ваш выбор и минимум в 3х случаях из 5 вы поймете о чем я говорю, а это железо стоит десятки тысяч у.е., там где проще и дешевле вообще сплошной мрак.
              • +3
                Мне как пользователю программного обеспечения глубоко сиренево на чем написан софт...

                Вы примерно правильно пишете, в том смысле, что вокруг действительно много дрянного софта. И на java он часто встречается. Но, на мной взгляд, в выводе путаете знак. Мне кажется, что это традиционное заблуждение. Java тут не проблема, Java тут спасение.

                Хороший программист отлично использует этот язык, но дело в том, что корпоративного софта пишется о-очень много. Несуразно много. Это просто валовый такой продукт. Выкатывается тоннами. Цивилизация не способна это всё реализовать на языках более низкого уровня. Физически. Попробуйте написать простейший сайт с обработкой серверной части на ассемблере?

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

                Переход к языкам с автоматическим управлением памятью вызвала сама жизнь, а точнее — общий интеллектуальный уровень индивидуумов которые способна поставлять/образовывать наша цивилизация. Нет на планете достаточного количества гениев, способных писать с такой же скоростью на других языках. Вот на Apple платформе преобладает один неудобный язык. И мы видим что Apple практически отсутствует в корпоративном секторе.

                Разумеется, как пользователь, я могу сморщить нос и сказать что меня это всё не волнует, и я хочу просто щёлкнуть пальцами и получить идеальный результат, но поскольку форум таки профессиональный, то следует постараться понять и причины. Как пользователь автомобиля, к примеру, я хочу нажать на педаль, получить мгновенный разгон и чтобы бензина тратил 1 литр на 100 км. Ну или вообще ничего. Ну а что, я же пользователь, почему меня должны волновать их внутренние проблемы? Верно?
                • 0
                  Я думаю не стоит углубляться в дебри и мы прекрасно друг друга поняли, не коим образом не хотел обидеть java-программистов. Я думаю всем ясно, что будь альтернатива, то java бы потеряла популярность, как сейчас потерял ActiveX. Я также не вижу альтернатив на сегодня, но все-таки так иногда хочется чтоб софт работал ну чуточку удобней там где это возможно. Я понимаю скорость разработки, простота, кросплатформенность все это плюсы, но это привлекает в java огромное количество быдлокодеров (воспользовавшись их «шедеврами» язык не поворачивается назвать разработчиками), входной порог базовых знаний и навыков в язык настолько низок, что под общей массой говнософта язык получил свои стереотипы. Все таки мы ушли в офтоп, предлагаю не раздувать тему дальше.
                  • +4
                    >Я думаю всем ясно, что будь альтернатива, то java бы потеряла популярность,

                    Да, может быть так и было бы. Но то, чем бы заменили java, строилось бы по точно таким же принципам.
                    Т.е. это был бы очередной управляемый язык. И из за его популярности на нем так же были бы написаны тонны говнокода.
                    А самое главное, там тоже была бы своя JVM, в которой из-за ее популярности было бы найдено также 100500 уязвимостей.
                    И так же бы писали статьи, что оно говно и надо чем-то «нормальным» заменить…

                    Или вы верите в сказку о идеальной технологии без багов и дыр, на которой идеальные люди пишут идеальный код? :)
                  • –2
                    Я думаю всем ясно, что будь альтернатива, то java бы потеряла популярность, как сейчас потерял ActiveX. Я также не вижу альтернатив на сегодня,

                    Наверное мы пока не очень ушли в оффтоп. :)

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

                    Во-первых — альтернатива есть. Есть Active-x для некоторых браузеров, есть Флеш, есть Silverlight. Это всё из той же оперы что и Java апплеты.

                    Ну и главное — Java апплеты были отличным решением в своё время, пока MS не стала их целенаправленно убивать. После того, как у MS не получилось подмять Java под себя, они не просто убрали Java из системы, они сделали хитрее, они оставили там самую старую её версию. Что реально ввело в прострацию пользователей. Типа Java есть, но не работает. И апплеты не стали массовым явлением, что было бы очень неплохо, ибо технология эта достаточна удобная и мощная. И альтернатив потому и не появляется, что рынок оказался больно привлекательным и борьба там довольно острая. В итоге мы имеем доминирование довольно странной смеси из HTML и Javascript. Полагаете эта парочка будет получше чем Java для сложных задач которые запускаются из Web?

                    Я понимаю скорость разработки, простота, кросплатформенность все это плюсы, но это привлекает в java огромное количество быдлокодеров...

                    Я также понимаю, что приятно называть многих коллег по цеху, которые как и большинство людей допускают ошибки, быдлокодерами (сами то вы, разумеется, ошибок не делаете), но бог не создал других людей. Уж какие есть. И эти “салаги” действительно на Java пишут более качественный код, чем многие гении на C++.
                    • +1
                      Мне кажется, надо все-таки отличать server-side Java от клиентских Java-апплетов. И на клиентской стороне у Джавы много проблем, она давно уже потеряла какие-то претензии на первые места. Но серверная сторона отлично работает и подавляющее число банковских систем пишутся на джаве. В одном международном банке, где я работал, прямо был озвучен стандарт — серверная часть на джаве, клиенты на C#.
                      • +1
                        А какие проблемы у Java на клиентской стороне? Всегда корпоративный сектор её там использовал. На мой взгляд существует расхожий миф, что там есть некие проблемы, отличные от других. Но назвать их внятно никто не сможет. А сейчас, когда JavaFX2 сменила Swing, так и вообще сложно будет.

                        Да, находят уязвимости в апплетах. Но апплет это одна из форм клиентского приложения. Она работает через инет. А если что-то работает через инет, то там всегда кто-то находит уязвимости. Есть такая беда. И она не только у Java.

                        А в остальном особенных проблем не вижу. Просто так получилось, что на сервере для Java вообще особенных альтернатив нет, а вот на клиенте они есть. Их там целый зоопарк. Это и C++ (MFC, Qt...) и C# (WinForms, WPF) и Adobe Air и ещё там по мелочи. А главное, настойчиво тиражируется мнение, что клиент толстый тихо «умирает» и вся жизнь перемещается в Web. А посему писать всё надо на Javascript и HTML 5. Иногда с этим до комизма доходит.
                        • 0
                          Я думаю проблемы были в прошлом, сейчас, возможно, они и решены (клиентской джавой не занимаюсь со свинга), не знаком с JavaFX2, в свое время присматривался к SDL (на котором Эклипс написан). Но пока проблемы решали, поезд ушел, на мой личный пристрастный взгляд, а я то сам джаву очень люблю.

                          Основной проблемой в нашу бытность использования клиентской джавы помню следующие пункты
                          1) Зоопарк JRE вместе * зоопарк версий Windows * зоопарк броузеров. Особенно с этим была проблема на стороне апплетов, если с приложением еще можно носить целиком весь JRE, и там надо просто собирать под данную платформу, то на апплетах пользователь был наедине с проблемами установки плагинов в свои любимые броузеры и это просто был кошмар поддержки, особенно, когда апплеты всякие хитромудрые.
                          2) Тормознутость. Сделать приложение, которое ворочает большим обьемом данных на экране и не тормозит, было достаточно непросто. У меня было несколько проектов, когда нам в наследство доставалось какое-нибудь гигантское Java UI и потом ребята нереальными усилиями увеличивали скорость отклика в два раза, но в какой то момент становилось понятно, что быстрее уже не сделать. У IDEA такая проблема была в самом начале (слов нет, парни быстро починили это дело, но Эклипс какое то время казался более быстрым за счет SDL). Но это внутренние ощущения, сравнивать было не с чем.
                          3) Неопрятность интерфейса. Как и предыдущий пункт, это мое личное ощущение. Сделать симпатичным интерфейс программы на джаве даже после появления Swing было непросто. Снова, не знаю, как сейчас, все больше на сервер сайде работаю.

                          Вполне допускаю, трудности были временные, но в корпоративной сфере любят принимать глобальные решения, чтобы сразу за всех, и, я думаю, просто появился вектор делать или веб морды или C# (говорю про два своих банка). А теперь уже обратно никто возвращаться и не думает.

                          Но, вообще, согласен с вашей оценкой. Безопасность тут не при чем, на мой взгляд, дело в тенденции программистского мышления, сейчас и вправду все больше в сторону HTML двигается, а C++\C# как тяжелая артиллерия.
                          • +1
                            Эклипс на SWT написан. То есть вообще родные контролы операционной системы. Swing использует L&F (Look and feel). Их много красивых. Ни о какой неопрятности интерфейса речь никогда не шла. Говорить можно было лишь о недостаточной квалификации разработчиков, не захотевших потратить время и разобраться что это такое. Я даже тут статью на Хабре писал лет сколько-то назад. JavaFX вообще стилизуется вдоль и поперёк.

                            Тормознутость ушла лет 10 назад. А лет 5 назад Swing уже работал быстрее чем Win Forms (проверяли на формах из 500 сложных контролов типа календаря).

                            Зоопарка JRE особенного не было, совместимоть там хорошая. Но да, если это апплет, то пользователь должен был сам поставить JRE. Я уже писал, Микрософт демонстративно оставил в Винде старую-старую версию Java. Что создавало эффект того что Java вот есть, но не работает.
                            • 0
                              Виноват, конечно SWT, а не SDL. Но в остальном я от вас вижу точно такие же субъективные отношения, как от меня (тормознутость ушла, очень много красивых L&F), за исключением, пожалуй, зоопарка JDK. Как я могу понять из третьего абзаца, вы нехотя согласились, что он имел место быть, как и тормознутость.

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

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

              • +1
                А на каких ещё языках вы рассматривали Ынтерпрайзные решения, чтобы была почва для сравнения? Ну, то есть вот, иссделовали вы 20 явских ынтерпрайз систем и они все написаны Ымцибелами. Исследовали другие 20 на чудесном языке Х и все они оказались гладкими и пушистыми. Внимание вопрос — что за чудесные язык Х? Ведь не shell-script, да?

                ЗЫ. Говорят, что бывает не язык Х, а язык Э и там всё хорошо, потому что Эмцибелы тупо не пролазят, но кто видел много Энтерпрайз систем на языке Э? :)
    • +1
      Помимо упомянутых, еще встречал в двух местах: для подписи отправляемого на сервер XML-я гостовским алгоритмом на казахстанских гос сайтах; для рендера 3d модели на сайте wowhead.com (там есть флешевский рендер и джавовсий на выбор, у джавовского картинка лучше).
    • +4
      Они вообще где-то используются?

      Ага, апплеты Java постоянно используются в качестве эксплойтов :)
  • +2
    Да сколько ж можно.
  • +3
    Если я правильно помню, то в последних апдейтах Java стоит High-level безопасости по умолчанию. И стало быть весь описанный в статье стафф тупо не будет работать. А пользователи, которые ручками снижают уровень безопасности в Java Control Panel — сами себе буратины!
  • +2
  • +1
    Уязвимости присвоена CVE-2013-1493
    Правда, подробностей пока нет
  • +1
    Я правильно понимаю, что фикса для шестой Java уже не ждать?
    • +1
      Вчера релизнулись Java SE 7u17 и 6u43
  • +1
    Есть информация про уязвимость в icedtea?

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