Как известно, прототипом Интернета является сеть Пентагона. Считается, что первый сетевой вирус Creeper появился здесь. Та программа, которая там выступала в качестве вируса, могла сама выйти в сеть и оставить на удаленной машине свою копию. Тот вирус выполнял функции, которые соответствуют функциям современного антивируса. Он распространялся по сети, после чего обнаруживал вирус Creeper и уничтожал его. Однако конкретно слова «вирус» тогда не было. Получается. Что Фред Коэн скорее является не автором вируса, а создателем термина. Тем не менее, Фред Коэн считается одним из самых авторитетных специалистов в области безопасности компьютерных сетей. Также он еще в 1987 году доказал, что нельзя создать алгоритм для стопроцентного обнаружения всех возможных вирусов. Пользователям рекомендуется только чаще обновлять антивирусное программное обеспечение.
Существуют потенциально опасные места в интернете, на которых проще всего подцепить компьютерный вирус. Поэтому если человек часто пользуется такими небезопасными ресурсами, у него должен стоять антивирус в своей самой новой комплектации.
Затем количество вирусов и число зараженных компьютеров стали лавинообразно увеличиваться в соответствии с экспоненциальным законом. Это потребовало принятия срочных мер как технического и организационного, так и юридического характера.
Среди побудительных мотивов, движущих авторами вирусов, можно назвать следующие:
― озорство и одновременно недопонимание всех последствий распространения вируса;
― стремление «насолить» кому-либо;
― неестественная потребность в совершении преступлений;
― желание самоутвердиться;
― невозможность использовать свои знания и умения в конструктивном русле (это в большей степени экономическая проблема);
― уверенность в полной безнаказанности (в ряде стран, в том числе и в нашей, пока отсутствуют соответствующие правовые нормы).
Подобно биологическим вирусам жизненный цикл компьютерных вирусов, как правило, включает следующие фазы:
1) латентный период, в течение которого вирусом никаких действий не предпринимается;
2) инкубационный период, в рамках которого вирус только размножается;
3) период проявления, в течение которого наряду с размножением выполняются несанкционированные пользователем действия.
Первые две фазы служат для того, чтобы скрыть источник вируса, канал его проникновения, и заразить (инфицировать) как можно больше файлов до выявления вируса. Длительность этих фаз может определяться временным интервалом, наступлением какого-либо события или наличием требуемой конфигурации аппаратных средств (в частности, наличием НЖМД).
Компьютерные вирусы классифицируются в соответствии со следующими признаками:
1) среда обитания;
2) способ заражения среды обитания;
3) способ активизации;
4) способ маскировки.
5) по алгоритмам функционирования
1) по среде обитания выделяют:
― файловые вирусы, инфицирующие программные файлы, т.е. файлы с программами;
― загрузочные вирусы, заражающие компоненты системной области, используемые при загрузке DOS;
― файлово-загрузочные вирусы, интегрирующие черты первых двух групп.
Файловые вирусы могут внедряться (имплантироваться) в:
― файлы с компонентами DOS;
― позиционно-независимые перемещаемые машинные программы, находящиеся в СОМ-файлах;
― позиционно-зависимые перемещаемые машинные программы, размещаемые в ЕХЕ-файлах;
― внешние драйверы устройств (SYS- и BIN-файлы);
― объектные модули (OBJ-файлы);
― файлы с программами на языках программирования (в расчете на компиляцию этих программ);
― командные файлы (ВАТ-файлы);
― объектные и символические библиотеки (LIB- и др. файлы);
― оверлейные файлы (OV?-, PIF- и др. файлы).
Наиболее часто файловые вирусы способны внедряться в СОМ и/или ЕХЕ-файлы.
Загрузочные вирусы могут заражать:
― BR (точнее — SB) на дискетах;
― BR (точнее — SB) системного логического диска, созданного на винчестере;
― MBR (точнее — NSB) на жестком диске.
Загрузочные вирусы распространяются на дискетах в расчете на то, что с них будет (возможно, случайно) осуществлена попытка загрузиться.
Конечно, у файловых вирусов инфицирующая способность выше.
Файлово-загрузочные вирусы обладают еще большей инфицирующей способностью, так как могут распространяться как в программных файлах, так и на дискетах с данными.
2) Способы заражения среды обитания, естественно, зависят от типа последней. Зараженная вирусом среда называется вирусоносителем.
Тело файлового вируса может размещаться при имплантации в:
― конце файла;
― начале файла;
― середине файла;
― хвостовой (свободной) части последнего кластера, занимаемого файлом.
Наиболее легко реализуется внедрение вируса в конец СОМ-файла, что мы кратко и опишем. При получении управления вирус выбирает файл-жертву и модифицирует его следующим образом:
1) дописывает к файлу собственную копию (тело вируса);
сохраняет в этой копии оригинальное начало файла;
2) сохраняет в этой копии оригинальное начало файла;
3) заменяет оригинальное начало файла на команду передачи управления на тело вируса.
3) В зависимости от способа активизации различают:
― нерезидентные вирусы;
― резидентные вирусы.
Для нерезидентного вируса активизация эквивалентна получению им управления после запуска инфицированной программы. Тело вируса исполняется однократно в случае выполнения зараженной программы и осуществляет описанные выше действия.
Резидентный вирус логически можно разделить на две части — инсталлятор и резидентный модуль. При запуске инфицированной программы управление получает инсталлятор, который выполняет следующие действия:
1) размещает резидентный модуль вируса в ОЗУ и выполняет операции, необходимые для того, чтобы последний хранился в ней постоянно;
2) подменяет некоторые обработчики прерываний, чтобы резидентный модуль мог получать управление при возникновении определенных событий (например, в случае открытия или считывания файла).
Для размещения вируса резидентно в памяти могут использоваться стандартные средства DOS. Однако применение такого метода может быть легко обнаружено антивирусными средствами. Наиболее совершенные вирусы действуют в обход средств DOS, непосредственно корректируя список МСВ. Это позволяет произвести установку резидентного модуля в большей степени скрытно.
Резидентный модуль остается в памяти до перезагрузки DOS. Некоторые вирусы все же «выдерживают» теплую перезагрузку (по Ctrl-Alt-Del), перехватывая прерывание от клавиатуры и распознавая нажатие этой комбинации клавиш. Выявив такую ситуацию, вирус активизируется и сам загружает DOS выгодным для себя образом, оставаясь в памяти.
Получив управление по прерыванию, резидентный модуль вируса выполняет нижеприведенные действия:
1) возможно, отыскивает и инфицирует очередную жертву;
2) вероятно, выполняет несанкционированные действия.
В частности, резидентный вирус может заразить считываемый, открываемый или просто найденный программный файл.
По сравнению с нерезидентными резидентные вирусы являются более изощренными и опасными.
Загрузочные вирусы, как правило, создаются резидентными, так как иначе они практически не будут обладать инфицирующей способностью.
4) В соответствии со способами маскировки различают:
― немаскирующиеся вирусы;
― самошифрующиеся вирусы;
― стелс-вирусы.
Авторы первых вирусов уделяли особое внимание механизмам размножения (репликации) с внедрением тел в другие программы. Маскировка же от антивирусных средств не осуществлялась. Такие вирусы называются немаскирующимися.
В связи с появлением антивирусных средств разработчики вирусов сосредоточили усилия на обеспечении маскировки своих изделий. Сначала была реализована идея самошифрования вируса. При этом лишь небольшая его часть является доступной для осмысленного чтения, а остальная — расшифровывается непосредственно перед началом работы вируса. Такой подход затрудняет как обнаружение вируса, так и анализ его тела специалистами;
В последнее время появились стелс-вирусы, названные по аналогии с широкомасштабным проектом STEALTH по созданию самолетов-невидимок. Методы маскировки, используемые стелс-вирусами, носят комплексный характер, и могут быть условно разделены на две категории:
1) маскировка наличия вируса в программе-вирусоносителе;
2) маскировка присутствия резидентного вируса в ОЗУ.
К первой категории относятся:
1) автомодификация тела вируса;
2) реализация эффекта удаления тела вируса из вирусоносителя при чтении последнего с диска, в частности, отладчиком (это осуществляется, путем перехвата прерывания, конечно, в случае наличия резидентного вируса в ОЗУ);
3) имплантация тела вируса в файл без увеличения его размера;
4) эффект неизменности длины инфицированного файла (осуществляется аналогично п. 2);
5) сохранение неизменным оригинального начала программных файлов.
Например, при чтении каталога средствами DOS резидентный вирус может перехватить соответствующее прерывание и искусственно уменьшить длину-файла. Конечно, реальная длина файла не меняется, но пользователю выдаются сведения, маскирующие ее увеличение. Работая же с каталогами непосредственно (в обход средств DOS), ,Вы получите истинную информацию. Такие возможности предоставляет, в частности, оболочка Norton Commander.
К второй категории методов маскировки можно отнести:
1) занесение тела вируса в специальную зону резидентных модулей DOS, в хвостовые части кластеров, в CMOS-память, видеопамять и т.п.;
2) модификацию списка МСВ, о чем уже говорилось;
3) манипулирование обработчиками прерываний, в частности, специальные методы их подмены, с целью обойти резидентные антивирусные средства;
4) корректировку общего объема ОЗУ.
Конечно, маскировка может комбинироваться с шифрованием.
5) По алгоритмам функционирования вирусы делятся на следующие группы:
· паразитические вирусы, изменяющие содержимое файлов или секторов диска. Они достаточно просто могут быть обнаружены и уничтожены;
· вирусы-репликаторы ("черви"), саморазмножающиеся и распространяющиеся по компьютерным сетям. Сами деструктивных действий не выполняют;
· вирусы-невидимки способны прятаться при попытках их обнаружения. Они перехватывают запрос антивирусной программы и мгновенно либо удаляют временно свое тело из зараженного файла, либо подставляют вместо своего тела незараженные участки файлов;
· самошифрующиеся вирусы (в режиме простоя зашифрованы и расшифровываются только в момент начала работы вируса);
· мутирующие вирусы (периодически автоматически видоизменяются: копии вируса не имеют ни одной повторяющейся цепочки байт), необходимо каждый раз создавать новые антивирусные базы для обезвреживания этих вирусов;
· "отдыхающие" вирусы (основное время проводят в латентном состоянии и активизируются только при определенных условиях, например, вирус "Чернобыль" функционирует только в день годовщины чернобыльской трагедии).
Можно схематично представить классификацию вредоносных программ:
Файловые вирусы чаще всего внедряются в исполняемые файлы, имеющие расширения .ехе и .com, но могут внедряться и в объектные файлы, библиотеки, в командные пакетные файлы, программные файлы на языках процедурного программирования. Файловые вирусы могут создавать файлы-двойники.
Загрузочные вирусы внедряются в загрузочный сектор дискеты (boot-sector) или в сектор, содержащий программу загрузки системного диска (master boot record). При загрузке ОС с зараженного диска такой вирус изменяет программу начальной загрузки либо модифицирует таблицу размещения файлов на диске, создавая трудности в работе компьютера или даже делая невозможным запуск операционной системы.
Файлово-загрузочные вирусы интегрируют возможности двух предыдущих групп.
Макровирусы заражают и искажают текстовые файлы (.doc) и файлы электронных таблиц некоторых популярных редакторов. Комбинированные сетевые макровирусы не только заражают создаваемые документы, но и рассылают копии этих документов по электронной почте (печально известный вирус "I love you").
Сетевые черви используют для своего распространения команды и протоколы телекоммуникационных систем (электронной почты, компьютерных сетей). Они подразделяются на Internet-черви (распространяются по Интернету), LAN-черви (распространяются по локальной сети), IRC-черви (Internet Relay Chat) ─ распространяются через чаты. Существуют также смешанные типы, которые совмещают в себе сразу несколько технологий.
В отдельную группу выделяются троянские программы, которые не размножаются и не рассылаются сами.
Троянские программы подразделяют на несколько видов (см. рис. 4.3), которые маскируются под полезные программы и выполняют деструктивные функции. Они могут обеспечить злоумышленнику скрытый несанкционированный доступ к информации на компьютере пользователя и ее похищение (отсюда их название). Такие программы иногда называют утилитами несанкционированного удаленного управления.
Эмуляторы DDoS-атак (Distributed Denial of Service) приводят к -атакам на веб-серверы, при которых на веб-сервер из разных мест поступает большое количество пакетов, что и приводит к отказам работы системы.
Дроппер (от англ. drop ─ бросать) ─ программа, которая "сбрасывает" в систему вирус или другие вредоносные программы, при этом сама больше ничего не делает.
Скрипт-вирусы ─ это вирусы, написанные на скрипт-языках, таких как Visual Basic Script, Java Script и др.
Для своевременного обнаружения и удаления вирусов важно знать основные признаки появления вируса в компьютере:
─ неожиданная неработоспособность компьютера или его компонентов;
─ невозможность загрузки операционной системы;
─ медленная работа компьютера;
─ частые зависания и сбои в компьютере;
─ прекращение работы ранее успешно исполнявшихся программ;
─ искажение или исчезновение файлов и каталогов;
─ непредусмотренное форматирование диска;
─ необоснованное увеличение количества файлов на диске;
─ необоснованное изменение размера файлов;
─ искажение данных в CMOS-памяти;
─ существенное уменьшение объема свободной оперативной памяти;
─ вывод на экран непредусмотренных сообщений и изображений;
─ появление непредусмотренных звуковых сигналов.
Источниками непреднамеренного вирусного заражения могут явиться съемные носители информации и системы телекоммуникаций. Съемные носители информации ─ чаще всего это дискеты, съемные жесткие диски, контрафактные компакт-диски. Для обнаружения и удаления компьютерных вирусов разработано много различных программ.
Антивирусные программы можно разделить на:
· программы-детекторы;
· программы-ревизоры,
· программы-фильтры;
· программы-доктора, или дезинфекторы, фаги;
· программы-вакцины, или иммунизаторы.
Приведем краткие характеристики антивирусных программ.
Программы-детекторы осуществляют поиск компьютерных вирусов в памяти машины и при их обнаружении сообщают об этом. Детекторы могут искать как уже известные вирусы (ищут характерную для конкретного уже известного вируса последовательность байтов ─ сигнатуру вируса), так и произвольные вирусы (путем подсчета контрольных сумм для массива файла).
Программы-ревизоры являются развитием детекторов, но выполняют более сложную работу. Они запоминают исходное состояние программ, каталогов, системных областей и периодически или по указанию пользователя сравнивают его с текущим. При сравнении проверяется длина файлов, дата их создания и модификации, контрольные суммы и байты циклического контроля и другие параметры. Ревизоры эффективнее детекторов.
Программы-фильтры обеспечивают выявление подозрительных, характерных для вирусов действий (коррекция исполняемых .ехе и .com файлов, запись в загрузочные секторы дисков, изменение атрибутов файлов, прямая запись на диск по прямому адресу и т. д.). При обнаружении таких действий фильтры посылают пользователю запрос о подтверждении правомерности таких процедур.
Программы-доктора ─ самые распространенные и популярные (например, Kaspersky Antivirus, Doctor Web, Norton Antivirus и т. д.), которые не только обнаруживают, но и лечат зараженные вирусами файлы и загрузочные секторы дисков. Они сначала ищут вирусы в оперативной памяти и уничтожают их там (удаляют тело резидентного файла), а затем лечат файлы и диски. Многие программы-доктора являются полифагами и обновляются достаточно часто.
Программы-вакцины применяются для предотвращения заражения файлов и дисков известными вирусами. Вакцины модифицируют файл или диск таким образом, что он воспринимается программой-вирусом уже зараженным, и поэтому вирус не внедряется.
Для защиты компьютера от вирусов необходимо:
· не использовать нелицензионные или непроверенные программные продукты;
· иметь на компьютере один или несколько наборов антивирусных программ и обновлять их еженедельно;
· не пользоваться дискетами с чужих компьютеров, а при необходимости такого использования сразу же проверять их антивирусными программами;
· не запускать программ, назначение которых неизвестно или непонятно;
· использовать антивирусные программы для входного контроля информации, поступающей по сети;
· не раскрывать вложения в электронные письма от неизвестных отправителей;
· при переносе на компьютер архивированных файлов сразу же после разархивирования проверять их антивирусными программами;
· перед открытием текстовых, табличных и иных файлов, содержащих макросы, проверять их на наличие вирусов;
· периодически проверять винчестер на наличие вирусов;
· не оставлять дискеты в дисководе при включении и выключении компьютера во избежание заражения их загрузочными вирусами.