Picture Воспользоваться таким приемом по силам только очень профессиональному программисту; впрочем, высокая квалификация требуется и от создателя антивируса. Игорь Данилов изучил этот вирус и включил методы его обнаружения и лечения в очередное дополнение к популярному антивирусу Doctor Web, которое разослано 21 апреля.


Мощность персональных компьютеров растет год от года; но вместе с этим усложняются и приспосабливаются к новым условиям обитания вирусы. Они теперь могут заражать загрузочные сектора дисков, файлы DOS, Windows, Windows 95, OS/2, Linux и даже документы для Word, Excel и MS Office 97. Они стали превращаться в невидимок и научились быть полиморфными.

Иными словами, стремясь выжить в любых условиях, вирусы используют все предоставляющиеся им возможности. С выходом процессора i286, а затем и 32-разрядного процессора i386 появился защищенный режим работы процессора. Его, несмотря на отдельные "пробы пера", вирусам до настоящего времени никак не удавалось "пробить".

Загрузочный вирус PMBS, первым пытавшийся освоить защищенный режим (1994 год), не мог ужиться ни с одной программой или драйвером (EMM386, Windows, OS/2, ...), которые также действовали в защищенном режиме.

В том же году появились вирусы Evolution.2761 и Evolution.2770, которые использовали лишь часть защищенного режима и только тогда, когда процессор находился в реальном режиме работы. Они подменяли таблицу векторов прерываний на собственную. Но где Evolution найдет пользователя ПК, который до сих пор предпочитает работать в реальном режиме на процессорах i386-Pentium - в чистой DOS и без режима расширенной памяти...

Я думаю, "вирусописатели" упорно бились над решением этой задачи. Но, видимо, основной их массе она была явно не по плечу.

Однако такой человек нашелся. В России обнаружен файловый вирус PM.Wanderer, приспособленный к защищенному режиму и достаточно корректно взаимодействующий с программами и драйверами, которые также применяют этот режим. PM.Wanderer - резидентный полиморфный вирус. Для установки своей резидентной копии в память и переключения в защищенный режим процессора он использует документированный интерфейс VCPI драйвера расширенной памяти EMS (EMM386).

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

Первым делом вирус пытается выяснить, установлен ли в системе драйвер EMS. Если драйвер не установлен или вирусная резидентная копия уже находится в памяти, а также впоследствии - при отсутствии интерфейса VCPI вирус освобождает ранее выделенную память и отдает управление программе-вирусоносителю, - на этом его деятельность прекращается.

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

В защищенном режиме вирус устанавливает две аппаратные контрольные точки на адреса входа в обработчик прерывания Int 21h (функции DOS) и перехода на процедуру перезагрузки компьютера. Кроме того, вирус корректирует таблицу прерываний таким образом, чтобы на прерывания Int 1 (особый случай отладки) и Int 9 (клавиатура) установить собственные дескрипторы обработчиков данных прерываний.

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

С этого момента инфицированная программа начинает свою "полезную" работу, а в защищенном режиме оказываются установленными вирусные обработчики: ловушки на Int 1 и прерывания от клавиатуры на Int 9. С их помощью вирус контролирует, во-первых, все вызовы функций DOS, во-вторых, все нажатия клавиш на клавиатуре и, в-третьих, попытки мягкой перезагрузки компьютера. Это позволяет ему надежно реагировать на интересующие его события при работе программы, а также постоянно проверять состояние своих двух контрольных точек и при необходимости восстанавливать их.

В частности, если вызов исходит от "собрата", то вирус просто возвращает некое условное значение, играющее роль отзыва "я - свой".

Если вирус выявляет попытку получения адреса прерывания Int 6 (обычно такой вызов есть во всех программах на языках типа Си или Паскаль), то он пытается найти в адресном пространстве некоторую последовательность байтов, очевидно, принадлежащих программе ADinf, но какой-то старой версии (по словам разработчика ADinf Дмитрия Мостового, в последних версиях ADinf такой последовательности нет). При обнаружении последовательности вирус определенным образом модифицирует найденный код, так чтобы управление не попадало на вызов межсегментной процедуры, которая демонстрирует пользователю изменения, найденные на диске или в файлах.

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

