VirusHunter предупреждает всех пользователей ПК о массовом распространении опасного файлового вируса Win32.Parasite (aka Win32.Parite.b, Parite.2), поражающего Win32-программы и экранные заставки...


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

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

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


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

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

1. Дроппер (активатор основной программы), имеющий размер около 1,5-2 кб; написан на языке нижнего уровня (языке машинных команд) - Ассемблере. Данный компонент предназначен для расшифровки основного вирусного компонента с последующим его извлечением, установкой в систему и запуском на выполнение, а также для возможности запуска зараженного программного файла.

2. Основной компонент, производящий поиск и заражение файлов. Представляет собой DLL-файл (динамическую библиотеку Windows), написанный на языке высокого уровня - Borland C++ (версия 1999 года выпуска). В теле зараженного файла данный компонент содержится в сжатом и зашифрованном виде: сперва упакован утилитой "UPX", а поверх нее зашифрован крипт-кодом, ключ к которому содержит дроппер-компонент вируса.

При запуске зараженного файла на чистой машине управление получает дроппер-код вируса (в своем роде - подпрограмма-"мастер"), который расшифровывает Основной компонент и копирует его на диск в виде временного файла (см. ниже), после чего запускает на выполнение.
Получив управление, Основной компонент запрашивает системные парметры %windir% и %temp%, определяя таким образом местоположения каталогов с установленной ОС Windows и временных файлов системы (поддиректории "TEMP"). Обычно таковыми являются:

для Windows 9X/ME:

C:\WINDOWS и C:\WINDOWS\TEMP соответственно

для Windows 2K/XP:

C:\WINDOWS и C:\Documents and Settings\%UserName%\Local Settings\TEMP соответственно

, где %UserName% - имя служебного каталога текщего пользователя.

Основной компонент копирует свой код в TMP-файл:

для Windows 9X/ME:

C:\WINDOWS\TEMP\*.tmp

для Windows 2K/XP (2 файла с различными именами):

C:\WINDOWS\Temp\*.tmp
C:\Documents and Settings\%UserName%\Local Settings\TEMP\*.tmp

В качестве "звездочки" файлу присваивается случайное имя, состоящее из 7 символов, среди которых могут быть цифры, а также большие и малые латинские буквы, например:

dha71C1.tmp
jjb8244.tmp

и т.д.


Очевидно, что для Windows 2K/XP количество таких TMP-файлов и местоположение каждого из них будут зависеть от количества пользователей зараженной машины.
Данный TMP-файл (имеет размер 176128 байт) руководит всеми процессами вируса. Файл сжат утилитой "UPX"; стартовый код UPX-сжатия автор вируса затер для усложнения распаковки файла; при восстановлении затертых участков кода и распаковке файла его оригинальный размер составил 410624 байта. При этом часть кода с вредоносным функционалом составляет всего около 74 кб от общего размера файла, а все остальные логические блоки содержат вспомагательные процедуры поддержки для языка C++ Borland, встроенные компилятором при создании программы вируса.
Основной компонент вируса получает управление при каждом старте Windows и остается резидентно в памяти машины вплоть до окончания работы системы. Это происходит при помощи специально созданной вирусом записи в нижеприведенном ключе системного реестра, которая содержит параметр с названием "PINF" и его значение, которое записывается для маскировки в Hex-кодировке:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer]
 "PINF"=hex:[значение ключа в hex-кодировке]


В качестве объекта для запуска выбирается вредоносный TMP-файл, расположенный либо в каталоге временных файлов системы (для Windows 9X/ME), либо в каталоге временных файлов текущего пользователя (для Windows 2K/XP).
Благодаря такому способу активизации, вирусный DLL-файл с расширением "TMP" будет автоматически подгружаться системой при каждом последующем ее старте в адресное пространство систеного процесса Explorer.exe, как его модульная составляющая.


3. Заражение PE EXE- и SCR-файлов внутри машины и по локальной (офисной) сети.

После запуска зараженного файла на чистой машине вирус приступает к поиску всех PE EXE/SCR-файлов в следующих системных папках:

для Windows 9X/ME:

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

для Windows 2K/XP:

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

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


О принципе работы зараженных файлов будет подробно сказано далее по тексту.
Перед заражением каждого файла, чтобы скрыть свое присутствие в машине, вирус считывает его (файла) атрибуты, дату и время модификации, заражает файл, а затем присваивает ему эти исходные данные назад. Этот прием существенно затрудняет визуальный поиск изененных файлов.
Размер файлов после заражения увеличивается примерно на 178 кб - точного значения нет, т.к. вирус дописывает в конец своего кода некоторое количество служебной информации касательно изменений, произведенных им в коде зараженного файла.
После инфицирования системной папки и ее подкаталогов вирус на время останавливает процесс поиска и заражения файлов, чтобы быть менее заметным. Далее процесс заражения осуществляется двумя способами:

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

