СОДЕРЖАНИЕ
Введение
1. Антивирусные программы
2. Профилактика против заражения вирусом
3. Действия при заражении вирусом
4. Что могут и чего не могут компьютерные вирусы
5. Методы маскировки вирусов
6. Особые виды вирусов
Список использованной литературы
ВВЕДЕНИЕ
Компьютерный вирус — это специально написанная, как правило, небольшая по размерам программа, которая может записывать (внедрять) свои копии (возможно, измененные) в компьютерные программы, расположенные в исполняемых файлах, системных областях дисков, драйверах, документах и т.д., причем эти копии сохраняют возможность к «размножению».
Процесс внедрения вирусом своей копии в другую программу (системную область диска и т.д.) называется заражением, а программа или иной объект, содержащий вирус — зараженным.
Функционирование вирусов.
Когда зараженная программа начинает работу, то сначала управление получает вирус. Вирус находит и «заражает» другие программы или иные объекты, а также может выполнить какие-нибудь вредные действия. Затем вирус передает управление той программе, в которой он находится, и она работает так же, как обычно. Тем самым внешне работа зараженной программы выглядит так же, как и незараженной.
Резидентные вирусы.
Многие разновидности вирусов устроены так, что при запуске зараженной программы вирус остается резидентно, т.е. до перезагрузки DOS, в памяти компьютера. В этом случае вирус может вплоть до перезагрузки компьютера заражать программы и выполнять вредные действия на компьютере. При этом такие вирусы часто обычно стараются обеспечить свою активизацию и после перезагрузки компьютера. Имеются даже вирусы, выживающие после выключения компьютера или нажатия кнопки «Reset» с последующей загрузкой с чистой системной дискеты.
Опасные и неопасные вирусы
Большинство вирусов не выполняет каких-либо действий, кроме своего распространения (заражения других программ, дисков и т.д.) и, иногда, выдачи каких-либо сообщений или иных эффектов («приколов»), придуманных автором вируса: игры музыки, перезагрузки компьютера, выдачи на экран разных рисунков, блокировки или изменения функций клавиш клавиатуры, замедления работы компьютера, создания видеоэффектов и т.д. Однако сознательной (или по недомыслию) порчи информации эти вирусы не осуществляют. Такие вирусы условно называются неопасными. Впрочем, и эти вирусы способны причинить большие неприятности (например, перезагрузки каждые несколько минут вообще не дадут Вам работать).
Опасные и очень опасные вирусы.
Однако около трети всех видов вирусов портят данные на дисках — или сознательно, или из-за содержащихся в вирусах ошибок, скажем, из-за не вполне корректного выполнения некоторых действий. Если порча данных происходит лишь эпизодически и не приводит к тяжелым последствиям (например, портится лишь .СОМ - файлы при заражении, если длина этих файлов более 64000 байт), то вирусы называются опасными. Если же порча данных происходит часто или вирусы причиняют значительные разрушения (форматирование жесткого диска, систематическое изменение данных на диске и т.д.), то вирусы называются очень опасными.
Заражаемые объекты.
Компьютерные вирусы отличаются друг от друга по тому, в какие объекты они внедряются, иначе говоря, что они заражают. Впрочем, некоторые вирусы заражают сразу несколько видов объектов.
Файловые вирусы.
Большинство вирусов распространяется, заражая исполнимые файлы, т.е. файлы с расширениями имени .СОМ и .ЕХЕ, а также оверлейные файлы (то есть вспомогательные программные файлы, загружаемые при выполнении других программ). Такие вирусы называются файловыми. Вирус в зараженных исполнимых файлах начинает свою работу при запуске той программы, в которой он находится.
Загрузочные вирусы.
Еще один широко распространенный вид вирусов внедряется в начальный сектор дискет или логических дисков, где находится загрузчик операционной системы, или в начальный сектор жестких дисков, где находится таблица разбиения жесткого диска и небольшая программа, осуществляющая загрузку с одного из разделов, указанных в этой таблице. Такие вирусы называются загрузочными, или бутовыми (от слова boot — загрузчик). Эти вирусы начинает свою работу при загрузке компьютера с зараженного диска. Загрузочные вирусы всегда являются резидентными и заражают вставляемые в компьютер дискеты. Встречаются загрузочные вирусы, заражающие также и файлы — файлово-загрузочные вирусы.
Дискеты, через которые распространяются загрузочные вирусы, не обязаны быть системными. На любой дискете в начальном секторе имеется загрузчик ОС, но на системной дискете он находит файлы ОС, загружает их и передает им управление, а на несистемной дискете — не находит и выводит сообщение «Non-system disk» или др. Для заражения компьютера загрузочным вирусом достаточно всего один раз оставить зараженную дискету в дисководе А: в момент перезагрузки компьютера. При этом вирус заразит жесткий диск компьютера. И после этого при загрузке с жесткого «диска компьютера будет запускаться вирус.
Вирусы заражающие драйверы.
Некоторые вирусы умеют заражать драйверы, то есть файлы, указываемые в предложении DEVICE или DEVICEHIGH файла CONFIG.SYS. Вирус, находящийся в драйвере, начинает свою работу при загрузке данного драйвера из файла CONFIG.SYS при начальной загрузке компьютера. Обычно заражающие драйверы вирусы заражают также исполнимые файлы или загрузочные сектора дискет, поскольку иначе им не удавалось бы распространяться — ведь драйверы очень редко переписывают с одного компьютера на другой. Иногда заражение драйверов используется в качестве этапа в стратегии распространения вируса. Например, вирус JEWS-2339 при загрузке из исполнимого файла заражает все драйверы, обнаруженные в CONFIG.SYS, а при загрузке зараженного драйвера становится резидентным и заражает все файлы на дискетах (а на жестком диске, наоборот, лечит).
Вирусы, заражающие системные файлы DOS.
Очень редко встречаются вирусы, заражающие системные файлы DOS (IO.SYS или MSDOS.SYS). Эти вирусы активизируются при загрузке компьютера. Обычно такие вирусы заражают также загрузочные сектора дискет, поскольку иначе им не удавалось бы распространяться.
Вирусы, заражающие командные файлы.
Очень редкой разновидностью вирусов являются вирусы, заражающие командные файлы. Обычно эти вирусы формируют с помощью команд командного файла (командные файлы ECHO и др.) исполнимый файл на диске (как правило, в формате .СОМ), запускают этот файл, он выполняет размножение вируса и вредящие действия, после чего данный файл стирается. Вирус в зараженных командных файлах начинает свою работу при выполнении командного файла, в котором он находится. Иногда вызов зараженного командного файла вставляется в файл AUTOEXEC.BAT.
Вирусы, заражающие документы Word для Windows.
Летом 1995 г. появилась новая разновидность вирусов — вирусы, заражающие документы Word для Windows версий 6.0 и 7.0. Вследствие распространенности редактора Word для Windows такие документы имеются почти на каждом компьютере. Долгое время заражение файлов документов считалось невозможным, так как документы не содержали исполнимых программ. Однако программисты фирмы Microsoft встроили в документы Word для Windows мощный язык макрокоманд WordBasic. При этом макрокоманды не видны в редактируемом документе — для их просмотра и редактирования надо выбрать в группе меню Tools (Сервис) пункт Macro (Макрос), а много ли пользователей вообще что-то слышали об этом пункте меню... И, как говорится, «вот злонравия достойные плоды!» — на этом WordBasic стало возможно (и даже очень легко) писать вирусы. Запуск вируса происходит при открытии на редактирование зараженных документов (ведь заботливые программисты из Microsoft предусмотрели макрокоманду AutoOpen, автоматически выполняющуюся при открытии документа). При этом макрокоманды вируса записываются в глобальный шаблон NORMAL.DOT, так что при новых сеансах работы с Word для Windows вирус будет автоматически активирован. При наличии вируса при сохранении редактируемых документов или записи документов на диск под новым именем (командой Save As (Сохранить как…)) вирус копирует свои макрокоманды в записываемый на диск документ, так что тот оказывается зараженным.
Вирусы, заражающие другие объекты.
В принципе, возможно заражение и других объектов, содержащих программы в какой-либо форме — текстов программ, электронных таблиц и т.д. Например, вирус AsmVirus.238 заражает файлы программ на языке ассемблера (.ASM-файлы), вставляя туда ассемблерные команды, которые при трансляции порождают код вируса. Однако число пользователей, программирующих на языке ассемблера, невелико, поэтому широкое распространение такого вируса невозможно.
Электронные таблицы содержат макрокоманды, в том числе и макрокоманды, автоматически выполняющиеся при открытии таблицы. Поэтому для них могут быть созданы вирусы, аналогичные вирусам для документов Word для Windows. Пока что такие вирусы были созданы для таблиц табличного процессора Excel.
Как правило, каждая конкретная разновидность вируса может заражать только один или два типа объектов. Чаще всего встречаются вирусы, заражающие исполнимые файлы. Некоторые вирусы заражают только .СОМ-файлы, некоторые — только .ЕХЕ-файлы, а большинство — и те, и другие. На втором месте по распространенности загрузочные вирусы. Некоторые вирусы заражают и файлы, и загрузочные области дисков. Остальные вирусы встречаются редко.
Вирус является программой, поэтому объекты, не содержащие программ и не подлежащие преобразованию в программы, заражены вирусом быть не могут. Например, графические файлы форматов .BMP, -PCX, -GIF, .WMF и др. содержат только описания рисунков, поэтому как бы их вирус ни изменял, при просмотре или ином использовании графического файла можно получить искаженный рисунок или сообщения о неправильном формате файла, но вирус при этом запущен быть не может. Иными словами, не содержащие программ объекты вирус может только испортить, но не заразить. К числу таких объектов относятся текстовые файлы (кроме командных файлов и текстов программ), документы простых редакторов документов типа ЛЕКСИКОНа или Multi-Edit, информационные файлы баз данных и т.д.
1. АНТИВИРУСНЫЕ ПРОГРАММЫ
Для защиты от вирусов созданы специальные антивирусные программы, позволяющие выявлять вирусы, лечить зараженные файлы и диски, обнаруживать и предотвращать подозрительные (характерные для вирусов) действия. Разумеется, антивирусные программы надо применять наряду с регулярным резервированием данных и использованием профилактических мер, позволяющих уменьшить вероятность заражения вирусом.
Виды антивирусных программ.
Антивирусные программы можно разделить на виды в соответствии с выполняемыми ими функциями.
Детекторы.
Программы-детекторы позволяют обнаруживать файлы, зараженные одним из нескольких известных вирусов. Некоторые программы-детекторы также выполняют эвристический анализ файлов и системных областей дисков, что часто (но отнюдь не всегда) позволяет обнаруживать новые, не известные программе-детектору, вирусы. Многие программы-детекторы позволяют также «лечить» зараженные файлы или диски, удаляя из них вирусы (разумеется, лечение поддерживается только для вирусов, известных программе-детектору).
Ревизоры.
Программы-ревизоры запоминают сведения о состоянии файлов и системных областей дисков, а при последующих запусках — сравнивают их состояние с исходным. При выявлении несоответствий об этом сообщается пользователю. Часто ревизоры можно настроить так, чтобы они выдавали сообщения только о подозрительных (характерных для вирусов или недопустимых) изменениях, не беспокоя лишний раз пользователя.
Часто программы-ревизоры позволяют также «лечить» зараженные файлы или диск удаляя из них вирусы (это удается сделать почти для всех типов вирусов).
Сторожа.
Программы-сторожа (или фильтры) располагаются резидентно в оперативной памяти компьютера и проверяют на наличие вирусов запускаемые файлы и вставляемые в дисководы дискеты. При наличии вируса об этом сообщается пользователю. Кроме топ многие программы-сторожа перехватывают те действия, которые используются вирусами для размножения и нанесения вреда (скажем, попытку записи в загрузочный сектор или форматирование жесткого диска), и сообщают о них пользователю. Пользователь может разрешить или запретить выполнение соответствующей операции, Программы-сторожа позволяют обнаружить многие вирусы на самой ранней стадии, когда вирус еще не успел размножиться и что-либо испортить. Тем самым можно свеет убытки от вируса к минимуму-
Степень защиты, обеспечиваемую программами-сторожами, не следует и переоценивать, поскольку некоторые вирусы для своего размножения и нанесения вреда обращаются непосредственно к программам BIOS системы, не используя стандартный способ вызова этих программ через прерывания, а резидентные программы для защиты от вирус перехватывают только эти прерывания.
Многие программы-сторожа проверяют перед перезагрузкой, выполняемой по нажатии [Ctrl][AlT][Del] или по запросу программы, вставленные в дисководы дискеты на наличие загрузочных вирусов. Однако если загрузка осуществляется по нажатию кнопки «Reset» или при включении компьютера, то программы-сторожа ничем помочь не смогут — ведь заражение загрузочным вирусом происходит при загрузке операционной системы, т.е. до запуска любых программ или установки драйверов.
Иногда применяются также программы-вакцины, или иммунизаторы, они модифицируют программы и диски таким образом, что это не отражается на работе программ, но тот вирус, от которого производится вакцинация, считает эти программы или диски уже зараженными. Эти программы малоэффективны и далее не рассматриваются.
Использование антивирусных программ.
Ни один тип антивирусных программ по отдельности не дает, к сожалению, полной защиты от вирусов. Поэтому никакие простые советы типа «вставьте в команду запуска программы Aidstest в AUTOEXEC.BAT» не будут достаточными. Однако совместное использование антивирусных программ дает неплохие результаты, так как они хорошо дополняют друг друга:
• поступающие из внешних источников данные (файлы, дискеты и т.д.) проверяют программой-детектором. Если эти данные забыли проверить и зараженная программа была запущена, ее может «поймать» программа-сторож. Правда, в обоих случаях надежно обнаруживаются лишь вирусы, известные этим антивирусным программам. Неизвестные вирусы детекторы и сторожа, не включающие в себя эвристический анализатор, не обнаруживают вовсе (пример — программа Aidstest), имеющие такой анализатор — обнаруживают не более чем в 80—90% случаев;
• сторожа могут обнаруживать даже неизвестные вирусы, если они очень «нагло» себя ведут, например, пытаются отформатировать жесткий диск или внести изменения системные файлы или области диска на жестком диске. Впрочем, некоторые вирусы умеют обходить такой контроль. Более мелкие пакости вирусов (изменение программных файлов, запись в системные области дискет и т.д.) обычно не отслеживаются, так как эти действия выполняются не только вирусами, но и многими программами;
• если вирус не был обнаружен детектором или сторожем, то результаты его деятельности обнаружит программа-ревизор.
Как правило, программы-сторожа должны работать на компьютере постоянно, детекторы — использоваться для проверки поступающих из внешних источников данных (файлов и дискет), а ревизоры — запускаться раз в день для выявления и анализа изменений на дисках. Разумеется, все это должно сочетаться с регулярным резервированием данных и использованием профилактических мер, позволяющих уменьшить вероятность заражения вирусом.
Поскольку функции детектора, ревизора и сторожа дополняют друг друга, то в современные антивирусные комплекты программ обычно входят компоненты, реализующие все эти функции. При этом часто функции детектора и ревизора совмещаются в одной программе.
Пример. В антивирусном комплексе Norton AntiVirus функции детектора ревизора выполняет основная программа комплекса (NAVW.EXE или NAVW32.EXE), функции сторожа — отдельная резидентная программа (NAVTSR.EXE или NAVBRES.EXE).
В антивирусном комплекте DSAV фирмы «Диалог-Наука» функции детектора и ревизора выполняются отдельными программами (причем в качестве детекторов предлагается использовать сразу две программы — Aidstest и Dr. Web). Однако некоторые элементы интеграции в этом комплексе все же есть: программа-ревизор ADinf может формировать список измененных файлов, а программы Aidstest и Dr. Web — проверять файлы только из этого списка. Это заметно сокращает время проверки жестких дисков на наличие вирусов.
А в качестве фильтра фирма «Диалог-Наука» предлагает аппаратно-программный комплекс Sheriff, который позволяет на аппаратном уровне выявлять и пресекать нежелательную деятельность вирусов: изменение загрузочных областей дисков, системных файлов DOS, иных файлов по указанию пользователя. Такая защита гораздо надежнее, чем программная, поскольку ее ни один вирус обойти не может. Однако Sheriff имеет и недостаток — он не проверяет запускаемые программы на наличие вирусов.
2. ПРОФИЛАКТИКА ПРОТИВ ЗАРАЖЕНИЯ ВИРУСОМ
В настоящем разделе описываются меры, которые позволяют уменьшить вероятность заражения компьютера вирусом, а также обнаружить заражение, если оно произошло, как можно раньше. Если Вы будете неуклонно применять данные меры «компьютерной гигиены», то на Вашем компьютере вряд ли заведутся вирусы (подобно тому, как у чистоплотного и соблюдающего меры гигиены человека вряд ли заведутся вши).
Наряду с профилактическими мерами против заражения вирусом необходимо использовать и общие меры, обеспечивающие сохранность данных: регулярное создание резервных копий, использование методов ограничения доступа к данным и т.д.
Проверка данных, поступающих извне.
Все принесенные дискеты или полученные извне (скажем, по электронной почте) файлы перед использованием следует проверить на наличие вируса с помощью программ-детекторов. Не используйте и не запускайте принесенные извне программы, назначение которых Вам непонятно.
Если полученные файлы содержатся в архивах, следует извлечь их из, архивов и проверить программами-детекторами сразу после этого (впрочем, некоторые программы-детекторы могут просматривать отдельные типы архивов сами). Если файлы из архивов можно извлечь только программой установки пакета программ, то надо выполнить установку этого пакета и сразу после этого проверить записанные на диск файлы, как это описано выше. Желательно выполнять установку при включенной резидентной программе-стороже для защиты от вирусов.
Не следует переписывать программное обеспечение с других компьютеров (особенно тех, к которым могут иметь доступ различные безответственные лица), так как оно может быть заражено вирусом. Автор не считает возможным вдаваться здесь в обсуждение моральных и юридических аспектов нелегального копирования программ, однако он хочет заметить, что распространяемые производителями программного обеспечения «фирменные» дискеты с программами, как правило, не содержат вирусов.
Периодическая проверка на наличие вирусов.
Желательно обеспечить ежедневную проверку дисков на наличие вирусов. Один способ — вставить в командный файл AUTOEXEC.BAT, выполняемый при начальной загрузке DOS, вызов программы или командного файла для проверки на наличие вирусов. В главе 40 описано, как сделать, чтобы эта программа или командный файл вызывались не чаще одного раза в день. Так, при использовании антивирусного комплекта DSAV «Диалог-Наука» можно из файла AUTOEXEC.BAT вызвать командный файл, запускающий программу-ревизора ADinf, который составляет список измененных файлов, используемый затем программами-детекторами Aidstest и Dr.Web (это позволяет существенно сократить время проверки). Пример такого командного файла включен в комплект поставки антивирусного комплекта DSAV.
При работе в среде Windows, Windows 95 и т.д. для ежедневного выполнения проверки на наличие вирусов можно использовать программы-планировщики типа Scheduler из Norton Desktop for Windows, System Agent из Microsoft Plus! (пакета дополнений для Windows 95), Norton Commander Scheduler из Norton Commander для Windows 95 и т.д.
Защита от загрузочных вирусов.
Если программа установки конфигурации компьютера позволяет отключить загрузку с дискеты, желательно сделать это, тогда Вам никакие загрузочные вирусы не будут страшны.
На прочих компьютерах перед перезагрузкой с жесткого диска убедитесь, что в дисководе А: нет какой-либо дискеты. Если там имеется дискета, то откройте дверцу дисковода перед перезагрузкой.
Если Вы хотите перезагрузить компьютер с дискеты, пользуйтесь только защищенной от записи «эталонной» дискетой с операционной системой.
Защита от вирусов документов Word для Windows.
Вирус, заражающие документы Word для Windows, запускаются благодаря тому, что в них имеется макрокоманда AutoOpen, автоматически запускающаяся при открытии документа. Однако запуск этой макрокоманды (как и ее «коллег» — AutoExec, AutoNew, AutoClose и AutoExit, выполняющихся при запуске Word, создании нового документа, закрытии документа и выходе из Word) блокируется при нажатии клавиши [Shift]. Так что Вы можете нажимать [Shift] при открытии полученных со стороны документов, и никакой вирус, заражающий документы Word для Windows, Вам будет не страшен.
Однако лучше не надеяться на то, что Вы всегда будете нажимать в нужный момент клавишу [Shift] — подобное совершенство не присуще человеческой природе. Лучше создать макрокоманду с именем AutoExec, отключающую запуск макрокоманды AutoOpen (а заодно и AutoNew, AutoClose и AutoExit), и поместить ее в глобальный шаблон NORMAL. DOT. Для этого надо выбрать в группе меню Tools (Сервис) пункт Macro (Макрос), в выведенном запросе в поле Macro Name (Имя) ввести имя макрокоманды — AutoExec, в поле Macros available in (Макросы из) — выбрать значение Normal.dot (Global Template) (Обычный (общий шаблон)). Затем щелкните кнопку Create (Создать) и введите текст макрокоманды (первая и последняя строки там уже будут, так что Вам останется только вставить между ними вторую строчку):
Sub MAIN
DisableAutoMacros
End Sub
Затем нажмите [Ctrl] [S], и Word внесет изменения в глобальный шаблон. Теперь макрокоманда AutoExec будет всегда выполняться при запуске Word, отключая автоматический запуск макрокоманд, в том числе запуск макрокоманды AutoOpen.
Для программ-детекторов следует периодически обновлять их версии. Новые вирусы сейчас появляются каждую неделю, и при использовании версий программ полугодовой или годовой давности очень вероятно заражение таким вирусом, который этим программам будет неизвестен.
Для некоторых программ (например, Norton AntiVirus, Antivira Toolkit Pro) для обновления не надо покупать новую версию программы, а следует лишь переписать с помощью модема новую версию базы данных со сведениями о вирусах. Обычно это можно делать бесплатно.
Фирма «Диалог-Наука» позволяет приобрести годовой абонемент, позволяющий получать самые последние версии программ Aidstest, Dr.Web, ADinf и ADinfExt по электронной почте или через BBS фирмы «Диалог-Наука». При продлении годового абонемента предоставляется скидка 50%. Последние версии базы данных со сведениями о вирусах для программы Norton AntiVirus можно бесплатно списать по модему с FTP-сервера ftp.symantec.com или с WWW-сервера www, Symantec.com. В обоих случаях обновление версий выполняется не реже одного раза в месяц.
3. ДЕЙСТВИЯ ПРИ ЗАРАЖЕНИИ ВИРУСОМ
Симптомы заражения вирусом.
Вы можете быть уверены, что на Вашем компьютере имеется вирус, если:
• программа-детектор сообщает о наличии известного ей вируса в оперативной памяти, в файлах или системных областях на жестком диске;
• программа-ревизор сообщает об изменении файлов, которые не должны изменяться. При этом изменение часто выполняется необычным способом, например, содержание файла изменено, а время его модификации — нет;
• программа-ревизор сообщает об изменении главной загрузочной записи жесткого диска (Master Boot, она содержит таблицу разделения жесткого диска) или загрузочной записи (Boot record), а Вы не изменяли разбиение жесткого диска, не устанавливали новую версию операционной системы и не давали иных поводов к изменению данных областей жесткого диска;
• программа-сторож сообщает о том, что какая-то программа желает форматировать жесткий диск, изменять системные области жесткого диска и т.д., а Вы не поручали никакой программе выполнять подобные действия;
• программа-ревизор сообщила о наличии в памяти «невидимых» («стелс») вирусов. Это проявляется в том, что для некоторых файлов или областей дисков при чтении средствами DOS и при чтении с помощью прямых обращений к диску выдается разное содержимое;
• вирус сам Вам представился, выведя соответствующее сообщение.
Вы можете подозревать наличие вируса, если:
• антивирусная программа сообщает об обнаружении неизвестного вируса;
• на экран или принтер начинают выводиться посторонние сообщения, символы и т.д.;
• некоторые файлы оказываются испорченными;
• некоторые программы перестают работать или начинают работать неправильно;
• работа на компьютере существенно замедляется.
Впрочем, похожие явления могут вызываться не вирусом, а неправильно работающими программами, сбоями в аппаратуре и т.д.
При заражении компьютера вирусом (или при подозрении на это) важно соблюдать пять правил.
1. Прежде всего, не надо торопиться и принимать опрометчивых решений. Как говорится, «семь раз отмерь, один раз отрежь» — непродуманные действия могут привести не только к потере части данных, которые можно было бы восстановить, но и к повторному заражению компьютера.
2. Тем не менее, одно действие должно быть выполнено немедленно. Если Вы не абсолютно уверены в том, что обнаружили вирус до того, как он успел активизироваться на Вашем компьютере, то надо выключить компьютер, чтобы вирус не продолжал своих разрушительных действий.
3. Все действия по обнаружению вида заражения и лечению компьютера следует выполнять только при правильной (см. ниже) загрузке компьютера с защищенной от записи «эталонной» дискеты с операционной системой. При этом следует использовать только программы (исполнимые файлы), хранящиеся на защищенных от записи дискетах. Несоблюдение этого правила может привести к очень тяжелым последствиям, поскольку при загрузке DOS или запуске программы с зараженного диска в компьютере может быть активирован вирус, а при работающем вирусе лечение компьютера будет бессмысленным, так как оно будет сопровождаться дальнейшим заражением дисков и программ.
4. Лечение от вируса обычно несложно, но иногда (при существенных разрушениях, причиненных вирусом) оно очень затруднительно. Если Вы не обладаете достаточными знаниями и опытом для лечения компьютера, попросите помочь Вам более опытных коллег.
5. Лечение компьютера от вируса — процесс творческий, поэтому любые рекомендации по этому поводу (в том числе и приведенные ниже) не надо воспринимать как догму. Тем более писатели вирусов нет-нет, да и придумают что-то новое, и некоторые рекомендации по борьбе с вирусами из-за этого устареют...
Некоторые пользователи предпочитают лечить компьютер при заражении вирусом, не загружаясь с «чистой» дискеты, считая, что так удобнее. Что ж, раньше были хирурги, не считавшие нужным мыть руки перед операциями. Одни больные выздоравливали, а другие умирали от внесенной инфекции...
Раннее обнаружение вируса.
Если Вы используете резидентную программу-сторожа для защиты от вируса, то наличие вируса можно обнаружить на самом раннем этапе, когда вирус не успел еще активизироваться, заразить другие программы или диски и испортить какие-либо данные. Например, при обращении к дискете программа-сторож может вывести сообщение, что на дискете имеется загрузочный вирус, и предложить его удалить. Тогда для удаления вируса достаточно согласиться с предложением программы-сторожа. Никаких других действий в этом случае предпринимать не надо. Аналогично, если при проверке полученной со стороны дискеты или скачанного по электронной почте файла программами-детекторами типа Aidstest, Dr. Web и т.д. было получено сообщение, что дискета или файл содержит вирус, то надо вылечить только эту дискету или файл (разумеется, если Вы не загружались с дискеты и не запускали полученные программные файлы).
Правильная перезагрузка.
Рассмотрим более сложный случай, когда вирус уже мог активизироваться, а значит, заразить или испортить какие-то данные на дисках компьютера. При этом надо перезагрузить компьютер, начать выявление вируса и затем лечение. Однако перезагрузку компьютера надо выполнить правильно, поскольку имеются вирусы, способные выживать даже при перезагрузке с чистой системной дискеты.
1. Приготовьте системную дискету, про которую Вы точно знаете, что на ней нет вирусов. Убедитесь, что дискета защищена от записи. Вставьте дискету в дисковод А: компьютера.
2. Нажмите на кнопку перезагрузки («Reset») компьютера или выключите компьютер и включите его снова.
3. Сразу после начала загрузки в ответ на соответствующее приглашение нажмите клавишу или комбинацию клавиш, предназначенных для входа в программу конфигурирования компьютера (SETUP). Чаще всего для входа в эту программу используется клавиша [Del].
4. В программе конфигурирования компьютера убедитесь, что типы дисководов для дискет установлены правильно. Если типы этих дисководов заданы неверно, надо их исправить. Кроме того, надо проверить установки, отвечающие за порядок начальной загрузки: во многих типах BIOS можно установить, что загрузка сначала осуществляется с жесткого диска, а лишь затем с дискеты. Если такие установки включены, надо их выключить.
5. Выйдите из программы конфигурирования. Если Вы меняли параметры конфигурации компьютера, ответьте утвердительно (обычно для этого надо нажать [Y]) на вопрос о том, надо ли записывать новые значения параметров в CMOS.
6. Компьютер загрузится с системной дискеты, и вирус при этом запущен не будет.
Замечания. 1. Необходимость в шагах 3-5 приведенной выше процедуры вызвана не только тем, что при неправильных параметрах в CMOS компьютер может не загружаться с дискет, но и тем, что существуют вирусы, способные выживать при перезагрузке с дискеты. Эти вирусы исправляют информацию о типах дисководов для дискет в CMOS, например, устанавливая, что этих дисководов якобы не существует. В этом случае программа начальной загрузки загружает компьютер не с дискет, а с жесткого диска. При этом запускается вирус, который восстанавливает информацию о типах дисководов для дискет в CMOS и продолжает загрузку с дискеты. Шаги 3-5 выше позволяет предотвратить инициализацию такого вируса.
2. Перезагрузить компьютер желательно даже при обнаружении вирусов, заражающих документы Word для Windows: некоторые из этих вирусов заражают также исполнимые файлы.
Лечение компьютера от заражения вирусом имеет существенные особенности, отличающие его, скажем, от устранения повреждений файловой системы, то есть системных данных, указывающих расположение данных на дисках.
Лечение дисков программами-детекторами.
1. Мы уже говорили, что все действия по лечению компьютера от вирусов следует выполнять только после правильной загрузки компьютера с дискеты, запуская при этом только программы с защищенных от записи дискет и съемных дисков.
2. Несмотря на то, что вирусы могут испортить файловую систему на дисках (например, отдельные диски могут быть не видны), программы для устранения повреждений на дисках типа NDD, UnFormat и т.д., следует применять в последнюю очередь. Сначала надо использовать антивирусные программы-детекторы, так как они лучше знают, как именно конкретный вирус портит файловую систему. Более того, для некоторых видов вирусов (вирусов типа DIR, вирусов, шифрующих информацию на дисках и т.д.) после лечения программами типа NDD или UnFormat восстановить информацию на дисках будет невозможно.
3. Обнаружение и излечение от какого-либо вируса не означает, что компьютер «здоров» — компьютер мог быть заражен несколькими вирусами. Поэтому по окончании лечения надо обязательно еще раз проверить компьютер всеми имеющимися детекторами на отсутствие вирусов. Кстати, даже это не гарантирует отсутствия вирусов — ведь компьютер может быть заражен вирусом, неизвестным имеющимся у Вас программам-детекторам.
Запуск программ-детекторов.
Для лечения компьютера надо поочередно проверить с помощью имеющихся у Вас программ-детекторов все логические диски, расположенные на жестком диске. Сначала, чтобы оценить ситуацию, желательно запускать программы-детекторы в диагностическом режиме, без лечения или удаления зараженных объектов.
Выяснение сведений о вирусе.
Если какая-либо из программ-детекторов сообщит о том, что она нашла известный ей вирус, то желательно прочесть в ее документации или встроенном справочнике сведения о данном типе вирусов. Например, в комплект поставки программ-детекторов Aidstest и Dr. Web входят текстовые файлы с описаниями знакомых им вирусов. Сведения о вирусах позволят Вам оценить возможные последствия заражения и выбрать необходимые меры по их устранению. Например, если компьютер оказался заражен неопасным загрузочным вирусом, то кроме удаления вируса с жесткого диска и дискет, которыми Вы пользовались, делать ничего не надо. А устранение последствий заражения вирусом, изменяющим случайно выбранные участки диска, могут быть гораздо серьезнее — обычно при этом приходится заново устанавливать все пакеты программ с дистрибутивов, а собственные данные — с резервных копий.
Удаление вирусов.
Если какая-либо из программ-детекторов обнаружила вирус, то следует с помощью этой программы излечить или удалить зараженные объекты. Как правило, для системных областей диска программа-детектор предлагает выбрать их излечение или оставление без изменений, а для файлов — лечение, удаление или оставление без изменений. Удаление зараженных файлов обычно предпочтительнее их лечения, если зараженный файл входит в пакет программ, который можно заново установить с дистрибутивных дисков.
Чтобы не пропустить вирус в каком-либо файле, желательно задать режим поиска вирусов во всех файлах, а не только в программных файлах, а также режим поиска в архивах. Если Вы используете архивы видов, не поддерживаемых программой-детектором (см. замечание ниже), то может потребоваться распаковать архив во временный каталог и проверить его содержимое программой-детектором.
Если Вы лечили (а не удаляли) какие-либо файлы, рекомендуется еще раз проверить компьютер всеми имеющимися детекторами на отсутствие вирусов — ведь некоторые файлы могли быть заражены несколькими вирусами, «наслаивающимися» один на другой.
Norton AntiVirus для Windows поддерживает архивы формата .ZIP, Norton AntiVirus для Windows 95 — .ZIP и LZH, Dr. Web — -ARJ, .ZIP, .LZH, .RAR, .ZOO и .ICE, a Aidstest — не умеет искать вирусы в архивах вообще.
Если имеющиеся у Вас программы-детекторы не находят вирусов, то либо эти программы-детекторы старые, а заразивший их вирус — новый и неизвестен программам-детекторам, либо вируса на Вашем компьютере нет. Если Вы использовали программу-ревизора, то для выяснения этого вопроса можно запустить данную программу и проанализировать изменения на дисках.
Если Вы использовали программу-ревизора, например, ADinf из антивирусного комплекта DSAV фирмы «Диалог-Наука» или Norton AntiVirus в режиме инокуляции (см. главу 51), то после запуска программ-детекторов следует (независимо от результата работы с программами-детекторами) запустить программу-ревизора и проанализировать изменения на дисках. Часто программа-ревизор сама определяет подозрительные симптомы: изменения в системных областях диска, изменения в файлах при неизменной дате модификации файла и т.д.
При обнаружении изменений программа-ревизор, как правило, предлагает их исправить (восстановив прежнее состояние), пропустить (при следующей проверке снова будет выдано сообщение об изменении) или запомнить сведения о данном изменении (то есть признать его, так сказать, законным).
Лечение и его последствия.
В подавляющем большинстве случаев программы-ревизоры восстанавливают прежнее состояние системных областей дисков и программных файлов правильно. Тем не менее, иногда лечение программами-ревизорами может привести к потере части (или даже всех) данных на диске. Это происходит, например, если вирус зашифровал какие-то сектора жесткого диска. Именно поэтому выше я рекомендовал применять сначала программы-детекторы (которые, зная принципы работы данного вируса, могут расшифровать поврежденные участки диска), а лишь потом — программы-ревизоры.
Неправильное лечение программой-детектором.
Иногда программы-ревизоры выявляют, что излеченный программой-детектором исполнимый файл отличается от оригинала (того файла, который был до заражения). Обычно это означает, что программа-детектор неправильно распознала тип вируса и излечила файл неправильно. В этом случае лучше удалить такой файл и восстановить его из других источников (например, с дистрибутивных дисков).
Что делать после лечения.
После того, как Вы выявили и удалили с компьютера вирус, надо выполнить следующие действия.
Следует проверить целостность файловой системы и поверхности диска с помощью программы NDD. Если повреждения файловой системы значительны, то целесообразно скопировать с диска на дискеты (или иные носители) все нужные файлы, резервных копий которых не имеется, заново отформатировать диск, а затем заново установить все пакеты программ с дистрибутивов, а собственные данные — с резервных копий.
Надо загрузить компьютер с жесткого диска. Если компьютер не загружается, можно восстановить системные файлы и загрузочный сектор логического диска С: загрузившись с дискеты и введя команду SYS С: .
Многие вирусы не только размножаются, но и портят данные. Если Вы не уверены в том, что вирус ничего не испортил, следует сравнить файлы в резервных копиях с соответствующими файлами на диске. Большинство программ резервного копирования имеют режим сравнения резервной копии с соответствующими файлами на диске. Если Вы обнаружите повреждения в файлах, то есть изменения, которых Вы не делали, следует восстановить поврежденные файлы из резервных копий. В этом случае желательно также заново установить используемые пакеты программ с дистрибутивных дисков, так как вирус мог повредить и эти пакеты программ.
Программа ARJ тоже имеет режим сравнения содержимого архива с соответствующими файлами на диске.
Часто повреждение файла вирусом можно опознать но тому, что у файла изменилось содержимое, а дата и время последней модификации — нет.
Если обнаружившая вирус программа-детектор не умеет обрабатывать файлы архивов используемого Вами типа, следует проверить содержащиеся на дисках компьютера архивы, распаковывая их по очереди во временный каталог и проверяя содержимое этого каталога программой-детектором.
Если Вы в тот период, когда компьютер был заражен вирусом, работали с дискетами или съемными дисками, на которых не была установлена защита от записи, следует проверить эти дискеты и диски на наличие вирусов.
Установка антивирусных программ.
Потребность в лечении компьютера от вирусов, а тем более, тяжелые последствия заражения вирусом, как правило, связаны с несоблюдением элементарных правил «компьютерной гигиены», описанных в предыдущем параграфе. Если Вы больше не хотите лечить компьютер от вирусов, установите на компьютер антивирусные программы и выполняйте меры антивирусной профилактики (проверка всех полученных извне данных программами-детекторами, ежедневная проверка жесткого диска программами-ревизорами, использование резидентной программы-сторожа, регулярное обновление версий антивирусных программ и т.д.).
При лечении компьютера от вирусов возможны самые сложные случаи, некоторые из которых описаны ниже.
Если Вы уверены, что на компьютере имеется вирус, а программы-детекторы его не обнаруживают, возможно, компьютер заражен новым вирусом или у Вас устаревшие версии программ-детекторов. Последние некоммерческие версии (то есть версии двухмесячной давности) антивирусных программ Aidstest и Dr.Web фирмы «Диалог-Наука» можно бесплатно списать по модему с FTP-сервера ftp.kiam1.rssi.ru или с некоммерческой линии BBS фирмы «Диалог-Наука» (095)938-28-56. В фирме можно приобрести и годовой абонемент, дающий право на оперативное получение самых последних версий этих программ по электронной почте или через BBS фирмы «Диалог-Наука». Последние версии базы данных со сведениями о вирусах для программы Norton AntiVirus можно бесплатно списать по модему с FTP-сервера ftp.symantec.com или с WWW-сервера www.symantec.com .
Если вирус все-таки не обнаруживается, можно предпринять следующие меры:
• может быть, вируса все-таки нет и зря беспокоиться не надо? Посоветуйтесь с более опытными специалистами;
• как известно, самое надежное средство от головной боли — гильотина. Скопируйте с зараженного диска на дискеты (или иные носители) все созданные Вами файлы, резервных копий которых не имеется (кроме исполнимых файлов, ими придется пожертвовать), заново отформатируйте жесткий диск, а затем заново установите все пакеты программ с дистрибутивов, а собственные данные — с резервных копий;
• можно воспользоваться предоставляемыми фирмой «Диалог-Наука» услугами скорой антивирусной помощи с выездом специалиста на место. Естественно, это делается далеко не бесплатно. Информацию по этому поводу можно получить по тел. (095)938-28-55, 938-29-70;
• та же фирма изготавливает по заказам клиентов новые версии программ Aidstest и Dr.Web, обнаруживающие и удаляющие новые вирусы.
Иногда программы-детекторы не могут правильно восстановить загрузочный сектор диска или главную загрузочную запись жесткого диска. При этом обычно выдается соответствующее сообщение, например;
Возможно некорректное лечение загрузочного сектора! Продолжить лечение?
Это сообщение может быть вызвано тем, что исходная главная загрузочная запись (Master Boot Record, MBR) или загрузочный сектор (Boot Sector) диска не были найдены в секторе, где вирус обычно их «прячет». Причиной тому может быть либо проведенная кем-либо модификация вируса, либо заражение компьютера несколькими загрузочными вирусами. В подобных случаях обычно лучше отказаться от лечения и восстановить системные области диска другими средствами, например:
• другой программой-детектором, если она лучше знает данную модификацию вируса;
• со спасательной дискеты, созданной программой Rescue, если Вы сохраняли системные области диска на спасательную дискету;
• командой SYS, если поврежден оказался загрузочный сектор диска;
• командами FDISK/MBR и затем, после перезагрузки, NDD /REBUILD, если повреждены таблицы разбиения жесткого диска.
Однако следует иметь в виду, что иногда подобное восстановление системных областей диска приводит к потере части данных (или всех данных) на диске (например, если вирус зашифровал какие-то сектора жесткого диска).
Если вирус испортил системные области диска или содержимое CMOS-памяти, то жесткий диск или отдельные его логические диски могут быть вообще «не видны», в том числе и антивирусным программам. В этом случае следует восстановить со спасательной дискеты, созданной программой Rescue сначала содержимое CMOS-памяти, если это не помогает — то таблицы разбиения жесткого диска, а если и это не помогает — то загрузочные записи. Чтобы увидеть, помогло или нет то или иное действие, надо перезагрузить компьютер. После этого логические диски должны опознаваться, но содержимое этих дисков может быть все же недоступно (скажем, если вирус разрушил корневой каталог диска, то диск может представляться пустым или содержащим «мусор»), В этих случаях следует сначала попробовать запустить антивирусные программы-детекторы, а если они не помогут, то воспользоваться программами NDD и/или UnFormat.
Если спасательной дискеты Вы не создавали, то содержимое CMOS-памяти придется восстанавливать вручную с помощью программы конфигурирования компьютера, таблицы разбиения жесткого диска — с помощью команд FDISK/MBR и (после перезагрузки) NDD/REBUILD , а загрузочных записей — с помощью команды SYS. Однако лучше сначала посмотреть на содержимое жесткого диска программой DiskEdit (если Вы понимаете правила размещения данных на жестком дискt, чтобы выяснить, что же с жестким диском произошло.
Иногда восстановление системных областей диска приводит к потере части данных (или всех данных) на диске — например, если вирус зашифровал какие-то сектора диска.
4. ЧТО МОГУТ И ЧЕГО НЕ МОГУТ КОМПЬЮТЕРНЫЕ ВИРУСЫ
У многих пользователей компьютеров из-за незнания механизма работы компьютерных вирусов, а также под влиянием различных слухов и некомпетентных публикаций в печати, создается своеобразный комплекс боязни вирусов («вирусофобия»), Этот комплекс имеет два проявления.
1. Склонность приписывать любое повреждение данных или необычное явление на компьютере действию вирусов. Например, если у «вирусофоба» не форматируется дискета, то он объясняет это не дефектами дискеты или дисковода, а действием вирусов. Если программа «зависает», то в этом тоже, разумеется, виноваты вирусы. На самом деле необычные явления на компьютере чаще вызваны ошибками пользователя, программ или дефектами оборудования, чем действием вирусов.
2. Преувеличенные представления о возможностях вирусов. Некоторые пользователи думают, например, что достаточно вставить в дисковод зараженную дискету, чтобы компьютер заразился вирусом. Распространено также мнение, что для компьютеров, объединенных в сеть, или даже просто стоящих в одной комнате, заражение одного компьютера обязательно тут же приведет к заражению остальных.
Вирусофобия вовсе не так безобидна, как это может показаться на первый взгляд. Она приводит, например, к следующим последствиям.
1. Принятие неадекватных, я бы даже сказал, экстремистских, мер при появлении вируса или даже при подозрении на наличие вируса. Так, я знаю организацию, в которой по приказу начальства были переформатированы жесткие диски на полусотне компьютеров из-за сообщений программы Aidstest о том, что в оперативной памяти находится что-то похожее на вирус. Никакие доводы специалистов, что к таким мерам прибегать нет необходимости, услышаны не были. В спешке были потеряны сотни человеко-дней работы и множество важных документов. А потом оказалось, что никакого вируса вообще не было, a Aidstest «ругался» на русификатор Microsoft Word фирмы «ПараГраф», Кстати, в более новой версии Aidstest никаких сообщений по поводу этого русификатора уже не выдавалось.
2. Неоправданная изоляция от окружающего мира из-за боязни заражения вирусами. Я знаю несколько организаций, в которых все поступающие документы заново набивались вручную, даже если они уже имелись на дискетах. И опять же никакие доводы, что при чтении текстового файла с дискеты компьютер никак не может заразиться вирусом, не действовали. В результате из-за панической боязни вирусов впустую тратилось огромное количество труда и времени.
3. Расплывчатые (мягко выражаясь) представления многих руководителей о способностях вирусов позволяют многим пользователям и программистам ссылаться на вирусы как на причину любых задержек и трудностей. К сожалению, в большинстве случаев фраза «Я все сделал(а), но тут появился вирус и все испортил» означает, что за работу вообще не принимались.
Лучшим лекарством от вирусофобии является знание того, как работают вирусы, что они могут и чего не могут. Вирусы являются обычными программами и не могут совершать никаких сверхъестественных действий.
Хотя вирусы — это всего лишь программы, но зачастую они сделаны с весьма большой изобретательностью и коварством. Так, некоторые вирусы могут:
• обманывать резидентные программы-сторожа, например, выполняя заражение и порчу информации не с помощью вызовов функций операционной системы, а посредством прямого обращения к программам ввода-вывода BIOS или даже портам контроллера жестких дисков или дискет;
• выживать при перезагрузке — как при нажатии [Ctrl] [Alt] [Del], так и при загрузке с чистой системной дискеты после нажатия кнопки «Reset» или выключения и включения компьютера;
• заражать файлы в архивах (для извлечения файлов из архива и помещения их в архив вызывается программа-архиватор, а вывод на экран при этом блокируется);
• заражать файлы только при помещении их на дискеты или в архивы (маскируясь тем самым от обнаружения программами-ревизорами);
• бороться с антивирусными программами, например, уничтожая их файлы или портя таблицы со сведениями о файлах программы-ревизора;
• долгое время никак не проявлять своего присутствия, активизируясь через несколько недель или даже месяцев после заражения компьютера;
• шифровать системные области дисков или данные на диске, так, что доступ к ним становится возможен только при наличии данного вируса в памяти.
Чтобы компьютер заразился вирусом, необходимо, чтобы на нем хотя бы один раз была выполнена программа, содержащая вирус, а именно:
• запущен зараженный исполнимый файл или установлен зараженный драйвер;
• произведена начальная загрузка (либо даже попытка начальной загрузки) с зараженной загрузочным вирусом дискеты;
• открыт на редактирование зараженный документ Word для Windows или зараженная электронная таблица Excel.
Отсюда следует, что нет оснований бояться заражения компьютера вирусом, если:
• на компьютер переписываются файлы, не содержащие программ и не подлежащие преобразованию в программы, например, графические файлы, текстовые файлы (кроме командных файлов и текстов программ), документы редакторов документе! типа ЛЕКСИКОНа или Multi-Edit, информационные файлы баз данных и т.д.;
• на незараженном компьютере производится копирование файлов с одной дискеты на другую или иные действия, не связанные с запуском «чужих» (полученных извне) программ, перезагрузкой с «чужих» дискет или редактированием «чужих» документов Word для Windows или электронных таблиц Excel.
Кроме того, вирус заражает лишь программы, и не может заразить оборудование (клавиатуру, монитор и т.д.). Вирус не может заразить или изменить данные, находящиеся на дискетах или съемных дисках с установленной защитой от записи, а также данные, находящиеся на аппаратно защищенных (скажем, установкой перемычки на диске или с помощью комплекса Sheriff) логических дисках.
5. МЕТОДЫ МАСКИРОВКИ ВИРУСОВ
Чтобы предотвратить свое обнаружение, многие вирусы применяют довольно хитрые приемы маскировки. Мы расскажем о некоторых из них.
Многие резидентные вирусы (и файловые, и загрузочные) предотвращают свое обнаружение тем, что перехватывают обращения операционной системы (и тем самым прикладных программ) к зараженным файлам и областям диска и выдают их в исходном (незараженном) виде. Такие вирусы называются невидимыми, или stealth (стелс) вирусами. Разумеется, эффект «невидимости» наблюдается только на зараженном компьютере — на «чистом» компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить.
Некоторые антивирусные программы могут обнаруживать «невидимые» вирусы даже на зараженном компьютере. Для этого они выполняют чтение диска, не пользуясь услугами DOS. Такими программами являются, в частности, ADinf фирмы «Диалог-Наука», Norton AntiVirus и др.
Некоторые антивирусные программы используют для борьбы с вирусами свойство «невидимых» файловых вирусов «вылечивать» зараженные файлы. Они считывают (при работающем вирусе) информацию из зараженных файлов и записывают ее в файл или файлы. Затем, уже после загрузки с «чистой» дискеты, исполнимые файлы восстанавливаются в исходном виде.
Вирусы часто содержат внутри себя различные сообщения, что позволяет заподозрить неладное при просмотре содержащих вирус файлов или областей дисков. Чтобы затруднить свое обнаружение, некоторые вирусы шифруют свое содержимое, так что при просмотре зараженных ими объектов (даже на «чистом» компьютере, то есть когда вирус не активен) никаких подозрительных текстовых строк Вы не увидите.
Еще один способ, применяемый вирусами для того, чтобы укрыться от обнаружения, — модификация своего тела. Это затрудняет нахождение таких вирусов программами-детекторами — в теле таких вирусов не имеется ни одной постоянной цепочки байтов, по которой можно было бы идентифицировать вирус. Такие вирусы называются полиморфными, или самомодифицирующимися.
Многие полиморфные вирусы используют шифрование своего кода, меняя параметры этой кодировки при создании каждой копии. Кроме того, они тем или иным способом изменяют и свою стартовую часть, которая служит для раскодировки остальных команд вируса.
В простейших полиморфных вирусах вариации их кода ограничиваются использованием одних регистров компьютера вместо других, добавлением «незначащих» команд и т.д. И программы-детекторы приспособились обнаруживать команды в стартовой части вируса, несмотря на маскирующие изменения в них. Но имеются и вирусы с чрезвычайно сложными механизмами самомодификации. В них каждая значащая инструкция передается одним из сотен тысяч возможных вариантов, при этом используется более половины всех команд процессора.
Тем не менее, имеются антивирусные программы-детекторы, способные обнаруживать даже такие сложные полиморфные вирусы. Как правило, они содержат эмулятор (программный эквивалент) процессора, то есть могут интерпретировать программы без их реального выполнения (на настоящем процессоре). Такие детекторы интерпретируют анализируемые программы, то есть «выполняют» их на программном эквиваленте процессора, и в ходе этого «выполнения» решают, является ли анализируемая программа вирусом или нет. Эта задача очень сложна (точнее, неразрешима), поскольку вирусы не используют каких-то специфических действий, которые не применялись бы другими программами. Однако лучшие детекторы способны отлавливать неизвестные полиморфные вирусы в более чем 80% случаев при очень малом количестве ложных тревог. Примером такой программы является Dr. Web из антивирусного комплекта DSAV фирмы «Диалог-Наука».
Ранние файловые вирусы при заражении увеличивали длину файлов, что позволяло их легко обнаруживать. Однако затем появились вирусы, не увеличивающие длину файлов. Для этого они могут записывать свой код в «пустые» участки внутри файлов, сжимать код заражаемого файла и т.д. Разумеется, «невидимым» вирусам к таким уловкам прибегать нужды нет.
6. ОСОБЫЕ ВИДЫ ВИРУСОВ
В 1991 г. появились вирусы нового типа — вирусы, меняющие файловую систему на диске. Эти вирусы обычно называются DIR. Такие вирусы прячут свое тело в некоторый участок диска (обычно — в последний кластер диска) и помечают его в таблице размещения файлов (FAT) как конец файла или как дефектный участок. Для всех
.СОМ - и .ЕХЕ - файлов указатели на первый кластер (участок) файла, содержащиеся в соответствующих элементах каталога, заменяются ссылкой на участок диска, содержащий вирус, а правильный указатель в закодированном виде прячется в неиспользуемой части элемента каталога. Поэтому при запуске любой программы в память загружается вирус, после чего он остается в памяти резидентно, подключается к программам DOS для обработки файлов на диске и при всех обращениях к элементам каталога выдает правильные ссылки.
Таким образом, при работающем вирусе файловая система на диске кажется совершенно нормальной. При поверхностном просмотре зараженного диска на «чистом» компьютере также ничего странного не наблюдается. Разве лишь при попытке прочесть или скопировать с зараженной дискеты программные файлы из них будут прочтены или скопированы только 512 или 1024 байта, даже если файл гораздо длиннее. А при запуске любой исполнимой программы с зараженного таким вирусом диска этот диск, как по волшебству, начинает казаться исправным (неудивительно, ведь компьютер при этом становится зараженным).
При анализе на «чистом» компьютере с помощью программ ChkDsk, ScanDisk или NDD файловая система зараженного DIR-вирусом диска кажется совершенно испорченной. Так, программа ChkDsk выдает кучу сообщений о пересечениях файлов («...cross linked on cluster...») и о цепочках потерянных кластеров («...lost clusters found in ... chains»).
Особая опасность вирусов семейства DIR состоит в том, что повреждения файловой структуры, сделанные этими вирусами, на следует исправлять программами типа ScanDisk или NDD — при этом диск окажется безнадежно испорченным. Для исправления надо применять только антивирусные программы.
Замечание. Вирусы семейства DIR формально относят к файловым, хотя они меняют не сами файлы, а способ обращения операционной системы к этим файлам.
Еще один необычный тип вирусов — это вирусы, заражающие системный файл IO.SYS. Семейство этих вирусов обычно называется ЗАРАЗА, поскольку первый такой вирус выводил сообщение «В BOOT СЕКТОРЕ — ЗАРАЗА!».
Данные вирусы являются файлово-загрузочными и используют рассогласование между механизмом начальной загрузки DOS и обычным механизмом работы с файлами. При начальной загрузке MS DOS проверяется, что имена двух первых элементов в корневом каталоге загрузочного диска — IO.SYS и MSDOS.SYS, но атрибуты этих элементов не проверяются. Если имена совпадают, то программа начальной загрузки считывает в память первый кластер элемента с именем IO.SYS и передает ему управление.
Пользуясь этим несовершенством программы начальной загрузки, вирус ЗАРАЗА при заражении жестких дисков делает следующее:
• копирует содержимое файла IO.SYS в конец логического диска;
• сдвигает элементы корневого каталога, начиная с третьего, на один элемент к концу каталога;
• копирует первый элемент корневого каталога (соответствующий файлу IO.SYS) в) освободившийся третий элемент корневого каталога и устанавливает в нем номер начального кластера, указывающий на место, куда было скопировано содержимое файла IO.SYS;
• записывает свое тело в место, где находился файл IO.SYS (как правило, в начало области данных логического диска);
• у первого элемента корневого каталога диска устанавливает признак «метка тома».
Таким образом, начало оглавления корневого каталога после заражения будет выглядеть примерно так (при просмотре программой DiskEdit):
Name |
.Ext |
Size |
Date |
Time |
Cluster |
Arc |
R/0 |
Sys |
Hid |
Dir |
Vol |
Sector |
... |
I0 | SYS | 40744 | 31.05.94 | 6:22 | 2 | R/0 | Sys | Hid | Vol | ||||
MSDOS | SYS | 38138 | 14.07.95 | 23:44 | 5 | R/0 | Sys | Hid | |||||
I01 | SYS | 40744 | 31.05.94 | 6:22 | 63616 | R/0 | Sys | Hid | … |
Здесь в столбце «Cluster» у первого элемента стоит 2 — номер кластера диска, куда вирус записал свое тело (и где раньше располагался файл IO.SYS), а у третьего элемента в этом столбце указан номер того кластера, начиная с которого вирус поместил копию файла IO.SYS.
Иначе говоря, в корневом каталоге появляются два элемента с именем IO.SYS, один из которых помечен атрибутом «метка тома». Однако при начальной загрузке это не вызывает сбоев — программа начальной загрузки, проверив, что первые два элемента каталога имеют имена IO.SYS и MSDOS.SYS, загрузит кластер, указанный в первом элементе оглавления (на обычном диске — это начало файла IO.SYS, а на зараженном код вируса), и передаст ему управление. Вирус загрузит себя в оперативную память, после чего загрузит начало исходного файла IO.SYS и передаст ему управление. Далее начальная загрузка идет, как обычно.
А что же при обычной работе в DOS? Неужели в корневом каталоге не будут видны два элемента с именем IO.SYS? Оказывается, нет. DOS и все программы (кроме программы. начальной загрузки) будут считать первый элемент каталога, раз он помечен признаком «метка тома», описанием метки диска С:. А метки игнорируются при обработке файлов и каталогов, поэтому первый элемент с именем IO.SYS не будет виден при просмотре корневого каталога. Разве лишь метка тома для диска С:, выводимая при вводе команды VOL С:, станет «IO SYS» (некоторые программы будут показывать ее как IOSYS). Однако мало кто из пользователей обращает внимание на метки дисков!
Опасность вирусов семейства ЗАРАЗА состоит в следующем: даже если загрузить компьютер с «чистой» системной дискеты и ввести команду SYS С:, вирус не будет удален с диска! Команда SYS, как и остальные программы DOS, проигнорирует указывающий на вирус первый элемент корневого каталога, посчитав его описанием метки. Перезаписан будет лишь «файл-дублер» IO.SYS, описанный в третьем элементе корневого каталога. Причем если программа SYS запишет файл IO.SYS в новое место на диске, то система перестанет загружаться с жесткого диска, т.к., вирус в своем теле хранит адрес начального сектора исходного файла IO.SYS.
Поэтому обеззараживать диски, инфицированные вирусами семейства ЗАРАЗА, командой SYS не следует, это надо делать антивирусными программами. Напомним, то симптомом вируса семейства ЗАРАЗА является метка тома «IO SYS», то есть в ответ на команду DOS VOL С: выводится:
Volume in drive С is I0 SYS
Volume Serial Number is , . .
В крайнем случае, можно использовать следующий прием: с помощью программы DiskEdit снять у первых трех элементов (первый и третий — с именами IO.SYS, второй — с именем MSDOS.SYS) корневого каталога диска С: на жестком диске атрибуты «скрытый», «системный», «только для чтения» и «метка тома», переименовав при этим один из элементов с именем IO.SYS, например, в I01.SYS:
Name |
.Ext |
Size |
Date |
Time |
Cluster |
Arc |
R/0 |
Sys |
Hid |
Dir |
Vol |
Sector |
... |
I0 | SYS | 40744 | 31.05.94 | 6:22 | 2 | ||||||||
MSDOS | SYS | 38138 | 14.07.95 | 23:44 | 5 | ||||||||
I01 | SYS | 40744 | 31.05.94 | 6:22 | 63616 |
После этого файлы IO.SYS, IO1.SYS и MSDOS.SYS можно удалить командой Del. Теперь команда SYS С: сможет записать на диск С: чистые системные файлы.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
Профессиональная работа в MS-DOS, Р.Данкан, Мир, 1993.
Microsoft Systems Journal, Sept 1989. Получен из Computer Library Periodicals, Jan 1990, Doc #14753.
В.Мельников. «Защита информации в компьютерных системах». Москва. «Финансы и статистика». «Электроинформ». 1997.
«Руководство администратора безопасности системы «Secret Net NT». Информзащита.
С.Штайнке. «Идентификация и криптография». LAN\Журнал сетевых решений. 1998. №2.
В.Жельников. «Криптография от папируса до компьютера». ABF. Москва. 1997.
Г.Дейтел. “Введение в операционные системы”. Т.2. Москва. Мир. 1987.
П.Дайсон. “Овладеваем пакетом Norton Utilities 6”. Москва. Мир. 1993.