Глава 3 Методы обнаружения и удаления компьютерных вирусов

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

— профилактика вирусного заражения и уменьшение предполагаемого ущерба от такого заражения;

— использование антивирусных программ, в том числе для обезвреживания и удаления известного вируса;

— обнаружение и удаление неизвестного вируса.

3.1 Профилактика заражения компьютера

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

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

3.2. Откуда берутся вирусы

3.2.1. Глобальные сети — электронная почта

Основным источником вирусов на сегодняшний день является глобальная сеть Internet. Наибольшее число заражений вирусом происходит при обмене письмами в форматах Word/Office 97. Пользователь зараженного макровирусом редактора, сам того не подозревая, рассылает зараженные письма адресатам, а они, в свою очередь, отправляют новые зараженные письма и т. д.

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

Затем с каждого вновь зараженного компьютера отправляется еще пять писем. Одно уходит назад на уже зараженный компьютер, а четыре — новым адресатам (см. рис. 3.2).

Рис. 3.1

Заражение первых пяти компьютеров

31.jpg

Рис. 3.2 Второй уровень заражения

32.jpg

Таким образом, на втором уровне рассылки заражено уже 1+5+20=26 компьютеров (см. рис. 3.2). Если адресаты сети обмениваются письмами раз в день, то к концу рабочей недели (за 5 дней) зараженными окажутся как минимум 1+5+20+80+320=426 компьютеров. Нетрудно подсчитать, что за 10 дней заразится более ста тысяч компьютеров! Причем каждый день их количество будет учетверяться.

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

3.2.2. Электронные конференции, файл-серверы ftp и BBS

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

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

В случае массовой рассылки вируса по файл-серверам ftp/BBS пораженными практически одновременно могут оказаться тысячи компьютеров, однако в большинстве случаев "закладываются" DOS- или Windows-вирусы, скорость распространения которых в современных условиях значительно ниже, чем макровирусов. По этой причине подобные инциденты практически никогда не кончаются массовыми эпидемиями, чего нельзя сказать про макровирусы.

3.2.3. Локальные сети

Третий путь быстрого заражения — локальные сети. Если не принимать необходимых мер защиты, то зараженная рабочая станция при входе в сеть заражает один или несколько служебных файлов на сервере (в случае Novell NetWare - LOGIN.COM, см. рис. 3.3).

Рис. 3.3

Заражение служебных файлов на сервере

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

33.jpg

Рис. 3.4

Заражение на компьютере

34.jpg

Вместо служебного файла LOGIN.COM может также выступать различное ПО, установленное на сервере, стандартные документы-шаблоны или Excel-таблицы, применяемые в фирме, и т. д.

3.2.4. Пиратское программное обеспечение

Нелегальные копии программного обеспечения, как это было всегда, являются одной из основных зон риска. Часто пиратские копии на дискетах и даже на CD-ROM содержат файлы, зараженные самыми разнообразными типами вирусов.

3.2.5. Персональные компьютеры общего пользования

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

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

результате чего вирус попадает в компьютерную сеть фирмы, где работают

родители.

3.2.6. Ремонтные службы

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

3.3. Основные правила защиты

Правило первое. Крайне осторожно относитесь к программам и документам Word/Excel 97, которые получаете из глобальных сетей. Перед тем как запустить файл на выполнение или открыть документ/таблицу, обязательно проверьте их на наличие вирусов.

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

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

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

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

Желательно также перед тем как запустить новое ПО, попробовать его на тестовом компьютере, не подключенном к общей сети.

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

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

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

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

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

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

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

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

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

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

Прочие правила. Если нет нужды каждый день грузить систему с дискеты, поставьте в BIOS Setup порядок загрузки "сначала — С:, потом — А:". Это надежно защитит компьютер от загрузочных вирусов.

Не обольщайтесь встроенной в BIOS защитой от вирусов, она достаточно просто обходится многими вирусами.

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

Проблема защиты от макровирусов

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

Существует несколько приемов и встроенных в Word и Excel функций, направленных на предотвращение запуска вируса. Наиболее действенной из них является защита от вирусов, встроенная в Word и Excel (начиная с версий 7.0а). Эта защита при открытии файла, содержащего любой макрос, сообщает о его присутствии и предлагает запретить этот макрос. В результате макрос не только не выполняется, но он даже не виден средствами Word и Excel.

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

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

Запуск Word с опцией /М (или с нажатой клавишей Shift) отключает только один макрос — AutoExec — и таким образом также не может служить надежной защитой от вируса.

L4. Антивирусные программы

Наиболее эффективны в борьбе с компьютерными вирусами антивирусные программы. Однако сразу хотелось бы отметить, что не существует антивирусов, гарантирующих стопроцентную защиту от вирусов, и заявления о существовании таких систем можно расценить как либо недобросовестную рекламу, либо как непрофессионализм. Таких систем не существует, поскольку на любой алгоритм антивируса всегда можно предложить контр-алгоритм вируса, невидимого для этого антивируса (обратное, к счастью, тоже верно: на любой алгоритм вируса всегда можно создать антивирус). Более того, невозможность существования абсолютного антивируса была доказана математически на основе теории конечных автоматов, автор доказательства — Фред Коэн.

Следует также обратить внимание на несколько терминов, применяемых при обсуждении антивирусных программ.

