Вирусы

Вирусы

Что такое компьютерный вирус?

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

Основные типы компьютерных вирусов

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

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

– загрузочные вирусы; так называют вирусы, заражающие загрузочные секторы дискет и винчестеров;

– файловые вирусы; в простейшем случае такие вирусы заражают исполняемые файлы; если с загрузочными вирусами всё более или менее ясно, то файловые вирусы – это гораздо менее определённое понятие; достаточно, к примеру, сказать, что файловый вирус может вообще не модифицировать файл (вирусы-спутники и вирусы семейства Dir-II);

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

- Вирусы, написанные на т.н. макроязыках, формально являются файловыми, но заражают не исполняемые файлы, а файлы данных, правда, устроенные так, что их можно заражать, – это уже на совести издателей программного обеспечения. Примером могут служить вирусы написанные на VisualBasic для MSОffice. На сегодняшний день это самый распространенный тип вирусов. Некоторые из них могут самостоятельно распространятся по электронной почте, беря базу адресов из MicrosoftOutlook.

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

Испорченные и зараженные файлы

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

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

Вирусом могут быть заражены следующие виды файлов:

1. Исполнимые файлы, т.е. файлы с расширениями имени .COM и .EXE, а также оверлейные файлы, загружаемые при выполнении других программ. Вирус в зараженных исполнимых файлах начинает свою работу при запуске той программы, в которой он находится. Наиболее опасны те файловые вирусы, которые после своего запуска остаются в памяти резидентно – они могут заражать файлы и вредить до следующей перезагрузки компьютера. А если они заразят любую программу, запускаемую из файла AUTOEXEC.BAT или CONFIG.SYS, то и при перезагрузке с жесткого диска вирус снова начнёт свою работу.

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

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

3. Драйверы устройств, т.е. файлы, указываемые в приложении Device файла CONFIG.SYS. Вирус, находящийся в них, начинает свою работу при каждом обращении к соответствующему устройству. Вирусы заражающие драйверы устройств, очень мало распространены, поскольку драйверы редко переписывают с одного компьютера на другой. То же относится и к системным файлам DOS – их заражение также теоретически возможно, но для распространения малоэффективно.

Как правило, каждая конкретная разновидность вируса может заражать только один или два типа файлов. Чаще всего встречаются вирусы, заражающие исполнимые файлы. Некоторые вирусы заражают только .COM-файлы, некоторые – только .EXE-файлы, а большинство – и те и другие. На втором месте по распространенности загрузочные вирусы. Некоторые вирусы заражают и файлы, и загрузочные области дисков. Вирусы, заражающие драйверы устройств, встречаются крайне редко, обычно такие вирусы умеют заражать и исполнимые файлы.

Вирусы, меняющие файловую систему

В последнее время получили распространение вирусы нового типа – вирусы, меняющие файловую систему на диске. Эти вирусы обычно называются Dir. Такие вирусы прячут своё тело в некоторый участок диска (обычно – в последний кластер диска) и помечают его в таблице размещения файлов (FAT) как конец файла. Для всех .COM- и .EXE-файлов содержащиеся в соответствующих элементах каталога указатели на первый участок файла заменяются ссылкой на участок диска, содержащий вирус, а правильный указатель в закодированном виде прячется в неиспользуемой части элемента каталога. Поэтому при запуске любой программы в память загружается вирус, после чего он остаётся в памяти резидентно, подключается к программам DOS для обработки файлов на диске и при всех обращениях к элементам каталога выдаёт правильные ссылки. 

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

При анализе на “чистом” компьютере с помощью программ ChkDsk или NDD файловая система зараженного Dir-вирусом диска кажется совершенно испорченной. Так, программа ChkDsk выдаёт кучу сообщений о пересечениях файлов (“…cross linked on cluster...”) и о цепочках потерянных кластеров (“… lost clusters found in … chains”). Не следует исправлять эти ошибки программами ChkDsk или NDD – при этом диск окажется безнадёжно испорченным. Для исправления зараженных этими вирусами дисков надо использовать только специальные антивирусные программы (например, последние версии Aidstest).

“Невидимые” и самомодифицирующиеся вирусы

Чтобы предотвратить своё обнаружение, некоторые вирусы применяют довольно хитрые приёмы маскировки. Речь пойдёт о двух из них: “невидимых” и самомодифицирующихся вирусах.

