Технологии
Умеете ли вы искать вирусы?
Братья Фроловы

Спросите себя, умеете ли вы искать вирусы?
Многие пользователи, не пострадавшие от нашествия компьютерных инфекций, отвечают на этот вопрос утвердительно. Да, говорят они, умеем. Каждый день при загрузке компьютера мы запускаем через файл autoexec.bat антивирусную программу, такую как Aid-stest, Doctor Web или Antiviral Toolkit Pro. Перед использованием нового ПО, полученного через Internet, у знакомых или купленного в магазине, мы обязательно проверяем его с помощью всех имеющихся антивирусных средств.
Но получая ежедневные успокаивающие сообщения антивирусных программ, вы можете очень долго находиться в неведении – до тех пор, пока притаившийся до поры вирус-невидимка не уничтожит результаты всей вашей работы. В чем же дело? Почему даже мощные антивирусные средства иногда оказываются бессильными?
Перечислим возможные причины. Чаще всего это неудачный выбор или неправильное использование антивирусных программ или несвоевременное обновление их версий. Другая причина – способность изощренных вирусов обманывать самые мощные антивирусные программы, не говоря о таких простых сканерах, как Aidstest.
Чтобы эффективно бороться с вирусами, рядовой пользователь компьютера должен иметь представление о "привычках" вирусов и ориентироваться в методах противодействия вирусам. Залог успеха -неукоснительное следование правилам антивирусной профилактики. А детальное исследование вирусов и разработка методик их обнаружения – дело создателей антивирусных программ.

Краткий курс вирусологии
Начнем с терминологии. Вирусом называется специально созданная программа, способная самостоятельно распространяться в компьютерной среде. Если вирус попал в компьютер вместе с одной из программ или с файлом документа, то через некоторое время другие программы или файлы на этом компьютере будут заражены. Если компьютер подключен к локальной или глобальной сети, то вирус может распространиться и дальше, на другие компьютеры.
Авторы вирусных программ создают их из разных побуждений. Но результаты "работы" вирусов оказываются, как правило, схожими: инфекции портят программы и документы, находящиеся на компьютере, что часто приводит к их утрате. Некоторые вирусы способны уничтожать вообще всю информацию на дисках ПК, стоимость которой может в десятки и сотни раз превышать стоимость самого компьютера.
Внешние проявления деятельности вирусов весьма разнообразны. Все зависит от фантазии автора инфекции и возможностей компьютера. Одни вирусы относительно безопасны для данных и действуют только на нервы пользователю. Они могут, например, вызывать осыпание символов на экране, выводить на экран посторонние надписи, воспроизводить посторонние звуки через динамик ПК... Другой случай -вирус, не уничтожающий, а немного изменяющий данные на диске компьютера. Этот случай наиболее опасен. Если пользователь вовремя не обнаружит вирус, и тот незаметно изменит файлы документов или баз данных, ошибка проявится позже в виде неправильного счета или искаженного баланса.
Пока не известны вирусы, способные безвозвратно выводить из строя аппаратную часть. Но существуют вирусы, меняющие пароль на запуск компьютера. Так как пароль хранится в энергонезависимой памяти ПК, питающейся от маленькой батарейки или аккумулятора, в этих случаях, как правило, помогает временное отключение батарейки, стирающее содержимое памяти.
Встречается вирус, выполняющий компрессию заражаемых файлов. Это аналог утилиты Diet, он сжимает файлы без разрешения пользователя. Но, хотя вирус и увеличивает объем свободного дискового пространства, мириться с его присутствием не стоит. Даже "полезные", безобидные на первый взгляд инфекции таят в себе опасность. Их авторы часто допускают программные ошибки, вызывающие нарушения нормальной работы прикладных программ.
Созданы программы, позволяющие увидеть и услышать имитацию работы "бацилл". Изготовители антивирусов составляют сборники описаний вирусов, поставляемые вместе с Aidstest и Doctor Web (наиболее полные описания собраны в энциклопедии компьютерных вирусов Касперского).
Единой классификации вирусов не существует, однако можно выделить три основные группы вирусов:
– файловые вирусы;
– загрузочные вирусы;
– комбинированные файлово-загрузочные вирусы.
Кроме того, вирусы бывают мак-рокомандные, резидентные и нерезидентные, полиморфные и маскирующиеся (стелс-вирусы).

