Итак, что же такое компьютерный вирус? Формального определения этого понятия до сих пор нет. Многочисленные попытки дать «современное» определение вируса не привели к успеху. Поэтому ограничимся рассмотрением некоторых свойств компьютерных вирусов, которые позволяют говорить о них как о некотором определенном классе программ.
Компьютерный вирус — это небольшая по размерам программа, которая заражает другие программы, например, приписывая себя к ним, и выполняет различные, вредоносные действия на компьютере — портит файлы или таблицу размещения файлов на диске, засоряет оперативную память, рассылает себя по Интернету и т.д. Когда такая программа начинает исполняться, то сначала управление получает вирус, который находит и заражает другие программы. Вирус маскируется в системе. Например, после того как вирус выполнит вредоносные действия, он передает управление той программе, в которой находится, и она работает обычным образом. Таким образом, работа зараженного компьютера внешне выглядит так же, как и незараженного. Вред вируса проявится позднее, когда, возможно, уже поздно спасать как информацию, так и сам компьютер. Компьютерный вирус может испортить любой файл, вызвав потерю информации на жестких дисках компьютера. Вначале они могут незаметно заразить большое число программ и дисков, а затем вызвать серьезные повреждения, например, разрушив BIkSили отформатировав весь жесткий диск на компьютере.
Вирус – это программа, обладающая способностью к самостоятельному внедрению в тела других программ и последующему самовоспроизведению и самораспространению в информационно-вычислительных сетях и отдельных ЭВМ. Такая способность является единственным средством, присущим всем типам вирусов. Но не только вирусы способны к самовоспроизведению. Любая операционная система и еще множество программ способны создавать собственные копии. Копии же вируса не только не обязаны полностью совпадать с оригиналом, но и могут вообще с ним не совпадать!Вирус не может существовать в «полной изоляции»: нельзя представить себе вирус, который не использует код других программ, информацию о файловой структуре или даже просто имена других программ. Причина понятна — вирус должен каким-нибудь способом обеспечить передачу себе управления.Вирус, как правило, внедряется в рабочую программу таким образом, чтобы при ее запуске управление сначала передалось ему и только после выполнения всех его команд снова вернулось к рабочей программе. Получив доступ к управлению, вирус, прежде всего, переписывает сам себя в другую рабочую программу и заражает ее. После запуска программы, содержащей вирус, становится возможным заражение других файлов.
Предшественниками вирусов принято считать так называемые троянские программы (программа, используемая злоумышленником для сбора информации, ее разрушения или модификации, нарушения работоспособности компьютера или использования его ресурсов в неблаговидных целях), тела которых содержат скрытые последовательности команд (модули), выполняющие действия, наносящие вред пользователям. Наиболее распространенной разновидностью троянских программ являются широко известные программы массового применения (редакторы, игры, трансляторы и т.д.), в которые встроены так называемые «логические бомбы» (программа для искажения или уничтожения информации), срабатывающие по наступлении некоторого события. Следует отметить, что троянские программы не являются саморазмножающимися.
Принципиальное отличие вируса от троянской программы состоит в том, что вирус после его активизации существует самостоятельно (автономно) и в процессе своего функционирования заражает (инфицирует) программы путем включения (имплантации) в них своего текста. Таким образом, компьютерный вирус можно рассматривать как своеобразный «генератор троянских программ». Программы, зараженные вирусом, называют вирусоносителями.
Наиболее часто вирусом заражаются загрузочный сектор диска и исполняемые файлы, имеющие расширения .EXE, .COM, .SYS, .ВАТ. Редко заражаются текстовые файлы.
После заражения программы вирус может выполнить какую-нибудь диверсию, не слишком серьезную, чтобы не привлечь внимания. И наконец, не забывает возвратить управление той программе, из которой он был запущен. Каждое выполнение зараженной программы переносит вирус в следующую. Таким образом, заражается все программное обеспечение.
При заражении компьютера вирусом важно его обнаружить. Для этого следует знать об основных признаках проявления вирусов. К ним можно отнести:
- прекращение работы или неправильная работа ранее успешно функционировавших программ;
- замедление работы компьютера;
- невозможность загрузки операционной системы;
- исчезновение файлов и каталогов или искажение их содержимого;
- изменение даты и времени модификации файлов;
- изменение размеров файлов;
- неожиданное значительное увеличение количества файлов на диске;
- существенное уменьшение размера свободной оперативной памяти;
- вывод на экран непредусмотренных сообщений или изображений;
- подача непредусмотренных звуковых сигналов;
- частые зависания и сбои в работе компьютера.
Следует отметить, что вышеперечисленные явления необязательно вызываются присутствием вируса, а могут быть следствием других причин. Поэтому всегда затруднена правильная диагностика состояния компьютера.
Итак, если не предпринимать мер по защите от вирусов, то последствия заражения компьютера могут быть очень серьезными.
Заражение программы, как правило, выполняется таким образом, чтобы вирус получил управление раньше самой программы. Для этого он либо встраивается в начало программы, либо имплантируется в ее тело так, что первой командой зараженной программы является безусловный переход на компьютерный вирус, текст которого заканчивается аналогичной командой безусловного перехода на команду вирусоносителя, бывшую первой до заражения. Получив управление, вирус выбирает следующий файл, заражает его, возможно, выполняет какие-либо другие действия, после чего отдает управление вирусоносителю.
«Первичное заражение происходит в процессе наступления инфицированных программ из памяти одной машины в память другой, причем в качестве средства перемещения этих программ могут использоваться как носители информации (дискеты, оптические диски, флэш-память и т.п.), так и каналы вычислительных сетей. Вирусы, использующие для размножения сетевые средства, сетевые протоколы, управляющие команды компьютерных сетей и электронной почты, принято называть сетевыми.
Цикл жизни вируса обычно включает следующие периоды: внедрение, инкубационный, репликации (саморазмножения) и проявления. В течение инкубационного периода вирус пассивен, что усложняет задачу его поиска и нейтрализации. На этапе проявления вирус выполняет свойственные ему целевые функции, например необратимую коррекцию информации в компьютере или на магнитных носителях.
Физическая структура компьютерного вируса достаточно проста. Он состоит из головы и, возможно, хвоста. Под головой вируса понимается его компонента, получающая управление первой. Хвост – это часть вируса, расположенная в тексте зараженной программы отдельно от головы. Вирусы, состоящие из одной головы, называют несегментированными, тогда как вирусы, содержащие голову и хвост, - сегментированными.
Наиболее существенные признаки компьютерных вирусов позволяют провести следующую их классификацию (рисунок 1).
Рисунок 1 - Классификация вирусов
По режиму функционирования:
- резидентные вирусы (вирусы, которые после активизации постоянно находятся в оперативной памяти компьютера и контролируют доступ к его ресурсам);
- транзитные вирусы (вирусы, которые выполняются только в момент запуска зараженной программы).
По объекту внедрения:
- файловые вирусы (вирусы, заражающие файлы с программами);
- загрузочные вирусы (вирусы, заражающие программы, хранящиеся в системных областях дисков).
В свою очередь, файловые вирусы подразделяются на вирусы, заражающие:
- исполняемые файлы;
- командные файлы и файлы конфигурации;
- составляемые на макроязыках программирования, или файлы, содержащие макросы (макровирусы - разновидность компьютерных вирусов разработанных на макроязыках, встроенных в такие прикладные пакеты ПО, как Microsoft Office);
- файлы с драйверами устройств;
- файлы с библиотеками исходных, объектных, загрузочных и оверлейных модулей, библиотеками динамической компоновки и т.п.
Загрузочные вирусы подразделяются на вирусы, заражающие:
- системный загрузчик, расположенный в загрузочном секторе и логических дисков;
- внесистемный загрузчик, расположенный в загрузочном секторе жестких дисков.
По степени и способу маскировки:
- вирусы, не использующие средств маскировки;
- stealth-вирусы (вирусы, пытающиеся быть невидимыми на основе контроля доступа к зараженным элементам данных);
- вирусы-мутанты (MtE-вирусы, содержащие в себе алгоритмы шифрования, обеспечивающие различие разных копий вируса).
В свою очередь, MtE-вирусы делятся:
- на обычные вирусы-мутанты, в разных копиях которых различаются только зашифрованные тела, а дешифрованные тела вирусов совпадают;
- полиморфные вирусы, в разных копиях которых различаются не только зашифрованные тела, но и их дешифрованные тела.
Наиболее распространенные типы вирусов характеризуются следующими основными особенностями.
Файловый транзитный вирус целиком размещается в исполняемом файле, в связи с чем он активизируется только в случае активизации вирусоносителя, а по выполнении необходимых действий возвращает управление самой программе. При этом выбор очередного файла для заражения осуществляется вирусом посредством поиска по каталогу.