Virus.Java.BeanHive

Класс Virus
Платформа Java
Описание

Technical Details

Написан на языке программирования Java и представляет из себя стандартную
Java-программу. Заражает приложения Java (Java applications). Является
вторым известным Java-вирусом после «Java.StrangeBrew».

Вирус использует достаточно необычный способ распространения. Код вируса
разбит на две части: «стартер» и основную. При размножении вирус записывает
в поражаемые Java-файлы только свой «стартер», а основной код вируса при
этом хранится на удаленном Web-сервере (для данного варианта вируса — на
хакерском сайте Codebreakers).

Инфицированный Java-файл при инициализации считывает с удаленного Web-сайта
основную часть вируса и передает ей управление. Код в основной части вируса
затем ищет в текущем каталоге и всех подкаталогах файлы с расширением
.class и заражает их, записывая в них «стартер» вируса. Основная часть
вируса при этом не копируется в заражаемые файлы и ни в каком виде не
присутствует на пораженном компьютере после того, как вирус отработал и
возвратил управление системе.

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

Особенности

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

Во-вторых, подобная комбинация стартер-вирус позволяет автору вируса
«апгрейдить» его код и заражать удаленные компьютеры новыми версиями
вируса.

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

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

Технические детали

Стартер вируса является небольшой Java-программой, которая содержит всего
около 40 строк. При запуске стартер устанавливает соединение с удаленным
Web-сервером, считывает основной код вируса, хранящийся в файле
BeanHive.class, и запускает его как свою подпрограмму.

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


BeanHive.class : поиск файлов в дереве подкаталогов
+— e89a763c.class : проверка формата файла
|— a98b34f2.class : функции работы с файлами
|— be93a29f.class : готовит файл к заражению (часть1)
|— c8f67b45.class : готовит файл к заражению (часть2)
+— dc98e742.class : вставляет в файл стартер вируса

При заражении Java-файлов вирус разбирает их внутренний формат, записывает
в файл код стартера вируса в виде подпрограммы с именем «loadClass» и
добавляет в код конструктора файла ее вызов: loadClass(«BeanHive»).
Передаваемый параметр («BeenHive») при этом указывает на имя файла с
основным кодом вируса, который хранится на удаленном Web-сервере.