VirusHunter предупреждает всех пользователей ПК о распространении файлового вируса Win32.HLLP.HiDrag (aka Win32.Hidrag.a, Jeefo.A), поражающего Win32-программы и экранные заставки...


Детальное описание вируса Win32.HLLP.HiDrag.

1. Источники попадания в машину.

Основным источником распространения данного вируса являются, как обычно, файло-обменные сети. Вирус может попадать в каталоги установленных на машинах программ файло-обмена как под видом "полезных" программ, так и просто в зараженных дистрибутивах программного софта, переданных Вам друзьями или знакомыми. К сожалению, большинство пользователей упорно игнорируют антивирусные программы или просто не обновляют антивирусные базы, в результате чего "просыпают" попадание вируса в свои машины. Как результат, инфицированные компьютеры становятся рассадниками вирусов для десятков или даже сотен других компьютеров. Потенциальную опасность также могут представлять CD/DVD-диски, записанные на таких "чистых" машинах, т.к. очевидно, что среди записанных на них (дисках) файлов окажутся и инфицированные. Не исключается также и возможность подхватить данный вирус в том случае, если Вы пользуетесь для переноса/хранения информации флэшками (USB Flash Memory Storage) или дискетами.


2. Инсталляция в систему.

Win32.HLLP.HiDrag представляет собой резидентную Windows-программу (т.н. PE EXE-файл, содержащий в своем заголовке метку "PE"; к таковым относятся программы с 32-битным кодом, написанные на языках высокого уровня, таких как, например, C++ Builder, Borland Turbo Pascal (Delphi) и пр., создаваемые для работы в среде Windows). Дееспособен под всеми существующими на сегодняшний день ОС Windows.
Код программы Win32.HLLP.HiDrag защищен крипт-кодом, который расшифровывается при запуске вируса с помощью специально встроенной процедуры расшифровки прямо в память машины без создания каких-либо временных файлов.
Схематически строение кода вируса выглядит следующим образом:


Как видно из схемы, тело Win32.HLLP.HiDrag состоит из двух частей - основного кода и дополнительной секции, в которой вирус может хранить служебную информацию. Размер дополнительной секции составляет примерно 3% от общего размера вирусного тела.
Win32.HLLP.HiDrag может инсталлировать себя в систему двумя способами, в зависимости от того, из какого файла производится его 1-й запуск на чистой машине - из того, в котором содержится только оригинальная вирусная программа, или из зараженного.
При запуске зараженно файла вирус определяет через функцию %windir% имя каталога, в который установлена ОС Windows (обычно таковым является C:\WINDOWS, поэтому далее по тексту я буду ссылаться именно на этот каталог), и копирует себя в него под названием

C:\WINDOWS\svchost.exe

Данный файл обладает следующими характерными особенностями:

 - размер файла: 36352 байта;
 - атрибуты: "Архивный" и "Системный" ("archive" и "hidden", благодаря чему при настройках системы "по умолчанию" данный файл невозможно обнаружить, т.к. Windows не показывает "скрытые" файлы);
 - дата модификации: 24.08.2001 года (всегда одна и та же);
 - время модификации: значение переменной "hh" (часы) выбирается из вариантов "21" или "22"; значения переменных "mm" и "ss" (минуты и секунды соответственно) - либо "00", либо берутся от зараженного файла, из которого был произведен запуск вируса.

Файл svchost.exe остается резидентно в памяти компьютера вплоть до завершения работы Windows. Для возможности активизации этого файла при каждом старте системы вирус создает ключ под названием "PowerManager" в регистрах автозапуска системного реестра:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
 "PowerManager"="C:\\WINDOWS\\SVCHOST.EXE"


Также вирус расшифровывает и записывает в дополнительную секцию данного файла (см. вышеприведенную схему) цифровую подпись, которая полностью идентична Microsoft'овской и передрана из одноименного системного файла Windows XP - WINDOWS\SYSTEM32\svchost.exe. В результате этого, вирус получает возможность маскироваться в системе под внутренний сервисный процесс. При просмотре свойств данного файла система видит его как один из компонентов ядра:


Если на чистой машине 1-й запуск вируса производится из файла, содержащего только код вируса (т.е. из идентичного файлу svchost.exe, но, например, под названием zastavka.scr или каким-либо др.), то инсталляция Win32.HLLP.HiDrag осуществляется следующим образом: вирус считывает имя запущенного вирусного файла и создает в регистрах автозапуска системного реестра ключ под названием "PowerManager" следующего вида:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices]
 "PowerManager"="%path%\\name.ext"


