Формально компьютерным вирусом называется программа, которая может заражать другие программы путем включения в них своей, возможно модифицированной, копии, причем последняя сохраняет способность к дальнейшему размножению. Помимо заражения, вирус, подобно любой другой программе, может выполнять и другие несанкционированные действия, от вполне безобидных до крайне разрушительных. Выполняемые вирусом несанкционированные действия могут быть обусловлены наступлением определенной даты, или определенным количеством размножений, например записью зараженной программы на винчестер. При этом комбинация этих условий может быть достаточно сложной, чтобы затруднить ее определение.
Инфицируя программы, вирусы могут распространяться от одной программы к другой, что делает их более опасным по сравнению с другими методами компьютерного вандализма. Зараженные программы могут передаваться через дискеты или по сети на другие ЭВМ. В связи с широко распространенной практикой обмена и передачи программ на дискетах среди пользователей ПЭВМ количество зараженных программ может быть значительным, приводя к своего рода эпидемиям.
Упрощенно процесс заражения вирусом программных файлов можно представить следующим образом. Код зараженной программы обычно вирус получил управление первым до начала работы программы - вирусоносителя.
При передаче управления вирусу он каким-то способом находит новую программу и выполняет вставку собственной копии в начало или добавляет ее в конец этой обычно еще не зараженной программы. Если вирус дописывается в конец программы, то он то он корректирует код программы, чтобы получить управление первым. Для этого первые несколько байтов запоминаются в теле вируса, а на их место вставляется команда перевода на начало вируса. Этот способ является наиболее распространенным. Получив управление, вирус восстанавливает "спрятанные" первые байты, а после обработки своего тела передает управление программе - вирусоносителю и та нормально выполняет свои функции. Возможны случаи, когда вирус включает себя куда-то в середину программы, например в область стека. Последние случаи встречаются редко.
Наиболее распространенными типам компьютерных вирусов в MS DOS являются файловые нерезидентные, файловые резидентные и бутовые вирусы. Разбор анатомии компьютерных вирусов начнем с анализа структуры нерезидентного файлового вируса как простейшей разновидности этого класса системных программ.
Структурно компьютерный вирус можно представить состоящим из двух частей: головы и хвоста. Головой называется часть вируса, которая первой получает управление. Хвост вируса - это части вируса, расположенные отдельно от головы. В простейшем случае вирус может состоять из одной головы, и действительно файловые вирусы обычно так и устроены. Такие вирусы будем называть несегментированными. В отличие от них сегментированные вирусы имеют располагающийся отдельно хвост и в какой-то мере аналогичны оверлейным программам. Примером сегментированных вирусов являются бутовые вирусы, хотя возможна реализация сегментированных файловых вирусов.
Для удаления вирусов наиболее часто используют антивирусные программы.
Антивирусы можно классифицировать по пяти основным группам: фильтры, детекторы, ревизоры, доктора и вакцинаторы.
Антивирусы-фильтры ( сторожа ) - это резидентные программы, которые оповещают пользователя о всех попытках какой-либо программы записаться на диск, а уж тем более отформатировать его , а также о других подозрительных действиях (например о попытках изменить установки CMOS). При этом выводится запрос о разрешении или запрещении данного действия. Принцип работы этих программ основан на перехвате соответствующих векторов прерываний. К преимуществу программ этого класса по сравнению с программами-детекторами можно отнести универсальность по отношению как к известным, так и неизвестным вирусам, тогда как детекторы пишутся под конкретные, известные на данный момент программисту виды. Это особенно актуально сейчас, когда появилось множество вирусов-мутантов, не имеющих постоянного кода.
Однако, программы-фильтры не могут отслеживать вирусы, обращающиеся непосредственно к BIOS, а также BOOT-вирусы, активизирующиеся ещe до запуска антивируса, в начальной стадии загрузки DOS. К недостаткам также можно отнести частую выдачу запросов на осуществление какой-либо операции: ответы на вопросы отнимают у пользователя много времени и действуют ему на нервы. При установке некоторых антивирусов-фильтров могут возникать конфликты с другими резидентными программами, использующими те же прерывания, которые просто перестают работать.
Наибольшее распространение в нашей стране получили программы-детекторы, а вернее программы, объединяющие в себе детектор и доктор. Наиболее известные представители этого класса- -Aidstest, Doctor Web, MicroSoft AntiVirus далее будут рас - смотрены подробнее. Антивирусы-детекторы рассчитаны на конкретные вирусы и основаны на сравнении последовательности кодов содержащихся в теле вируса с кодами проверяемых программ.
Такие программы нужно регулярно обновлять, так как они быстро устаревают и не могут обнаруживать новые виды вирусов. Ревизоры - программы, которые анализируют текущее состояние файлов и системных областей диска и сравнивают его с информацией, сохранённой ранее в одном из файлов данных ревизора. При этом проверяется состояние BOOT-сектора, таб - лицы FAT, а также длина файлов, их время создания, атри-буты, контрольная сумма. Анализируя сообщения программы-ревизора, пользователь может решить, чем вызваны изменения: вирусом или нет. При выдаче такого рода сообщений не следует предаваться панике, так как причиной изменений, например, длины программы может быть вовсе и не вирус. Самые изощренные антивирусы - вакцинаторы. Они записывают в вакцинируемую программу признаки конкретного вируса так, что вирус считает ее уже зараженной. Таким образом, вирус не может заразить эту программу. Вакцины могут быть пассивные и активные.
Пассивная вакцина представляет собой пакетную программу, которая за один вызов обрабатывает специальным образом файл или все файла на диске либо в каталоге .Обычно при такой обработке проставляется признак, который вирус использует для того, чтобы отличить зараженные программы от незараженных. Например, некоторые вирусы дописывают в конец зараженных файлов определенную строку. Если искусственно дописать в конец всех программ эту строку, то такие программы не будут заражаться вирусом, поскольку он будет считать, что они уже заражены.Обработанная таким образом программа является вакцинированной против данного вируса, при чем операция вакцинации является обратимой: когда опасность заражения будет ликвидирована, строку можно из файла удалить. Другие вирусы проставляют в поле даты заражаемых программ значение секунд, равное 62(MS-DOS допускает запись такого явно нереального значения).
Вакцина может проставить этот признак у всех выполняемых программ, которые тем самым будут защищены от заражения данным типом вируса. В этом случае вакцинирование является не - обратимым в том смысле, что восстановить первоначальное значение секунд не удастся, хотя они, конечно, могут быть сброшены.
Активные вакцины являются резидентными программами, действие которых основано на имитации присутствия вируса в оперативной памяти. Поэтому они обычно применяются против резидентных вирусов. Если такая вакцина находится в памяти, то, когда при запуске зараженной программы вирус проверяет, находится ли уже в оперативной памяти его копия , вакцина имитирует наличие копии. В этом случае вирус просто передает управление программе - хозяину и его инсталляция не происходит. Простейшие вакцины представляют собой выделенный и слегка модифицированный (лишенный способности к размножению) вирус. Поэтому они могут быть оперативно изготовлены - быстрей, чем доктора. Боле сложные вакцины (поливакцины) имитируют наличие в оперативной памяти нескольких вирусов.
Конечно, приведенный список не исчерпывает всего многообразия антивирусных программ, хотя и охватывает основные их разновидности. Каждая из антивирусных программ подобна узкому специалисту в определенной области, поэтому оптимальной тактикой является комплексное применение нескольких типов антивирусных средств.
Я встречался с вирусами и на своем опыте. Как - то раз я взял у своего друга антивирусную программу "NOD 32" и решил проверить его на своем компьютере. К моему удивлению он обнаружил более 8000 зараженных файлов и более 30 разных вирусов. Перед тем я был уверен что вирусов на компьютере нет и не должно быть так как я использовал только лицензионные программы и был уверен в них.
После этой проверки мне пришлось отформатировать винчестер и переустановить Windows.Я был очень расстроен этим так как у меня была очень ценная информация, но теперь я буду пользоваться антивирусом постоянно.



