Как мы уже рассказывали, сейчас более чем в 2/3 случаев опасные сайты заражают компьютеры пользователей, загружая в браузер вредоносные Java-апплеты. Такое заражение может происходить при регулярном обновлении браузера, в некоторых случаях – даже если используется ОС не от Microsoft. Если на компьютере нет виртуальной машины Java, заражённый сайт «заботливо» предложит установить её версию с уязвимостью, после чего повторно атакует компьютер пользователя.
Чтобы обнаруживать сайты, использующие этот способ заражения, Яндекс запустил специальный поведенческий детектор вредоносного кода для Java-приложений. Он позволяет детектировать обфусцированный вредоносный код, который использует самые популярные на сегодняшний день уязвимости JRE. В результате с начала февраля было обнаружено более четырех тысяч зараженных сайтов, суммарная посещаемость которых до заражения достигала 1,5 млн. пользователей в сутки. На графике показано количество сайтов, использующих вредоносные Java-апплеты, которые выявляются системой ежедневно:
Одним из наиболее актуальных способов распространения вредоносного кода на сегодняшний день являются 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. Суть этой уязвимости заключается в том, что при помощи уязвимого метода com.sun.jmx.mbeanserver.M
Класс JmxMBeanServer имеет публичный конструктор. Таким образом чтобы повысить свои привилегии, достаточно выполнить:
javax.management.MBeanServer ms =
com.sun.jmx.mbeanserver.J
com.sun.jmx.mbeanserver.MBeanInstantiator mi =
((com.sun.jmx.mbeanserver
Class clazz = mi.findClass("some.restricted.class.here", (ClassLoader)null);
Чтобы заразить компьютер пользователя, злоумышленники размещают на зараженной веб-странице вредоносный код, например:
После посещения страницы происходит цепочка редиректов:
Посмотреть на Яндекс.Фотках
В итоге пользователь перенаправляется на страницу с эксплойтами:
Посмотреть на Яндекс.Фотках
При наличии уязвимой версии Java, вредоносный апплет 887.jar повышает свои привилегии в системе, загружает и запускает вредоносную программу.
По данным сервиса VT на 12.02.2013, рассмотренный вредоносный апплет детектируют 5 антивирусов из 40, а устанавливаемое с его помощью вредоносное ПО не детектирует ни один антивирус из 40.
Злоумышленники почти всегда обфусцируют или шифруют вредоносный код внутри Java-апплетов, что позволяет им обходить сигнатурные методы детектирования. Так, рассматриваемый образец после декомпиляции имеет вид:
Все строковые константы, встречающиеся в данном апплете, обфусцированы, имена переменных и классов изменены на случайные. В апплете эксплуатируется описанная уязвимость СVE-2013-0433:
Чтобы избежать заражения, мы рекомендуем:
- использовать актуальные версии ПО, обязательно обновлять Java и другие плагины;
- отключить в браузере запуск Java-апплетов по умолчанию, и подтверждать их запуск только для доверенных сайтов;
- использовать обычные антивирусы и следить за регулярностью обновления антивирусных баз;
- ознакомиться с рекомендациями Яндекса по безопасности в Сети и следовать им.
Команда Безопасного Поиска Яндекса