Ложное срабатывание (False positive) — детектирование вируса в незараженном объекте (файле, секторе

или системной памяти). Обратный термин — False negative, т. е. недетектирование вируса в зараженном объекте.

Сканирование по запросу (on-demand) — поиск вирусов по запросу пользователя. В этом режиме антивирусная программа неактивна до тех пор, пока не будет вызвана пользователем из командной строки, командного файла или программы-расписания (system scheduler).

Сканирование на лету (real-time, on-the-ny) — постоянная проверка на вирусы объектов, к которым происходит обращение (запуск, открытие, создание и т. п.). В этом режиме антивирус постоянно активен, он присутствует в памяти "резидентно" и проверяет объекты без запроса пользователя.

Какой антивирус лучше?

Какой антивирус самый лучший? Любой, если на вашем компьютере вирусы не водятся и вы не пользуетесь вирусоопасны-ми источниками информации. Если же вы любитель программ, игрушек, ведете активную переписку по электронной почте и используете при этом Word или обмениваетесь таблицами Excel, то вам все-таки следует использовать какой-либо антивирус. Какой именно — решайте сами, однако есть несколько позиций, по которым различные антивирусы можно сравнить между собой.

Качество антивирусной программы определяется, на мой

взгляд, по следующим позициям, приведенным в порядке убывания их

важности.

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

2. Качество обнаружения вирусов всех распространенных типов, сканирование внутри файлов документов/таблиц (MS Word, Excel, Office 97), упакованных и архивированных файлов. Отсутствие "ложных срабатываний". Возможность лечения зараженных объектов. Для сканеров (см. ниже), как следствие, важной является также периодичность появления новых версий, т. е. скорость настройки сканера на новые вирусы.

3. Существование версий антивируса под все популярные платформы (DOS, Windows, Windows 95, Windows NT, Novell NetWare, OS/2, Alpha, Linux и т. д.), присутствие не только режима "сканирование по запросу", но и "сканирование на лету", существование серверных версий с возможностью администрирования сети.

4. Скорость работы и прочие полезные особенности, функции, "припарки" и"вкусности".

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

Качество детектирования вирусов стоит следующим пунктом по вполне естественной причине: антивирусные программы потому и называются антивирусными, что их прямая обязанность — ловить и лечить вирусы. Любой самый "навороченный" по своим возможностям антивирус бесполезен, если он не в состоянии ловить вирусы или делает это не вполне качественно. Например, если антивирус не детектирует 100% какого-либо полиморфного вируса, то при заражении системы этим вирусом такой антивирус обнаружит только часть (допустим, 99%) всех зараженных на диске файлов. Необнаруженными останется всего 1%, но когда вирус снова проникнет в компьютер, то антивирус опять обнаружит 99%, но уже не от всех файлов, а только от вновь зараженных. В результате на диске будет заражено уже 1,99% файлов. И так далее, пока все файлы на диске не будут заражены при полном молчании антивируса.

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

Многоплатформность антивируса является следующим пунктом в списке, поскольку только программа, рассчитанная на конкретную ОС, может полностью использовать функции этой системы. "Неродные" же антивирусы часто оказываются неработоспособными, а иногда даже разрушительными. Например, вирус OneHalf поразил компьютер с установленными на нем Windows 95 или Windows NT. Если для расшифровки диска (данный вирус шифрует секторы диска) воспользоваться DOS-антивирусом, то результат может оказаться плачевным: информация на диске будет безнадежно испорченной, поскольку Windows 95/NT не позволит антивирусу пользоваться прямыми вызовами чтения/записи секторов при расшифровке секторов. Антивирус же, являющийся Windows-программой, справляется с этой задачей без проблем.

Возможность проверки файлов на лету также является достаточно важной чертой антивируса. Моментальная и принудительная проверка приходящих на компьютер файлов и вставляемых дискет является практически 100%-ной гарантией от заражения вирусом, если, конечно, антивирус в состоянии детектировать этот вирус. Очень полезными являются антивирусы, способные постоянно следить за "здоровьем" серверов — Novell NetWare, Windows NT, а в последнее время, после массового распространения макровирусов, и за почтовыми серверами, сканируя входящую/исходящую почту. Если же в серверном варианте антивируса присутствует возможность антивирусного администрирования сети, то его ценность еще более возрастает.

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

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

3.4.2. Типы антивирусов

Самыми популярными и эффективными антивирусными программами являются антивирусные сканеры (другие названия: фаги, полифаги). Следом за ними по эффективности и популярности следуют CRC-сканеры (также: ревизор, checksumer, integrity checker). Часто оба приведенных метода объединяются в одну универсальную антивирусную программу, что значительно повышает ее мощность. Применяются также различного типа мониторы (блокировщики) и иммунизаторы.

Сканеры

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

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

К достоинствам сканеров относится их универсальность, к недостаткам — размеры антивирусных баз, которые сканерам приходится "таскать за собой", и относительно небольшая скорость поиска вирусов.

CRC-сканеры

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