Файловые вирусы
Они записывают свой код в тело исполняемого файла. При запуске зараженной программы вирус первым получает управление, делает свое черное дело, исследует содержимое локальных дисков компьютера и сетевых каталогов в поисках очередной жертвы и записывает в нее свой код, а затем передает управление самой программе, так что пользователь ничего не замечает (рис. 1).
Механизм распространения файловых вирусов довольно прост. Создатель вируса намеренно заражает какой-либо программный файл и записывает его на электронную доску объявлений BBS, FTP-сервер, посылает в телеконференцию или отдает приятелю. Обычно для заражения выбирается что-нибудь интересное: новая игра, самораскрывающийся архив с привлекательным названием или новая версия популярной программы.
Даже бывалые системные администраторы и опытные программисты, получив новую игру от хорошего знакомого, часто запускают ее на своем компьютере без антивирусной проверки. Однако даже если вы не пользуетесь программами сомнительного происхождения, вы можете заразиться через средства доступа к Internet или им подобные или получить относительно новую разновидность файлового вируса – макрокомандой вирус, распространяющийся с документами офисных приложений, таких как Word for Windows или Excel.

Документы офисных приложений содержат в себе не только текст и графические изображения, но и макрокоманды – программы, составленные на языке, напоминающем Бейсик. Вирус может изменять существующие макрокоманды и добавлять новые, внедряя свое тело в файл документа.
Механизм распространения данных вирусов таков. В файл с безобидным именем, например readme.doc, записывается одна или несколько вирусных макрокоманд, – например, с именем AutoExec. Когда вы откр ваете такой файл в Win Word, эта макрокоман да автоматически залу скается на выполнение при этом вирус получает управление и может заразить другие документы, хранящиеся на ваших дисках. Если вирусная макрокоманда имеет имя FileSaveAs, то вирус будет распространяться при сохранении документа.
Для профилактики макрокомандных вирусов нужны антивирусные программы, способных искать подобные инфекции: проверяйте с помощью такого антивируса все новые документы, прежде чем приступить к их просмотру или редактированию.
Загрузочные вирусы
Вторая большая группа вирусов – так называемые загрузочные. Они активизируются и распространяются в момент загрузки операционной системы, еще до того как пользователь успел запустить какую-либо антивирусную программу.
Напомним основные этапы процесса запуска компьютера и загрузки операционной системы. Сразу после включения электропитания начинает работать программа инициализации, записанная в ПЗУ базовой системы ввода-вывода (BIOS). Она проверяет оперативную память и другие устройства компьютера, а затем передает управление программе начальной загрузки, которая также находится в ПЗУ BIOS.
Последняя считывает в оперативную память содержимое самого первого сектора нулевой дорожки жесткого диска, в котором находится главная загрузочная запись Master Boot Record (MBR), либо содержимое самого первого сектора нулевой дорожки дискеты, вставленной в устройство А:. Этот сектор содержит загрузочную запись Boot Record (BR).
Если в ПК имеется жесткий диск и он правильно описан в таблице конфигурации (она хранится в энергонезависимой памяти), последовательность загрузки зависит от выбора, сделанного в программе BIOS Setup. Пользователь может указать, что компьютер должен загружаться либо только с жесткого диска, либо с дискеты с устройства А:, а если такой дискеты нет, то с жесткого диска. Возможны и другие варианты, зависящие от конкретной реализации BIOS. Рассмотрим первый случай – загрузку IUJIDKO с жесткого диска. В память по фиксированному адресу считывается содержимое главной загрузочной записи MBR – программа загрузки операционной системы с логического диска. Загрузчик просматривает таблицу разделов диска Partition Table (она находится в том же секторе диска, что и сама запись MBR), ищет раздел, отмеченный как активный, и считывает в оперативную память самый первый сектор этого раздела, сектор загрузочной записи
BR. В этом секторе остается еще один загрузчик.
Задачей загрузчика BR является считывание в оперативную память стартовых модулей операционной системы и передача им управления. Способ загрузки зависит от операционной системы, поэтому каждая операционная система имеет свой собственный загрузчик BR.
Теперь перейдем к способу загрузки с дискеты. Этот процесс намного проще, так как формат дискеты в точности соответствует формату логического диска. Самый первый сектор нулевой дорожки дискеты содержит загрузочную запись BR; после считывания в память ей передается управление.