В виртуальном режиме вирус проверяет последние две буквы расширения имени файла (OM или XE), создает свою полиморфную копию и инфицирует файлы размером более 4095 байт. Он не заражает файлы, содержащие в поле обозначение времени создания - 34 секунды, считая, что такие файлы уже "больны". Коррекцию атрибутов файлов вирус не производит, поэтому все файлы, помеченные как ReadOnly, смогут избежать заражения. Также вирус не трогает программу, имя которой состоит из 7 букв. К сожалению, выяснить ее название не удалось, поскольку вирус не определяет его явно, а подсчитывает CRC. PM.Wanderer не берет на себя обработку критических ошибок, поэтому при попытке записи на защищенный диск в процессе заражения появится стандартный запрос - Retry, Ignore, Fail, Abort.

Для заражения файлов используется прямой вызов ядра обработчика DOS Int 21h. Адрес этого ядра вирус выяснил при трассировке Int 21h во время своего внедрения в память. Вирус вводит свой код в начало COM- или в середину EXE-файлов (сразу же за заголовком), запоминая оригинальный программный код в конце файлов. "Реальный рабочий код" вируса составляет 3684 байт, но на практике инфицированные файлы имеют приращение длины более 3940 байт.

В теле вируса содержится текст "WANDERER,(c) P.Demenuk".

Обычными способами обнаружить резидентную копию данного вируса, находящегося в нулевом кольце защищенного режима процессора, невозможно. Для выявления вируса в памяти необходимо переключаться в защищенный режим с наивысшими привилегиями и производить его поиск.

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

Немного о результатах тестирования. После заражения нескольких тысяч файлов все жертвы оказались работоспособными. Впрочем, следует сделать оговорку - файлы могут стать неработоспособными, если их стек после заражения окажется в области вирусного кода. PM.Wanderer при инфицировании файлов не корректирует значения стартовых SS:SP в EXE-заголовке.

Любопытно, что если в системе был резидентный вирус, а потом произошла загрузка Windows 3.1x или Windows 95, то вирус в этих ОС размножаться не может, но при выходе в DOS он вновь получает управление. Если же запустить его в DOS-сессии Windows, то из-за отсутствия интерфейса VCPI он не сможет переключиться в защищенный режим. По той же причине вирус нежизнеспособен и в среде OS/2.

Итак, угроза, о которой так много говорили специалисты, стала реальностью. Появился первый вирус, использующий защищенный режим работы процессора и не конфликтующий с операционными системами "от Microsoft", также работающими в защищенном режиме.

Кто знает, может, в недалеком будущем компьютерный вирус заменит своим кодом супервизор и будет самостоятельно поддерживать интерфейсы DPMI, EMS/VCPI, XMS, Int 15h?


Игорь Данилов - ведущий "вирусолог" компании "ДиалогНаука".

Вирус AOL4Free - не мистификация

Сначала пользователей Internet запугали слухами об отвратительном вирусе, названном AOL4FREE. Затем пошли заявления о том, что это всего лишь очередная мистификация.

Так вот нет, стиратель файлов AOL4FREE существует: по крайней мере, так утверждают правительственные эксперты по защите.

Бюро Computer Incident Advisory Capability (CIAC) Министерства энергетики США недавно предупреждало о появлении приложения типа "троянского коня" под названием AOL4FREE.COM. При исполнении на платформе DOS/Windows оно стирает все файлы и каталоги на диске С.

Однако, как отмечают специалисты бюро CIAC, чтобы этот "троянский конь" заработал, пользователь должен сначала записать его на жестком диске, а затем запустить файл на исполнение. А в предупреждении о мистификации, циркулирующем в сети Internet, утверждалось, что AOL4RFEE может вызвать повреждение жесткого диска сразу же после того, как пользователь откроет сообщение электронной почты, приложением к которому является этот файл.

Бюро CIAC тем не менее продолжает утверждать, что чтение сообщения электронной почты, даже имеющего присоединенную программу-вирус, не может привести к повреждению системы. "Чтобы вызвать какое-либо повреждение, это приложение должно быть сначала загружено в систему, а затем запущено на исполнение", - говорится в рекомендации бюро CIAC.