CRC-сканеры, использующие "антистелс"-алгоритмы, являются довольно сильным оружием против вирусов: практически 100% вирусов оказываются обнаруженными почти сразу после их появления на компьютере. Однако у этого типа антивирусов есть врожденный недостаток, который заметно снижает их эффективность. Этот недостаток состоит в том, что CRC-сканеры не способны поймать вирус в момент его появления в системе, а делают это лишь через некоторое время, уже после того, как вирус разошелся по компьютеру. CRC-сканеры не могут детектировать вирус в новых файлах (в электронной почте, на дискетах, в файлах, восстанавливаемых из backup или при распаковке файлов из архива), поскольку в их базах данных отсутствует информация об этих файлах. Более того, периодически появляются вирусы, которые используют эту "слабость" CRC-сканеров, заражают только вновь создаваемые файлы и остаются, таким образом, невидимыми для CRC-сканеров.

Мониторы

Антивирусные мониторы — это резидентные программы, перехватывающие вирусоопасные ситуации и сообщающие об этом пользователю. К виру-соопасным относятся вызовы на открытие для записи в выполняемые файлы, запись в загрузочные секторы дисков или MBR винчестера, попытки программ остаться резидентно и т. д., то есть вызовы, которые характерны для вирусов в моменты их размножения.

К достоинствам мониторов относится их способность обнаруживать и блокировать вирус на самой ранней стадии его размножения, что, кстати, бывает очень полезно в случаях, когда давно известный вирус постоянно "выползает неизвестно откуда". К недостаткам относятся существование путей обхода защиты монитора и большое количество ложных срабатываний, что, видимо, и послужило причиной для практически полного отказа пользователей от подобного рода антивирусных программ (мне, например, неизвестно ни об одном мониторе для Windows 95/NT — нет спроса, нет и предложения).

Необходимо также отметить такое направление антивирусных средств, как антивирусные мониторы, выполненные в виде аппаратных компонентов компьютера ("железа"). Наиболее распространенной является встроенная в BIOS защита от записи в MBR винчестера. Однако, как и в случае с программными мониторами, такую защиту легко обойти прямой записью в порты контроллера диска, а запуск DOS-утилиты FDISK немедленно вызывает ложное срабатывание защиты.

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

Иммунизаторы

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

Второй тип иммунизации защищает систему от поражения вирусом какого-то определенного вида. Файлы на дисках модифицируются таким образом, что вирус принимает их за уже зараженные (пример — печально известная строка MSDos, предохраняющая от ископаемого вируса Jerusalem). Для защиты от резидентного вируса в память компьютера заносится программа, имитирующая копию вируса, при запуске вирус натыкается на нее и считает, что система уже заражена.

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

3.4.3. Антивирусные программы, наиболее известные в России

Мое мнение о достоинствах и недостатках антивирусных программ, представленных в России, не может быть абсолютно объективным, поскольку идея разработки антивируса AVP принадлежит мне. Однако, думаю, это мнение многим может показаться интересным, потому и привожу его здесь.

ADINF

Прекрасный DOS-ревизор с хорошо отлаженными "антистелс"-режима-ми. Однако помимо врожденных недостатков всех CRC-сканеров имеет ряд своих:

— неспособность сканировать файлы-документы (Word и Excel) делает его бессильным против наиболее распространенного типа вирусов (макровирусов);

— отсутствие полноценных He-DOS-версий;

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

Все эти недостатки, видимо, явились причиной того, что в целом очень неплохой ревизор ADINF практически так и не вышел из России и имеет за ее пределами очень небольшое число пользователей.

Фирма-разработчик: "Диалог-Наука"

Адрес: Москва, ул. Вавилова, 40

Телефон: (095) 137-0150

WWW: http://www.dials.ccas.ru

AIDSTEST

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

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

Фирма-распространитель: см. ADINF.

AVP

Один из самых надежных и мощных антивирусов в мире. За три года стал популярным не только в России, но и за ее пределами. Недостатки: отсутствие сканирования налету в версиях для DOS и OS/2; отсутствие встроенного CRC-скане-ра; по сравнению с зарубежными аналогами недостаточно развиты дополнительные "вкусности".

Фирма-разработчик: ЗАО "Лаборатория Кас-перского"

Адрес: Москва, ул. Героев Панфиловцев, 10

Телефон: (095) 948-4331

WWW: http://www.avp.ru

DrWeb

Неплохая антивирусная программа, имеющая все необходимые для современного сканера функции поиска и лечения вирусов. К недостаткам можно отнести очень небольшую базу данных (всего около 3000 вирусов). Встроенный мощный эвристический сканер сглаживал бы этот недостаток, если бы не большое число ложных срабатываний. К недостаткам также относятся ненадежность в работе (зависания) и отсутствие версий для Windows и OS/2. В результате так же, как и другой российский антивирус — ADINF, DrWeb до сих пор практически не представлен на западном рынке и является чисто российской программой.

Фирма-распространитель: см. ADINF.

NAV

По объему продаж — второй антивирус в мире (после SCAN). По качеству детектирования вирусов — весьма средняя программа. Вызывает ложные срабатывания. По остальным пунктам замечаний не имеет. Удобный пользовательский интерфейс, большое количество дополнительных функций, версии под все популярные платформы.

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

Фирма-разработчик: Symantec

Телефон: (095) 238-3822

WWW: http://www.symantec.com

SCAN

To же, что и NAV, но имеет лучшие показатели по качеству обнаружения вирусов. Отличительной чертой SCAN является наличие условно-бесплатных версий, которые можно получить на WWW и BBS.

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

Фирма-разработчик: McAfee

Телефон: (095) 956-4441

WWW: http://www.mcafee.ru

VIRUSAFE

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

Фирма-разработчик: Elashim

Фирма-распространитель: "Прикладная логистика"