, где %path% - местоположение запущенного вирусного файла, а name.ext - его название. Таким образом, роль компонента svchost.exe выполняет запущенный пользователем файл с оригинальной вирусной программой. При этом в системном каталоге файл svchost.exe не создается. Если в дальнейшем будет запущен какой-либо из зараженных файлов, то svchost.exe будет создан в системном каталоге, однако вирус не будет дописывать в системный реестр дополнительный ключ и активным по-прежнему останется вышеописанный файл.


3. Заражение файлов.

После инсталляции в систему вирус ждет несколько минут, не производя никаких действий, чтобы скрыть свое присутствие в системе и какую-либо видимую активность. Затем начинает поиск и заражение PE EXE- (программ) и SCR- (экранных заставок) файлов. Этот процесс протекает по следующей схеме: сперва вирус ищет 6 файлов указанных форматов в корневом системном каталоге, т.е.

C:\WINDOWS\*.exe
C:\WINDOWS\*.scr


Затем останавливает процесс поиска и заражения файлов, ждет 5-10 минут и заражает еще 6 файлов, после чего опять ждет указанный промежуток времени и возобновляет данную процедуру.
Сразу следует сказать, что вирус выбирает для заражения только те файлы, размер которых превышает примерно 110 кб, а остальные не трогает. Перед заражением каждого файла, чтобы скрыть свое присутствие в системе, вирус считывает его (файла) атрибуты, дату и время модификации, заражает файл, а затем присваивает ему эти исходные данные назад. В результате этого, система не фиксирует данные зараженные файлы, как измененные, что существенно затрудняет визуальный поиск последних.
Когда в корневом каталоге C:\WINDOWS все соответствующие файлы заражены, вирус переходит к заражению по вышеуказанной схеме в следующих подкаталогах системной директории:

для Windows 9X/ME:
C:\WINDOWS\SYSTEM\

для Windows 2K/XP:
C:\WINDOWS\SYSTEM32\

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

C:\Program Files\

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


4. Принцип заражения файлов.

При заражении файлов вирус обходит атрибут "только для чтения" ("read only") и использует довольно сложный алгоритм записи своего кода в файлы. При этом применяет метод, используемый в свое время в старых файловых вирусах HLLP-семейства (High Level Language Program): перезаписывает обнаруженный EXE- или SCR-файл своим кодом, к которому дописывает в конец код оригинальной программы. Однако вирус не просто записывает свое тело перед кодом оригинальной программы, а реконструирует последнюю, меняя в ней порядок расположения логических секций и шифруя ее заголовок, первую и одну из центральных секций. Схематически это выглядит так:


В свою дополнительную секцию, вместо поддельной цифровой подписи Microsoft, вирус записывает служебные данные, содержащие информацию об исходном расположении перетусованных секций оригинальной программы, а также указатель тех секций последней, которые были зашифрованы. Данные, размещаемые в дополнительной секции, вирус также шифрует.
Следует отметить, что процедура реконструкции оригинального файла с последующим шифрованием его секций выполнена на высоком профессиональном уровне, в результате чего размер оригинальной программы после ее заражения не изменяется, а общий размер файла увеличивается ровно на 36352 байта (т.е. только на величину вирусного тела).
При запуске зараженного файла вирусная копия, хранящаяся в нем, проверяет инсталлирован ли вирус в систему, после чего осуществляются следующие вещи:

 - управление получает находящаяся в нашем файле копия вируса, которая обращается к файлу WINDOWS\svchost.exe и вызывает в нем специальную подпроцедуру, после чего работа зараженного файла завершается;

 - получив вызов от своей копии из зараженного файла, вирусный svchost.exe (далее просто "вирус") считывает его (зараженного файла) местоположение и сохраняет данную информацию в системной памяти как переменную А;

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

 - далее вирус считывает характеристики зараженного файла (его атрибуты, дату и время модификации) и сохраняет эти данные в системной памяти как переменную С;

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

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

Такой способ лечения вируса самим вирусом довольно оригинальный и даже на маломощных машинах вызывает задержку при запуске оригинальной программы из зараженного файла максимум всего на пару секунд. Однако есть и негативная сторона: при запуске зараженного файла с носителя, на который невозможна поточная запись (например, CD-диск или флэшка/дискета с джампером, переключенным в положение "блокировка записи"), оригинальная программа просто не запустится. Также она не сможет быть запущена и в том случае, если зараженный файл запускается на чистой от Win32.HLLP.HiDrag машине, но в директории WINDOWS которой уже присутствует актиная программа какого-либо др. вируса или троянца с названием svchost.exe.


