- PVSM.RU - https://www.pvsm.ru -

Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java-апплетов

Как мы уже рассказывали [1] на VolgaCTF2012 [2], сейчас более чем в 2/3 случаев опасные сайты заражают компьютеры пользователей, загружая в браузер вредоносные Java-апплеты. Такое заражение может происходить при регулярном обновлении браузера, в некоторых случаях – даже если используется ОС не от Microsoft. Если на компьютере нет виртуальной машина Java, заражённый сайт «заботливо» предложит установить её версию с уязвимостью, после чего повторно атакует компьютер пользователя.Чтобы обнаруживать сайты, использующие этот способ заражения, Яндекс запустил специальный поведенческий анализатор вредоносного кода для Java-приложений. Он позволяет детектировать обфусцированный вредоносный код, который использует самые популярные на сегодняшний день уязвимости JRE. В результате с начала февраля было обнаружено более четырех тысяч зараженных сайтов, суммарная посещаемость которых до заражения достигала 1,5 млн. пользователей в сутки.

Одним из наиболее актуальных способов распространения вредоносного кода на сегодняшний день являются Java-эксплойты, которые встречаются в любом эксплойт-паке. Такая популярность обусловлена несколькими факторами:

  • использование Oracle Java более чем на 3 миллиардах компьютеров;
  • кроссплатформенность эксплойтов;
  • относительная простота эксплуатации уязвимостей;
  • в большинстве случаев Java-плагин включен в браузере.

Java-эксплойты обрели широкую популярность у злоумышленников из-за большого количества логических уязвимостей в Java. Такие уязвимости позволяют выполнить произвольный код незаметно для пользователя, потому что их использование обычно не сопровождается падением процессов браузера или виртуальной машины Java. С 2010 года злоумышленники использовали для заражения уязвимости CVE-2010–0806, CVE-2010–4452, CVE-2011–3544, CVE-2012-0500 и CVE-2012-4681, а с самого начала 2013 года стали активно использовать новую уязвимость СVE-2013-0433.


Рассмотрим СVE-2013-0433 [3]. Суть этой уязвимости заключается в том, что при помощи уязвимого метода com.sun.jmx.mbeanserver.MBeanInstantiator.findClass можно получить ссылку на класс из любого пакета по имени класса. Однако конструктор класса MBeanInstantiator является приватным и не может быть вызван напрямую. Нужная ссылка на объект класса MBeanInstantiator содержится в экземпляре класса com.sun.jmx.mbeanserver.JmxMBeanServer и может быть получена при помощи метода getMBeanInstantiator.Класс JmxMBeanServer имеет публичный конструктор. Таким образом чтобы повысить свои привилегии, достаточно выполнить:

javax.management.MBeanServer ms =
com.sun.jmx.mbeanserver.JmxMBeanServer.newMBeanServer("any", null, null, true);
com.sun.jmx.mbeanserver.MBeanInstantiator mi =
((com.sun.jmx.mbeanserver.JmxMBeanServer)ms).getMBeanInstantiator();
Class clazz = mi.findClass("some.restricted.class.here", (ClassLoader)null);

Чтобы заразить компьютер пользователя, злоумышленники размещают на зараженной веб-странице вредоносный код, например:

Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java апплетов

После посещения страницы происходит цепочка редиректов:

Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java апплетов [4]
Посмотреть на Яндекс.Фотках [4]

В итоге пользователь перенаправляется на страницу с эксплойтами:

Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java апплетов [5]
Посмотреть на Яндекс.Фотках [5]

При наличии уязвимой версии Java, вредоносный апплет 887.jar повышает свои привилегии в системе, загружает и запускает вредоносную программу. По данным сервиса VT на 27.02.2013, рассмотренный вредоносный апплет детектируют 5 антивирусов из 40 [6], а устанавливаемое с его помощью вредоносное ПО не детектирует ни один антивирус из 40 [7]. Злоумышленники почти всегда обфусцируют или шифруют вредоносный код внутри Java-апплетов, что позволяет им обходить сигнатурные методы детектирования. Так, рассматриваемый образец после декомпиляции имеет вид:

Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java апплетов [8]
Посмотреть на Яндекс.Фотках [8]

Все строковые константы, встречающиеся в данном апплете, обфусцированы, имена переменных и классов изменены на случайные. В апплете эксплуатируется описанная уязвимость СVE-2013-0433:

Автор: t1r1

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/28219

Ссылки в тексте:

[1] рассказывали: http://safesearch.ya.ru/replies.xml?item_no=727

[2] VolgaCTF2012: http://volgactf.ru/

[3] СVE-2013-0433: http://www.oracle.com/technetwork/topics/security/javacpufeb2013-1841061.html

[4] Image: http://fotki.yandex.ru/users/safesearch/view/778236/

[5] Image: http://fotki.yandex.ru/users/safesearch/view/778252/

[6] 5 антивирусов из 40: https://www.virustotal.com/file/2e2bf6ae9530f33e038bb9fa51824d92ff865a6c5ae56c7aea8d48887ae54092/analysis/1360660730/

[7] ни один антивирус из 40: https://www.virustotal.com/file/c5590081ed46e6c072fff2bc0f47e0a1f6a88dbdc3394e6a4157287937916be6/analysis/1360665088/

[8] Image: http://fotki.yandex.ru/users/safesearch/view/778345/

[9] Источник: http://habrahabr.ru/post/170921/