Телефон: (095) 955-5372

Другие антивирусные программы

К антивирусам, которые зарекомендовали себя как достаточно надежные сканеры, можно отнести AVAST (Avil Software, Чехия), Dr.Solomon's AVTK (Anti-Virus Toolkit, S&S International, Великобритания), NVC (Norman Virus Control, Norman pie, Норвегия). Эти три программы вместе с AVP в последние годы показывают стабильно высокие результаты во всех антивирусных тестах. Неплохим сканером является также IBM Anti-Virus.

За ними следуют F-PROT (Frisk Software, Исландия) и TBAV (Thunderbyte Anti-Virus, ESaSS, Нидерланды). Эти две программы, пожалуй, представляют собой наиболее мощные и популярные в мире условно-бесплатные сканеры.

Нельзя не отметить антивирус SWEEP (Sophos pie, Великобритания). Имея не очень высокий уровень детектирования вирусов и не обладая такими необходимыми функциями, как лечение вирусов, эвристический сканер и т. д., SWEEP тем не менее является антивирусом с самым широким охватом платформ — от DOS до Alpha-компьютеров и Banyan Network.

3.4.4. Методика использования антивирусных программ

Следите за тем, чтобы антивирусные программы, используемые для проверки, были самых последних версий. Если к программам поставляются обновления, то проверьте их на "свежесть". Обычно выход новых версий антивирусов анонсируется, поэтому достаточно посетить соответствующие узлы WWW, ftp или BBS.

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

Когда на компьютере обнаружен вирус, то самое главное — не паниковать (тем, для кого встреча с вирусом — вполне обыденное явление, такая рекомендация может показаться смешной). Паника никогда не доводила до добра:

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

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

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

Если же на компьютере действительно найден вирус, то надо сделать следующее.

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

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

Если произошло заражение макровирусом, вместо отключения от сети достаточно на период лечения убедиться в том, что соответствующий редактор (Word или Excel) неактивен на всех компьютерах.

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

Если используемый антивирус не удаляет вирусы из памяти, следует перезагрузить компьютер с заведомо незараженной и защищенной от записи системной дискеты. Перезагрузка должна быть "холодной" (клавиша Reset или выключение/включение компьютера), так как некоторые вирусы "выживают" при теплой перезагрузке. Некоторые вирусы используют приемы, позволяющие им "выжить" и при холодной перезагрузке (см., например, вирус Ugly), поэтому также следует проверить в настройках BIOS пункт "последовательность загрузки А: С:", чтобы гарантировать загрузку DOS с системной дискеты, а не с зараженного винчестера.

Помимо резидентности/нерезидентности полезно ознакомиться и с другими характеристиками вируса: типами заражаемых вирусом файлов, проявлениями и пр. Единственный известный мне источник подробной информации данного рода практически обо всех известных вирусах — "Энциклопедия вирусов AVP".

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

Гораздо надежнее, конечно, восстановить зараженные файлы из резервной копии (если она есть), однако все равно потребуются услуги антивируса — вдруг не все копии вируса окажутся уничтожены, или если файлы в back-up-копии также заражены.

Следует отметить, что качество восстановления файлов многими антивирусными программами оставляет желать лучшего. Многие популярные антивирусы частенько необратимо портят файлы вместо их лечения. Поэтому если потеря файлов нежелательна, то выполнять перечисленные выше пункты следует в полном объеме.

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

Помимо перечисленных выше пунктов необходимо обращать особое внимание на чистоту модулей, сжатых утилитами типа LZEXE, PKLITE или DIET, файлов в архивах (ZIP, ARC, ICE, ARJ и т. д.) и данных в самораспаковывающихся файлах, созданных утилитами типа ZIP2EXE. Если случайно упаковать файл, зараженный вирусом, то обнаружение и удаление такого вируса без распаковки файла практически невозможно. В данном случае типичной будет ситуация, при которой все антивирусные программы, неспособные сканировать внутри упакованных файлов, сообщат о том, что от вирусов очищены все диски, но через некоторое время вирус появится опять.

Штаммы вируса могут проникнуть и в резервные копии ПО при обновлении этих копий. Причем архивы и резервные копии являются основными поставщиками давно известных вирусов. Вирус может годами сидеть в дистрибутивной копии какого-либо программного продукта и неожиданно проявиться при установке программ на новом компьютере.

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

3.5. Обнаружение неизвестного вируса

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

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

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

Не следует звонить в антивирусные фирмы с вопросом: "Наверное, у меня в компьютере вирус. Что мне делать?". Помочь вам не смогут, поскольку для удаления вируса требуется больше информации. Для того чтобы антивирусная фирма могла оказать реальную помощь, на ее адрес следует выслать образец вируса— зараженный файл в случае файлового вируса или зараженную дискету (или ее файл-образ) в случае загрузочного вируса. Каким образом обнаруживаются зараженные файлы/диски, будет рассказано ниже.

Не забывайте перед использованием антивирусных программ и утилит загрузиться с резервной копии DOS, расположенной на заведомо не имеющей вирусов и защищенной от записи дискете, и в дальнейшем использовать программы только с дискет. Это необходимо для того, чтобы застраховаться от резидентного вируса, так как он может блокировать работу программ или использовать их работу для инфицирования проверяемых файлов/дисков. Более того, существует большое количество вирусов, уничтожающих данные на диске, если они "подозревают", что их код может быть обнаружен. Конечно же это требование никак не относится к макровирусам и к дискам, размеченным одним из новых форматов (NTFS, HPFS). После загрузки DOS такой винчестер окажется недоступным для DOS-программ.