Кроме того, сотрудники бюро отмечают, что в техническом плане AOL4FREE не является вирусом как таковым, поскольку не может распространяться сам по себе: для его переноса с одного компьютера на другой требуется вмешательство человека. В этом приложении для стирания файлов и каталогов используется команда DOL DELTREE; это означает, что данные можно восстановить любой предназначенной для этого утилитой.

Следы этого "троянского коня" и быстро распространяющихся сообщений о нем находятся в программе для компьютеров Macintosh с таким же названием, с помощью которой в прошлом году пользователи могли получить бесплатный доступ к сети America On-Line. Бюро CIAC заявило, что создатель этой программы уже был признан виновным в мошенничестве.

- Адам Гаффин,

Network World, США

Угроза компьютерных вирусов растет - утверждает NCSA

По данным исследования, проведенного Национальной ассоциацией компьютерной безопасности (National Computer Security Association, NCSA), почти 100% средних и крупных американских компаний в то или иное время находили в своих сетях компьютерные вирусы. Опрос, спонсированный компаниями Cheyenne Software, Intel, McAfee Associates, Microsoft, Symantec и Trend Micro, показал, что 99,33% американских предпринимателей непосредственно пострадали от разных компьютерных вирусов.

Использование антивирусного ПО корпорациями в 1997 году возросло на 13% по сравнению с тем же периодом 1996 года. Вместе с тем растет число случаев заражения. По мнению NCSA, в 1997 году каждые 406 из 1000 компьютеров "подхватят" вирус.

За последние 18 месяцев самым распространенным вирусом стал Word.concept. По данным NCSA, этот макровирус поставил рекорд по скорости распространения и заразил до 49% систем опрошенных компаний. При таких темпах число случаев заражения в 1997 году может увеличиться втрое.

NCSA планирует использовать результаты исследования для предупреждения широкой общественности о грозящей опасности.

- Кристи Эссик,

Служба новостей IDG, Лондон

Trend Micro открывает антивирусный узел Web

Больше вам не нужно устанавливать антивирусное ПО для поиска вирусов. Отныне посетители Web могут бесплатно пройти проверку на вирус по Internet, подключившись к узлу housecall.antivirus.com/. Поиск и удаление распространенных вирусов с гибких, жестких и даже сетевых дисков производит компонент ActiveX.

Новый узел, созданный Trend Micro, пока функционирует лишь в порядке эксперимента. Однако компания надеется, что к четвертому кварталу аналогичные методики будут использоваться для поиска вирусов в корпоративных intranet.

Проверка каждого ПК в сети на вирусы может производиться автоматически, по установленному расписанию. Антивирусное ПО при этом будет регулярно генерировать отчеты об обнаруженных в сети предприятия вирусах и принятых против них мерах.

Trend уже предлагает серверную систему поиска вирусов для локальных корпоративных сетей. Логическим продолжением должен стать выпуск аналогичной системы для intranet.

Преимущество компонентов ActiveX в том, что предусмотрена возможность работы одной и той же версии в нескольких ОС, в том числе Windows 3.1 и Windows 95. Однако если пользователь уверен, что компонент ActiveX поступил из "надежного" источника, то с его помощью он может выполнить любые операции. За этот недостаток в системе безопасности технология ActiveX неоднократно подвергалась критике. Апплеты компонентной архитектуры Java работают под более строгим контролем.

Конечно, возникает определенная угроза в тот момент, когда полученный по сети компонент ActiveX начинает просматривать жесткий диск, но не страшнее, чем в случае, когда вы устанавливаете незнакомую программу с жесткого диска. Так или иначе приходится положиться на создателей программы.

Пользователям также придется доверить Trend (или кому-то еще) свои персональные ключи к шифру, используемому для пометки компонентов ActiveX и обеспечивающему надежность источника. "Если кто-то разузнает ваш личный ключ, неизбежен крах всей системы", - предупреждает Гари Макгроу, соавтор книги "Безопасность Java: вредоносные апплеты, бреши и методы защиты".

Поделитесь материалом с коллегами и друзьями