Напомним, что дискеты могут быть системными и несистемными. Системную дискету MS-DOS можно подготовить при помощи команды format, указав ей параметр /s, либо при помощи команды sys. В обоих случаях в первый сектор нулевой дорожки дискеты записывается программа начальной загрузки MS-DOS.
Если дискета была отформатирована командой format без параметра /s, она будет несистемной. Тем не менее в первый сектор нулевой дорожки дискеты все равно запишется программа, единственное назначение которой – вывод сообщения о необходимости вставить в НГМД системную дискету. И данное обстоятельство – присутствие загрузочной записи на несистемной дискете – играет важную роль при распространении загрузочных вирусов.
Из сказанного выше следует, что загрузка операционной системы является многоступенчатым процессом, ход которого зависит от разных обстоятельств. Для нас сейчас важно то, что в этом процессе задействовано три программы, которые служат объектом нападения загрузочных вирусов:
- главная загрузочная запись;
– загрузочная запись на логическом диске;
– загрузочная запись на дискете.

Вирусы могут заменять некоторые или все перечисленные объекты, встраивая в них свое тело и сохраняя содержимое оригинального загрузочного сектора в каком-либо другом, более или менее подходящем для этого месте на диске (рис. 2). При последующем включении компьютера программа загрузки заносит в память вирусный код и передает ему управление. Загрузка операционной системы продолжается под контролем вируса, что затрудняет, а в некоторых случаях и исключает его обнаружение антивирусными программами.
Загрузочные вирусы распространяются, главным образом, забывчивыми пользователями. Создатель вируса создает дискету с зараженным загрузочным сектором или заражает главную загрузочную запись на жестком диске компьютера, к которому имеют доступ много пользователей. После загрузки операционной системы вирус начинает контролировать все обращения к дискетам. Как только пользователь вставит дискету, не защищенную от записи, вирус запишет свое тело в ее загрузочный сектор. Через некоторое время все дискеты, которые вставлялись в компьютер, окажутся зараженными.
Вставив зараженную дискету в устройство А: ранее незараженного компьютера и поработав с ней, многие пользователи забывают извлечь ее оттуда. Перезапустив (или включив) компьютер, пользователь заставляет его попытаться загрузиться с забытой дискеты, и вирус проникает в главную загрузочную запись новой жертвы.
Вы можете полностью перекрыть доступ к вашему компьютеру для загрузочных вирусов, отключив в BIOS Setup возможность загрузки с устройства А:. (Впрочем, иногда, например при переустановке операционной системы, вам все же придется загружать компьютер с дискет.) Кроме того, не следует без крайней необходимости снимать с дискет защиту от записи. Особенно это относится к дистрибутивным дискетам, с которых выполняется установка ПО.
Все приходящие к вам дискеты, даже новые форматированные в запечатанной коробке, следует проверять антивирусными программами: известен случай, когда поступившие в продажу форматированные дискеты оказались зараженными загрузочным вирусом.
Комбинированные файлово-загрузочные вирусы
Самые совершенные и наиболее опасные инфекции используют методы распространения, характерные и для файловых, и для загрузочных вирусов – они записывают свое тело в файлы и загрузочные записи дискет и дисков. Вы можете получить такой вирус, загрузив компьютер с зараженной дискеты, либо запустив зараженный файл, причем в обоих случаях результат будет одинаково печальный.

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

Однако очень скоро авторы вирусов стали применять алгоритмы шифрования, затрудняющие выделение сигнатур. Такие вирусы, получившие название шифрующихся, при заражении новых файлов и системных областей диска шифруют собственный код, раскрывая его только при получении управления. Сложность обнаружения таких вирусов состоит в том, что при каждом новом заражении они случайным образом изменяют свои коды. Правда, так как процедура шифрования вируса все же неизменна, его сигнатура в конечном итоге вычисляется даже простой антивирусной программой. И поэтому вслед за шифрующимися вирусами появилась вирусы-мутанты. Более строгое их название – полиморфные вирусы. От простых шифрующихся они отличаются тем, что полностью изменяют процедуру расшифровки при создании каждой новой особи вируса, поэтому выделить из них сигнатуру невозможно.
Многие антивирусные программы не в состоянии обнаружить полиморфные вирусы. Известный антивирус Aidstest обнаруживает только самые примитивные из них, а многие пользователи этой программы позволяют успокоить себя результатами проверок и не обращают внимания на предупреждение о необходимости дополнительного тестирования с помощью пакета Doctor Web.
Для охоты за полиморфными вирусами разработаны антивирусные программы нового поколения. В качестве примеров можно привести упомянутый Doctor Web Игоря Данилова, FindVirus фирмы S&S International из комплекта Doctor Solomon's Antivirus Tool Kit и Norton Antivirus для Windows 95. Эвристический анализатор Doctor Web "выполняет" под своим управлением проверяемые программы и обнаруживает действия, характерные для вирусов. Благодаря этому он находит полиморфные вирусы, даже ранее не известные, так же легко, как и обычные, не использующие механизма маскировки.