3.6. Обнаружение загрузочного вируса

В загрузочных секторах дисков расположены, как правило, небольшие программы, назначение которых состоит в определении размеров и границ логических дисков (для MBR винчестера) или загрузке ОС (для загрузочного сектора).

Вначале следует проверить содержимое сектора, подозрительного на наличие вируса. Для этой цели удобно использовать DISKEDIT из "Нортонов-ских утилит" или AVPUTIL из профессионального комплекта AVP.

Некоторые загрузочные вирусы практически сразу можно обнаружить по наличию различных текстовых строк (например, вирус Stoned содержит строки: "Your PC is now Stoned!", "LEGALISE MARIJUANA!"). Некоторые вирусы, поражающие загрузочные сектора дисков, наоборот, определяются по отсутствию строк, которые обязательно должны быть в загрузочном секторе. К таким строкам относятся имена системных файлов (например, строка IOSYSMSDOS SYS) и строки сообщений об ошибках. Отсутствие или изменение строки-заголовка загрузочного сектора (строка, содержащая номер версии DOS или название фирмы — производителя ПО, например MSDOS5.0 или MSWIN4.0) также может служить сигналом о заражении вирусом, если на компьютере не установлена Windows 95/NT, так как эти системы по неизвестной мне причине записывают в заголовок загрузочных секторов дискет случайные строки текста.

Стандартный загрузчик MS-DOS, расположенный в MBR, занимает меньше половины сектора, и многие вирусы, поражающие MBR винчестера, довольно просто заметить по увеличению длины кода, расположенного в секторе MBR.

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

Существуют также вирусы, использующие более сложные приемы заражения, например, изменяющие при инфицировании MBR всего 3 байта Disk Partition Table, соответствующие адресу активного загрузочного сектора. Для идентификации такого вируса придется провести более детальное исследование кодов загрузочного сектора вплоть до полного анализа алгоритма работы его кода.

Приведенные рассуждения основываются на том, что стандартные загрузчики (программы, записываемые операционной системой в загрузочные сектора) реализуют стандартные алгоритмы загрузки ОС и оформляются в соответствии с ее стандартами. Если же диски отформатированы утилитами, не входящими в состав DOS (например, Disk Manager), то для обнаружения в них вируса следует проанализировать алгоритм работы и оформление загрузчиков, создаваемых такой утилитой.

3.7. Обнаружение файлового вируса

Как отмечалось, вирусы делятся на резидентные и нерезидентные.

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

Можно также просмотреть дамп выполняемых файлов. В некоторых случаях можно сразу обнаружить присутствие вируса по наличию в его коде текстовых строк. Многие вирусы, например, содержат строки: ".СОМ", "*.СОМ", ".ЕХЕ", "*.ЕХЕ", "*.*", "MZ", "COMMAND" и т. д. Эти строки часто встречаются в начале или в конце зараженных файлов.

Существует и еще один способ визуального определения зараженного вирусом DOS-файла. Он основан на том, что выполняемые файлы, исходный текст которых написан на языке высокого уровня, имеют вполне определенную структуру. В случае Borland или Microsoft C/C++ сегмент кода программы находится в начале файла, а сразу за ним — сегмент данных, причем в начале этого сегмента стоит строка-копирайт фирмы — изготовителя компилятора. Если в дампе такого файла за сегментом данных следует еще один участок кода, то вполне вероятно, что файл заражен вирусом.

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