2. Вирус отслеживает системные вызовы функций по прерыванию int 21h (программный вызов DOS), считывает местоположение запущенного программного файла, после чего заражает все соответствующие файлы в текущем каталоге и всех вложенных в него папках до 3-го уровня вложенности. После этого вирус ждет закрытия текущей программы и также заражает ее. При этом, еще до закрытия данной программы, вирус может подгружать в ее адресное пространство свой TMP-компонент, как и в случае с системным процессом Explorer.exe.

Поскольку полный вирусный код содержится только в зараженных файлах, вирус ищет такие файлы в вышеуказанных системных подкаталогах и копирует из них свой код в заражаемые файлы. Также вирус может создавать в системной памяти виртуальный лог на время работы системы и хранить в нем информацию об именах и местоположении на диске некоторого количества файлов из числа зараженных, чтобы в дальнейшем также использовать их как "доноров" своего кода при осуществлении процесса заражения новых файлов.
Каждый файл заражается только 1 раз (вирус проверяет свое присутствие в файле-жертве по определенной сигнатуре программного кода, соответсвующей участку его дроппер-компонента).
Под Windows 2K/XP может иметь место последовательное появление системных сообщений вида



, что связано с системной проверкой оригинальности ее файлов-компонентов, расположенных в определенных подкаталогах (в частности, в \WINDOWS\ и \WINDOWS\System32\).


Заражение локальной (офисной) сети.

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


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

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

 - наличие вирусного ключа в регистрах системы;

 - наличие TMP-файла, прописанного в ключе, и его активность.

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


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

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

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

Во втором случае, как показали опыты, проведенные с вирусом на тест-машине, может зависать не только текущая программа, но и система вцелом (в первую очередь, это касается Windows 9X/ME). При этом машина не реагирует ни на какие команды, кроме как на двукратное нажатие Ctrl+Alt+Del (перезагрузка системы). Данный казус может стать реальной причиной потери всех несохраненных поточных данных для всех активных на момент зависания системы программ, а также всех несохраненных открытых документов. Более того, в большинстве случаев зараженные файлы, запуск которых "неудачно" заканчивался по вине вируса, остаются неработоспособными вплоть до их лечения - в основном, как было замечено, таковыми являются компоненты массивных программ, требующих значительных ресурсов оперативной памяти и имеющих размер от нескольких сотен кб и более.


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

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

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

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

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

После процесса лечения некоторые программы остаются неработоспособными и их необходимо переустанавливать. Причиной является встроенная в такие программы процедура проверки оригинальности их кода, которая заключается в подсчете т.н. CRC-значения (контрольных сумм) определенных участков кода файлов и сопоставлении полученных значений с оригинальными. К таким программам относятся, например, Nero Burning ROM (программа для записи СD- и DVD-дисков), фаерволл ZoneAlarm Pro (программа-защитник Интернет-трафика) и некоторые др. Учитывая тот факт, что вылеченные файлы содержат в своих заголовках некоторое количество измененных вирусом байт, то вышеуказанные программы при своем запуске сразу же выдают соответствующее сообщение о расхождении значений контрольных сумм с оригинальными и завершают свою работу.
Следует отметить, что некоторое количество вирусных копий может присутствовать в файлах с расширениями "CHK" (последние являются файлами, резервируемыми некоторыми версиями ОС Windows в случаях обнаружения сбойных кластеров на жестком диске системным приложением Scandisk).
Поскольку для рядового пользователя осуществить процесс лечения от вируса будет крайне сложно, т.к. в процессе лечения под активной Windows вирус может поточно заражать уже вылеченные файлы (не говоря уже о том, что сам антивирусный сканер может оказаться инфицированным), самым оптимальным решением вирусной проблемы, на мой взгляд, является перенос винчестера на др. неинфицированную машину, его подключение к ней, как второстепенного, с последующим пролечиванием всей находящейся на нем информации. При этом TMP-файлы, созданные вирусом, необходимо просто удалить.


Исследование вредоносного кода и разработка описания: Бройде Герман (aka VirusHunter)
Дата создания: 26.02.2005
Дата внесения последних изменений: 30.05.2005
Автор описания: Бройде Герман (aka VirusHunter)


Rambler's Top100

0.00285911560059