Стелс-вирусы
В ходе проверки компьютера антивирусные программы считывают данные – файлы и системные области – с жестких дисков и дискет, пользуясь средствами операционной системы и BIOS. Стелс-вирусы, или вирусы-невидимки, после запуска оставляют в оперативной памяти компьютера специальные модули, перехватывающие обращение программ к дисковой подсистеме компьютера. Если такой модуль обнаруживает, что программа пользователя пытается прочитать зараженный файл или системную область диска, он на ходу подменяет читаемые данные и таким образом остается незамеченным, обманывая антивирусные программы.
Есть простой способ отключить механизм маскировки стелс-вирусов. Достаточно загрузить компьютер с незараженной системной дискеты и проверить компьютер антивирусной программой, не запуская программ с диска компьютера (они могут оказаться зараженными). В этом случае вирус не сможет получить управление и установить в оперативной памяти резидентный модуль, реализующий стелс-алгоритм, антивирус прочитает информацию, действительно записанную на диске, и легко обнаружит "бациллу".
Большинство антивирусных программ противодействует попыткам стелс-вирусов остаться незамеченными, но, чтобы не оставить им ни единого шанса, перед проверкой компьютера программами Antiviral Toolkit Pro, Aidstest и Doctor Web компьютер следует загружать с дискеты, на которую следует записать и антивирусные программы.
Многие антивирусы настолько успешно противостоят стелс-вирусам, что обнаруживают их при попытке замаскироваться. Такие программы считывают проверяемые файлы программ с диска, пользу-
ясь для этого несколькими различными методами – например, с помощью операционной системы и через BIOS: если обнаруживаются несовпадения, то делается вывод, что в оперативной памяти, вероятно, находится стелс-вирус.
Антивирусные программы. Способы борьбы
Существует несколько основных методов поиска вирусов, которые применяются антивирусными программами:
– сканирование;
– эвристический анализ;
– обнаружение изменений;
– резидентные мониторы. Антивирусы могут реализовывать
все перечисленные выше методики, либо только некоторые из них.
Сканирование
Это наиболее традиционный метод поиска вирусов. Он заключается в поиске сигнатур, выделенных из ранее обнаруженных вирусов. Антивирусные программы-сканеры, способные удалить обнаруженные вирусы, обычно называются полифагами.
Сканеры могут обнаружить только уже известные и предварительно изученные вирусы, для которых была определена сигнатура. Поэтому программы-сканеры не защитят компьютер от проникновения новых вирусов, число которых постоянно увеличивается. Можно сказать, что новая версия сканера устаревает к моменту ее выхода в свет.
Простые сканеры неспособны обнаружить и полиморфные вирусы, полностью меняющие свой код. Для этой цели необходимо использовать более сложные алгоритмы поиска, включающие эвристический анализ проверяемых программ.
Эвристический анализ
Этот метод нередко используется совместно со сканированием для поиска шифрующихся и полиморфных вирусов. Очень часто эвристический анализ позволяет обнаруживать ранее неизвестные инфекции, хотя лечение в этих случаях обычно оказывается невозможным.
Если эвристический анализатор сообщает, что файл или загрузочный сектор, возможно, заражен вирусом, пользователю необходимо провести дополнительную проверку с помощью самых последних версий антивирусных программ-сканеров или передать файл для исследования авторам антивирусных программ.
Обнаружение изменений
Заражая компьютер, вирус делает изменения на жестком диске: дописывает свой код в заражаемый файл, изменяет системные области диска и т.д. Антивирусные программы-ревизоры находят такие изменения: они запоминают характеристики всех областей диска, которые могут подвергаться нападению вируса, а затем периодически проверяют их и в случае обнаружения изменений выдают сообщение о подозрении на вирус.
Следует учитывать, что не все изменения вызываются вторжением вирусов. Загрузочная запись может измениться при обновлении версии операционной системы, а некоторые программы записывают данные внутри своего исполняемого файла.
Резидентные мониторы
Антивирусные программы, постоянно находящиеся в оперативной памяти компьютера и отслеживающие все подозрительные действия, выполняемые другими программами, носят название резидентных мониторов, или сторожей. К сожалению, они имеют очень много недостатков: как правило, раздражают пользователей большим количеством сообщений, по большей части не имеющим отношения к проникновению вирусов, – что делает этот класс программ малопригодными для использования.
Лучшая защита – нападение
Хотя многие пользователи до поры до времени ведут себя беспечно и не считают компьютерные вирусы серьезной угрозой, вы определенно сохраните себе нервы, а в некоторых случаях и деньги, если заранее проведете мероприятия антивирусной защиты.