“Невидимые” вирусы. Многие резидентные вирусы (и файловые, и загрузочные) предотвращают своё обнаружение тем, что перехватывают обращения DOS (и тем самым прикладных программ) к зараженным файлам и областям диска и выдают их в исходном (незараженном) виде. Разумеется этот эффект наблюдается только на зараженном компьютере – на “чистом” компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить.

Заметим, некоторые антивирусные программы могут обнаруживать “невидимые” вирусы даже на зараженном компьютере. Так, программа ADinf фирмы “Диалог-Наука” для этого выполняет чтение диска, не пользуясь услугами DOS, а программа AVSP фирмы “Диалог-МГУ” – “отключает” на время  проверки вирус (последний метод работает не всегда).

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

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

Однако программы-детекторы всё же научились ловить “простые” самомодифицирующиеся вирусы. В этих вирусах вариации механизма расшифровки закодированной части вируса касаются только использования тех или иных регистров компьютера, констант шифрования, добавления “незначащих” команд и т.д. И программы-детекторы приспособились обнаруживать команды в стартовой части вируса, несмотря на маскирующие изменения в них. Но в последнее время появились вирусы с чрезвычайно сложными механизмами самомодификации. В них стартовая часть вируса генерируется автоматически по весьма сложным алгоритмам: каждая значащая инструкция расшифровщика передаётся одним из сотен тысяч возможных вариантов, при этом используется более половины всех команд Intel-8088. Проблема распознавания таких вирусов довольно сложна, и полностью надёжного решения пока не получила. Впрочем, в некоторых антивирусных программах имеются средства для нахождения подобных вирусов, а в программе Dr. Web – также и эвристические методы обнаружения “подозрительных” участков программного кода, типичные для самомодифицирующихся вирусов.

Основные методы защиты от компьютерных вирусов

Для защиты от вирусов можно использовать:

– общие средства защиты информации, которые полезны также и как страховка от физической порчи дисков, неправильно работающих программ или ошибочных действий пользователей;

профилактические меры, позволяющие уменьшить вероятность заражения вирусом;

специализированные программы для защиты от вирусов. 

Общие средства защиты информации полезны не только для защиты от вируса. Имеются две основные разновидности этих средств:

копирование информации – создание копий файлов и системных областей дисков;

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

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

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

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

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

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

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

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

Программы-детекторы и доктора

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

Следует подчеркнуть, что программы-детекторы могут обнаруживать только те вирусы, которые ей “известны”. Программа Scan фирмы McAfee Associates и Aidstest Д.Н.Лозинского позволяют обнаруживать около 1000 вирусов, но всего их более пяти тысяч! Некоторые программы-детекторы, например Norton AntiVirus или AVSP фирмы “Диалог-МГУ”, могут настраиваться на новые типы вирусов, им необходимо указать лишь комбинации байтов, присущие этим вирусам. Тем не менее невозможно разработать такую программу, которая могла бы обнаруживать любой заранее неизвестный вирус.

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

Программы-ревизоры

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

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

При каждом запросе не “подозрительное” действие на экран компьютера выводится сообщение о том, какое действие затребовано и какая программа желает его выполнить. Можно либо разрешить выполнение этого действия, либо запретить его.

Что могут и чего не могут компьютерные вирусы

Из-за незнания механизма работы компьютерных вирусов, а также под влиянием различных слухов и некомпетентных публикаций в печати часто создаётся своеобразный комплекс боязни вирусов, т.н. “вирусофобия”. Этот комплекс имеет два проявления.

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

2. Преувеличенные представления о возможностях вирусов. Некоторые думают, например, что достаточно вставить в дисковод зараженную дискету, чтобы компьютер заразился вирусом. Распространено также мнение, что для компьютеров, объединённых 

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

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

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

– на компьютере была выполнена зараженная программа типа .COM или .EXE или зараженный модуль оверлейной программы;

– компьютер загружался с дискеты, содержащей зараженный загрузочный сектор; 

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

Отсюда следует, что нет никаких оснований бояться заражения компьютера вирусом, если:

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

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

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

Список литературы

Информатика. Компьютерные вирусы. //Приложение к газете “Первое сентября”, 1997 г. № 37 

В.Э.Фигурнов. IBM PC для пользователя. 1998 г. 

Что мы знаем о вирусах. //Компьютерра,1999 г. №12