Пользователям, знакомым с языком Ассемблер, можно попробовать разобраться в кодах подозрительных программ. Для быстрого просмотра лучше всего подходит HIEW (Hacker's View) или AVPUTIL. Для более подробного изучения потребуется дизассемблер — Sourcer или IDA.

Рекомендуется запустить одну из резидентных антивирусных программ-мониторов и следить за ее сообщениями о подозрительных действиях программ (запись в СОМ- или ЕХЕ-файлы, запись на диск по абсолютному адресу и т. п.). Существуют мониторы, которые не только перехватывают такие действия, но и сообщают адрес, откуда поступил подозрительный вызов (к таким мониторам относится AVPTSR.COM). Обнаружив подобное сообщение, следует выяснить, от какой программы оно пришло, и проанализировать ее коды при помощи резидентного дизассемблера (например, AVPUTIL.COM). При анализе кодов программ, резидентно находящихся в памяти, большую помощь часто оказывает трассирование прерываний 13h и 21h.

Следует отметить, что резидентные DOS-мониторы часто оказываются бессильны, если работа ведется в DOS-окне под Windows 95/NT, поскольку Windows 95/NT позволяют вирусу работать в обход монитора (как, впрочем, и всех остальных резидентных программ). DOS-мониторы неспособны остановить также распространение Windows-вирусов.

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

3.8. Обнаружение макровируса

Характерными проявлениями макровирусов являются:

• в документах Word:

— невозможность конвертирования зараженного документа Word в другой формат;

— зараженные файлы имеют формат Template (шаблон), поскольку при заражении Word-вирусы конвертируют файлы из формата Word Document в Template;

• только в Word 6:

— невозможность записи документа в другой каталог/на другой диск по команде Save As;

• в Excel/Word:

— в STARTUP-каталоге присутствуют чужие файлы;

• в таблицах Excel версий 5 и 7:

— наличие в Книге (Book) лишних и скрытых Листов (Sheets). Для проверки системы на наличие вируса можно использовать пункт меню Tools/Macro. Если обнаружены чужие макросы, то они могут принадлежать вирусу. Однако этот метод не работает в случае "стелс"-вирусов, которые запрещают работу этого пункта меню, что, в свою очередь, является достаточным основанием считать систему зараженной.

Многие вирусы имеют ошибки или некорректно работают в различных версиях Word и Excel, в результате чего программы выдают сообщения об ошибке, например:

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

Сигналом о вирусе являются и изменения в файлах и системной конфигурации Word, Excel и Windows. Многие вирусы тем или иным образом меняют пункты меню Tools/Options: разрешают или запрещают функции Prompt to Save Normal Template, Allow Fast Save, Virus Protection. Некоторые вирусы устанавливают на файлы пароль при их заражении. Большое количество вирусов создает новые секции и/или опции в файле конфигурации Windows (WIN.INI).

Естественно, что к проявлениям вируса относятся такие очевидные факты, как появление сообщений или диалогов с достаточно странным содержанием или на языке, не совпадающем с языком установленной версии Word или Excel.

3.9. Обнаружение резидентного вируса

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

3.9.1. DOS-вирусы

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

При наличии вируса в таблице векторов прерываний (табл. 3.2) утилиты, отображающие карту распределения памяти (например, AVPTSR.COM, AVPUTIL.COM), начинают "шуметь".

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

2. Вирус может несколькими способами встроиться в DOS: в произвольный системный драйвер, в системный буфер, в другие рабочие области DOS (например, в область системного стека или в свободные места таблиц DOS и BIOS).

Наиболее "популярный" способ инфицирования вирусом произвольного системного драйвера — прикрепление тела вируса к файлу, содержащему драйвер, и модификация заголовка поражаемого драйвера. Если при этом вирус оформляет себя как отдельный драйвер', то его можно обнаружить при просмотре карты распределения памяти, содержащей список системных драйверов. Если при этом в списке присутствует драйвер, который не описан в файле CONFIG.SYS, то он и может быть вирусом. Если же вирус "приклеивается" к расположенному перед ним драйверу, не выделяя свои коды как отдельную программу-драйвер, то обнаружить его можно методами, описанными ниже.

Вирус, встраивающийся в системный буфер, должен уменьшать общее число буферов; в противном случае он будет уничтожен последующими операциями считывания с диска. Совсем не сложно написать программу, которая подсчитывает число буферов, реально присутствующих в системе, и сравнивает полученный результат со значением команды BUFFERS, расположенной в файле CONFIG.SYS (если команда BUFFERS отсутствует, то со значением, устанавливаемым DOS по умолчанию)

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

3. Вирус может проникнуть в область программ в виде-

— отдельной резидентной программы или отдельного блока памяти (МСВ);

— внутри или "приклеившись" к какой-либо резидентной программе. Если вирус внедряется в отведенную для прикладных программ область памяти в виде нового блока, создавая для себя собственный МСВ, или как отдельная резидентная программа, его можно обнаружить при просмотре подробной карты распределения памяти, отображающей адреса всех блоков МСВ. Обычно такой вирус выглядит как отдельный блок памяти (табл. 3.3, 3.4), не имеющий имени и перехватывающий один или несколько векторов прерываний (например, INT 8, 13h, ICh, 21h). Следует отметить, что вирус может выделить себе блок памяти как в обычной (conventional), так и в верхней памяти (UMB).

Адрес блока МСВ Адрес

и»

JRnaq» блок» МСВ(Кб) Имя программы владельца блока МСВ Номера векторов прерываний ;
ОЕ9А ОЕ9В 3,20К COMMAND СОМ 22,24,2Е
OF6E OF6F 0.04К блок свободен
OF72 ОЕ9В 0.15К COMMAND СОМ
10D1 10DA 23.20К AVPTSR СОМ 10,1В,23,26,27,28
2F.40
17AF 17ВО 1.70К •? 08 (вирус Yankee)
1820 ОЕ9В 539.30К COMMAND СОМ 30,31
9F04 0000 3.90К ? 1С.21 (вирус Jerusalem)

 

 

 

 

 

 

 

 


Таблица 3.3 Вирус в области пользовательских программ

Таблица 3.4 Вирус в области пользовательских программ (UMB)

Адрес блока

мсв

Адрес »»SP Размер блока МСВ<Кб) Имяврограммы владельца блока МСВ Номера векторов прерывают
03 D8 03D8 262К COMMAND СОМ 22 24 2Е
047 D 0000 006К блок свободен
0482 03D8 025К COMMAND СОМ
0493 0493 1890К AVPTSR СОМ 10 1В 23 26,27 28
2F40
08F5 03D8 618 64К COMMAND СОМ 30
АООО 0008 136 09К DOS
С13А 120К DOS вирус Tremor маскирую щиися под блок DOS
С186 5496К блок свободен


4 Вирус может проникнуть за границу памяти, выделенной под DOS Практически все загрузочные и некоторые файловые вирусы располага ются за пределами памяти, выделенной для DOS, уменьшая значение слова, расположенного по адресу [0040 0013] Первый мегабайт памяти компьютера в этом случае выглядит, как показано на рис 3 5