Прежде всего, подготовьте системную дискету – разумеется, до появления вируса в вашем компьютере. На нее необходимо записать последние версии антивирусных программ, таких как Aidstest, Doctor Web или Antiviral Toolkit Pro, а также драйверы внешних устройств компьютера, например привода CD-ROM, и программы форматирования дисков (format), переноса операционной системы (sys) и ремонта файловой системы (Norton Disk Doctor или ScanDisk).
Кстати, системная дискета будет полезна не только в случае вирусной атаки: вы можете воспользоваться ею для загрузки компьютера и при повреждении файлов операционной системы.
Периодически тестируйте компьютер на вирусы, причем проверяйте не только исполняемые файлы (СОМ, ЕХЕ), но и пакетные файлы ВАТ, и системные области дисков. Лучше всего встроить вызов антивирусной программы в файл конфигурации autoexec.bat, чтобы проверка осуществлялась при каждом включении компьютера.
Если на диске записано много файлов, и их проверка анти-вирусами-полифагами отнимает много времени, используйте для повседневной проверки программы-ревизоры, а новые и изменившиеся файлы проверяйте полифагами.
Практически все ревизоры в случае изменения системных областей диска (обеих загрузочных записей) позволяют восстановить их, даже если не известно, какой именно вирус их заразил. Лечащий модуль ADmf Cure Module позволяет удалять неизвестные файловые вирусы. Но не спешите воспользоваться этой возможностью. Во-первых, изменение файла и системных областей может быть вызвано не нападением вируса, а гораздо более прозаическими причинами. Во-вторых, некоторые вирусы могут так внедриться в компьютер, что простое их удаление приведет к безвозвратной потере информации. В частности, весьма коварен вирус OneHalf – "одна половина". Назван он был так потому, что зашифровывает информацию на винчестере и после заражения половины диска при очередном запуске компьютера выводит на экран соответствующее сообщение. При обращении какой-либо программы к зашифрованным данным он их расшифровывает, то есть создает видимость нормальной работы. Если же его удалить, не узнав шифра, то все оставшиеся на диске закодированные данные окажутся грудой бесполезного мусора.
В любом случае перед удалением вируса с помощью ревизора попробуйте удалить его программа-ми-полифагами.
Более подробные рекомендации вы можете получить только из документации на используемые антивирусные средства защиты. Вы можете посоветоваться со специалистом по компьютерной технике или обратиться на фирму, которая занимается антивирусным обслуживанием.
Практически все современные антивирусы могут правильно работать даже на зараженном компьютере, при наличии активного вируса в его оперативной памяти. Однако перед удалением вируса все же рекомендуется предварительно загрузить компьютер с системной дискеты, дабы вирус не смог препятствовать лечению.
В последнем случае следует обратить внимание на два важных момента. Во-первых, перезагружать компьютер надо с помощью кнопки Reset или даже посредством выключения и повторного включения питания. Не используйте для перезагрузки комбинацию клавиш "Ctrl-Alt-Del": после такой процедуры некоторые вирусы все же остаются в памяти. Во-вторых, перед загрузкой ПК с дискеты проверьте конфигурацию дисковой подсистемы компьютера и особенно параметры дисководов и порядок загрузки операционной системы (должна быть установлена приоритетная загрузка с дискеты), записанные в энергонезависимой памяти BIOS. Существуют вирусы, ловко меняющие параметры BIOS: компьютер загружается с зараженного жесткого диска, в то время как пользователь думает, что загрузка происходит с чистой системной дискеты.
Обязательно проверяйте с помощью антивирусных программ все дискеты и все программы, поступающие к вам от ваших знакомых или через модем, в том числе и текстовые и табличные документы; убедитесь, что ваше антивирусное ПО способно обнаруживать макрокомандные вирусы. Если ваш компьютер подключен к локальной сети, проверяйте файлы, полученные через сеть от других пользователей.
Следите за выходом новых версий применяемых вами антивирусных средств и своевременно обновляйте их на системной дискете и своем компьютере. Используйте для восстановления зараженных файлов и системных областей диска только самые последние версии антивирусов.
Неплохой результат может дать одновременное использование нескольких антивирусных средств. Отечественное антивирусное программное обеспечение успешно конкурирует с ПО зарубежных фирм, а хорошая поддержка пользователей отечественных антивирусных программ со стороны фирм "ДиалогНаука" и "Ками" позволяет своевременно получать новые версии антивирусов и консультации по их использованию.

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