5. Прочее.

В коде вируса содержатся следующие зашифрованные тексты:

Hidden Dragon virus. Born in a tropical swamp.

Manages the power save features of the computer.

Power Manager

PowerManagerMutant


Свое первое название - "Hidrag" - вирус получил по фрагментам первого текста - "Hidden Dragon"; второе - "Jeefo" - по фрагменту кода этого же текста в зашифрованном виде, который случайным образом выглядит в теле вируса как "I jeefo !".


6. Детектирование вируса и лечение машины.

На момент создания данного описания антивирусные программы обнаруживают вирус под следующими номенклатурными названиями:

Антивирус Kaspersky AntiVirus: Virus.Win32.Hidrag.a (лечит зараженные файлы)

Антивирус BitDefender Professional: Win32.Jeefo.A (лечит зараженные файлы)

Антивирус DrWeb: Win32.HLLP.Jeefo.36352 (лечит зараженные файлы)

Следует отметить, что некоторое количество вирусных копий может присутствовать в файлах с расширениями "CHK" (последние являются файлами, резервируемыми некоторыми версиями ОС Windows в случаях обнаружения сбойных кластеров на жестком диске системным приложением Scandisk).
Поскольку для рядового пользователя осуществить процесс лечения от вируса будет непросто, т.к. в процессе лечения под активной Windows вирус может поточно заражать уже вылеченные файлы (не говоря уже о том, что сам антивирусный сканер может оказаться инфицированным), самым оптимальным решением вирусной проблемы, на мой взгляд, является перенос винчестера на др. неинфицированную машину, его подключение к ней, как второстепенного, с последующим пролечиванием всей находящейся на нем информации. В процессе лечения файл svchost.exe вируса необходимо удалить (равно, как и прочий файл с активной копией вируса, если таковой имеет место).


7. О "страшном" вирусе.

В нашем городе, в Черновцах, помимо массового распространения Win32.HLLP.HiDrag не менее массово стали распространяться слухи о страшных вещах, которые якобы учиняет данный вирус в зараженной машине. Слухи подкреплялись тем неоспоримым фактом, что на большинстве "завалившихся" от вируса машинах действительно был обнаружен Win32.HLLP.HiDrag.
Учитывая тот факт, что процедура заражения файлов выполнена на профессиональном уровне, тем самым исключая вероятность повреждения последних при их заражении, а также отсутствие каких-либо деструктивных процедур в коде вируса, я провел дополнительные исследования нескольких файлов с утраченной работоспособностью, в которых были обнаружены копии Win32.HLLP.HiDrag. Как выяснилось, файлы потеряли работоспособность в результате их заражения несколькими вирусами одновременно. В частности на зараженных машинах таковым оказался Win32.Parasite (aka Win32.Parite.b, Parite.2). Ситуация выглядит следующим образом: в зараженном файле Win32.HLLP.HiDrag прописывается в его начало, затем перетусовывает секции и некоторые из них шифрует, сохраняя в своем теле соответствующую информацию о произведенных изменениях в оригинальном программном коде. В свою очередь, Win32.Parasite дописывает свое тело в конец заражаемого им файла и корректирует заголовок последнего (который к этому моменту является уже заголовком прописавшегося там вируса Win32.HLLP.HiDrag). Как Вы считаете - сможет ли Win32.HLLP.HiDrag нормально отреставрировать и вернуть к исходному виду зараженный файл, если в его (файла) хвостовой части появился чужеродный код, о котором по имеющимся у вируса данным касательно всех изменений, произведенных им в оригинальном программном коде, ничего не сказано? Очевидно, что нет. Более того, при запуске такого файла Win32.HLLP.HiDrag при попытке воссоздать оригинальный файл безвозвратно его испортит (кстати, не только его, но и код вируса Win32.Parasite). Антивирусные программы будут также не в состоянии вылечить такую "кашу".
Таким образом, реальной причиной неработоспособности файлов, "вырубания" системы и потери нужных программ и пакетных файлов является в реальности, хоть это и парадоксально звучит, сам пользователь, который по наивности или по каким-либо другим соображениям вовремя не вылечил свой компьютер от электронных "тараканов".


Исследование вредоносного кода и разработка описания: Бройде Герман (aka VirusHunter)
Дата создания: 29.03.2005
Дата внесения последних изменений: 15.04.2005
Благодарности: Авраменко Алексею (aka Swat2) за обнаружение ошибки в технической части описания
Автор описания: Бройде Герман (aka VirusHunter)


Rambler's Top100

0.00283908843994