Рис. 3.5

Первый мегабайт зараженной памяти

35.jpg

Обнаружить такие вирусы очень просто — достаточно узнать емкость оперативной памяти и сравнить ее с реальной Если вместо 640 Кб (на неко торых старых ПК 512 Кб) система сообщит меньшее значение, то следует просмотреть дизассемблером "отрезанный" участок памяти Если на этом участке будут обнаружены коды какой-то программы, то, скорее всего, вирус найден.

Внимание! Емкость оперативной памяти может уменьшиться на один или несколько килобайтов и в результате использования расширенной памяти или некоторых типов контроллеров. При этом типичной является следующая картина: в "отрезанном" участке содержимое большинства байтов нулевое.

5. Вирус может встраиваться в конкретные, заведомо резидентные программы или "приклеиваться" к уже имеющимся блокам памяти.

Возможно инфицирование вирусом файлов DOS, которые являются резидентными (например, IO.SYS, MSDOS.SYS, COMMAND.COM), загружаемых драйверов (ANSY.SYS, COUNTRY.SYS, RAMDRIVE.SYS) и др. Обнаружить такой вирус гораздо сложнее вследствие малой скорости его распространения, но, однако, вероятность атаки подобного вируса значительно меньше. Все чаще стали встречаться "хитрые" вирусы, которые корректируют заголовки блоков памяти или "обманывают" DOS, представляя блок с кодами вируса одним целым с предыдущим блоком памяти.

В этом случае обнаружить вирус гораздо сложнее, необходимо знать реальную длину программ, размещенных в памяти, и список прерываний, которые они перехватывают. Но этот способ не очень удобен и иногда не срабатывает. Поэтому рекомендуется использовать другой метод, который может облегчить выявление вируса в подобной ситуации. Он основан на следующем свойстве: подавляющее большинство вирусов для обнаружения незараженных файлов или секторов дисков перехватывает прерывания 13h или 21h, встраиваясь в обработчик прерывания. В таком случае для обнаружения вируса достаточно просмотреть текст (команды ассемблера) обработчиков указанных прерываний (например, при помощи программы AVPUTIL.COM). Правда, для того чтобы отличить вирус от обычных программ, требуется достаточный опыт работы с вирусами и некоторое представление о структуре обработчика на незараженном компьютере. К тому же надо быть осторожным:

существует несколько вирусов, которые "завешивают" систему при попытке трассировки их кодов.

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

Конечно, существуют и другие, достаточно экзотические, способы ин-фицирования памяти вирусом, например внедрение вируса в видеопамять, в High Memory Area (HMA) или в расширенную память (EMS, XMS), но подобные вирусы встречаются достаточно редко, и они всегда проявлялись хотя бы одним из перечисленных выше признаков. Существуют также монстры, использующие защищенный режим процессоров i386 и выше. К счастью, известные вирусы такого типа либо "не живут" вместе с современными ОС и поэтому слишком заметны, либо не используют "стелс"-приемов. Однако появление полноценного "стелс"-вируса, для DOS работающего в защищенном режиме, вполне реально. Такой вирус будет невидим для DOS-задач, и обнаружить его будет возможно, только либо перенеся зараженные файлы на незараженный компьютер, либо после перезагрузки DOS с чистой дискеты.

3.9.2. Windows-вирусы

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

Поэтому единственный приемлемый способ поймать резидентный Windows-вирус — загрузить DOS и проверить запускаемые файлы Windows методами, описанными выше.

3.10. Анализ алгоритма вируса

На мой взгляд, наиболее удобным для хранения и анализа вируса объектом является файл, содержащий его (вируса) тело. Как показывает практика, для анализа файлового вируса удобнее иметь несколько зараженных файлов различной, но не очень большой, длины. При этом желательно иметь зараженные файлы всех типов (СОМ, EXE, SYS, ВАТ, NewEXE), поражаемых вирусом. Если необходимо проанализировать часть оперативной памяти, то при помощи некоторых утилит (например, AVPUTIL.COM) довольно просто выделить участок, где расположен вирус, и скопировать его на диск. Если же требуется анализ сектора MBR или загрузочного сектора, то скопировать их в файлы можно при помощи популярных "нортоновских утилит" или AVPUTIL. Для хранения загрузочного вируса наиболее удобным является файл-образ зараженного диска. Для его получения необходимо отформатировать дискету, заразить ее вирусом, скопировать образ дискеты (все сектора, начиная с нулевого и кончая последним) в файл и при необходимости сжать его (эту процедуру можно проделать при помощи "нортоновских утилит", программ TELEDISK или DISKDUPE).

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

При анализе алгоритма вируса предстоит выяснить:

— способ(ы) размножения вируса;

— характер возможных повреждений, которые вирус нанес информации, хранящейся на дисках;

— метод лечения оперативной памяти и зараженных файлов (секторов). При решении этих задач не обойтись без дизассемблера или отладчика

(например, отладчиков AFD, AVPUTIL, SoftICE, TorboDebugger, дизассемб-леров Sourcer или IDA).

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

При анализе файлового вируса необходимо выяснить, какие файлы (СОМ, ЕХЕ, SYS) поражаются вирусом, в какое место (места) в файле записывается код вируса — в начало, конец или середину файла, в каком объеме возможно восстановление файла (полностью или частично), в каком месте вирус хранит восстанавливаемую информацию.

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

