Что такое компьютерный вирус?
Компьютерный вирус – это специально написанная небольшая по размерам программа, которая может “приписывать” себя к другим программам, а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется “зараженной”. Когда такая программа начинает работу, то сначала управление получает вирус. Вирус находит и “заражает” другие программы, а также выполняет какие-нибудь вредные действия (например, портит файлы или таблицу размещения файлов на диске, “засоряет” оперативную память и т. д.). Вирус – это программа, обладающая способностью к самовоспроизведению. Такая способность является единственным свойством, присущим всем типам вирусов. Вирус не может существовать в “полной изоляции”. Это означает, что сегодня нельзя представить себе вирус, который бы так или иначе не использовал код других программ, информацию о файловой структуре или даже просто имена других программ. Причина этого довольно понятна: вирус должен каким-нибудь способом обеспечить передачу себе управления.
Основные типы компьютерных вирусов
Существует совершенно формальная система, позволяющая классифицировать компьютерные вирусы и называть их таким образом, чтобы избежать ситуации, когда один и тот же вирус имеет неузнаваемо разные имена в классификации разных разработчиков антивирусных программ. Несмотря на это, всё ещё нельзя сказать о полной унификации имён и характеристик вирусов. В значительной степени это определяется тем, что к моменту, когда были сформулированы некоторые “правила игры”, уже существовали антивирусные средства, работающие в собственной системе обозначений. Всеобщая унификация потребовала бы приложить значительные усилия и модифицировать программы и документацию. В ряде случаев это было сделано. Мы станем исходить из того, что обычному пользователю нет необходимости вникать во все тонкости функционирования вируса: объекты атаки, способы заражения, особенности проявления и пр. Но желательно знать, какими бывают вирусы, понимать общую схему их работы.
Среди всего разнообразия вирусов можно выделить следующие основные группы:
– загрузочные вирусы; так называют вирусы, заражающие загрузочные секторы дискет и винчестеров;
– файловые вирусы; в простейшем случае такие вирусы заражают исполняемые файлы; если с загрузочными вирусами всё более или менее ясно, то файловые вирусы – это гораздо менее определённое понятие; достаточно, к примеру, сказать, что файловый вирус может вообще не модифицировать файл (вирусы-спутники и вирусы семейства 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 фирмы “Диалог-МГУ” – “отключает” на время проверки вирус (последний метод работает не всегда).
Некоторые антивирусные программы используют для борьбы с вирусами свойство “невидимых” файловых вирусов “вылечивать” зараженные файлы. Они считывают (при работающем вирусе) информацию из зараженных файлов и записывают их на диск в файл или файлы, где эта информация хранится в неискаженном виде. Затем, уже после загрузки с “чистой” дискеты, исполнимые файлы восстанавливаются в исходном виде.