Для резидентного вируса также требуется выделить участок кода, создающий резидентную копию вируса и вычислить возможные адреса точек входа в перехватываемые вирусом прерывания. Необходимо также определить, каким образом и где в оперативной памяти вирус выделяет место для своей резидентной копии: записывается ли вирус по фиксированным адресам в системные области DOS и BIOS, уменьшает ли размер памяти, выделенной под DOS (слово по адресу [0000:0413]), создает ли для себя специальный МСВ-блок либо использует какой-то другой способ.

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

Для анализа макровирусов необходимо получить текст их макросов. Для нешифрованных не-"стелс"-вирусов это достигается при помощи меню Tools/Macro. Если же вирус шифрует свои макросы или использует "стелс"-приемы, то необходимо воспользоваться специальными утилитами просмотра макросов. Такие специализированные утилиты есть практически у каждой фирмы — производителя антивирусов, однако они являются утилитами "внутреннего пользования" и не распространяются за пределы фирм.

На сегодняшний день известна единственная условно-бесплатная программа для просмотра макросов — Perform. Однако эта утилита пока не поддерживает файлы Office 97.

3.11. Восстановление пораженных объектов

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

3.11.1. Восстановление файлов-документов и таблиц

Для обезвреживания Word и Excel достаточно сохранить всю необходимую информацию в формате недокументов и нетаблиц — наиболее подходящим является текстовый RTF-формат, содержащий практически всю информацию из первоначальных документов и не содержащий макросов. Затем следует

выйти из Word или Excel, уничтожить все зараженные Word-документы, Excel-таблицы, NORMAL.DOT у Word и все документы/таблицы в StartUp-каталогах Word и Excel. После этого следует запустить Word или Excel и восстановить документы/таблицы из RTF-файлов.

В результате этой процедуры вирус будет удален из системы, а практически вся информация останется без изменений. Однако этот метод имеет ряд недостатков. Основной из них — трудоемкость конвертирования документов и таблиц в RTF-формат, если их число велико. К тому же в случае Excel необходимо отдельно конвертировать все Листы (Sheets) в каждом Excel-файле. Второй недостаток — потеря невирусных макросов, используемых при работе. Поэтому перед запуском описанной процедуры следует сохранить их исходный текст, а после обезвреживания вируса — восстановить необходимые макросы в первоначальном виде.

3.11.2. Восстановление загрузочных секторов

Восстановление секторов в большинстве случаев является довольно простой операцией и проделывается при помощи В05'овской команды SYS (загрузочные сектора дискет и логических дисков винчестера) или командой FDISK/MBR (Master Boot Record винчестера). Можно, конечно, воспользоваться утилитой FORMAT, однако практически во всех случаях команды SYS вполне достаточно.

Следует иметь в виду, что лечение секторов необходимо производить только при условии отсутствия вируса в оперативной памяти. Если копия вируса в памяти не обезврежена, то вполне вероятно, что вирус повторно заразит дискету или винчестер после того, как код вируса будет удален (даже если воспользоваться утилитой FORMAT).

Будьте крайне осторожны и при использовании FDISK/MBR. Эта команда заново переписывает код программы — загрузчика системы и не изменяет таблицу разбиения диска (Disk Partition Table). FDISK/MBR является 100%-ньш лекарством для большинства загрузочных вирусов, однако, если вирус шифрует Disk Partition Table или использует нестандартные способы заражения, FDISK/MBR может привести к полной потере информации на диске. Поэтому перед запуском FDISK/MBR убедитесь в корректности Disk Partition Table. Для этого необходимо загрузиться с незараженной DOS-дискеты и проверить корректность этой таблицы (наиболее удобная программа для этой цели — Norton Disk Editor).

Если же восстановление секторов при помощи SYS/FDISK невозможно, то следует разобраться в алгоритме работы вируса, обнаружить на диске первоначальный загрузочный/МВР-сектор и перенести его на законное место (для этого подходят Norton Disk Editor или AVPUTIL). При этом имейте в виду, что при перезаписи системных загрузчиков нужно соблюдать особую осторожность, поскольку результатом неправильного исправления сектора MBR или загрузочного сектора может быть потеря всей информации на диске (дисках).

3.11.3. Восстановление файлов

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

При лечении файлов следует учитывать следующие правила:

— необходимо протестировать и вылечить все выполняемые файлы (СОМ, ЕХЕ, SYS, оверлеи) во всех каталогах всех дисков вне зависимости от атрибутов файлов (т. е. файлы read-only, системные и скрытые);

— желательно сохранить неизменными атрибуты и дату последней модификации файла;

— необходимо учесть возможность многократного поражения файла вирусом ("бутерброд" из вирусов).

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

3.11.4. Дезактивация оперативной памяти

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

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

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

36.jpg

При дезактивации TSR-копии вируса необходимо помнить, что вирус может предпринимать специальные меры для восстановления своих кодов (например, некоторые вирусы семейства Yankee восстанавливают их при помощи методов помехозащищенного кодирования), и в этом случае придется нейтрализовать и механизм самовосстановления вируса. Некоторые вирусы, кроме того, подсчитывают CRC своей резидентной копии и перезагружают компьютер или стирают сектора диска, если CRC не совпадает с оригинальным значением. В этом случае необходимо "обезвредить" также и процедуру подсчета CRC.

X