Классификация компьютерных вирусов.
Вирусы можно классифицировать по характерным признакам и распределить их по группам в зависимости от среды обитания, способа заражения и особенностей алгоритма [24]:
Рис. 1. Классификация компьютерных вирусов.
По активности в системе.
Резидентный вирус – при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращение операционной системы к заражаемым объектам и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера.
Нерезидентные вирусы – не заражают память компьютера и являются активными только при обращении к зараженному объекту. При запуске программы вирус активизируется, выполняет требуемые действия, и затем передает управление собственно зараженной программе.
Логическая бомба – вирусоподобная программа, которая активизируется при наступлении определенных условий. Логическая бомба может сработать по достижении определенной даты или какого-либо специфического события в системе (например, деинсталляции определенной программы). Такая бомба может быть встроена не только в вирусы, но и в трояны.
По среде обитания
Сетевые вирусы –распространяются по компьютерной сети, используя возможности универсальных сетевых протоколов и интерфейсов различных операционных систем. Для заражения используют, как правило, ошибки в кодах программного обеспечения, работающего с компьютерной сетью. Могут «жить» только в оперативной памяти ПЭВМ и каналах передачи информации. В настоящее время являются самым популярным типом вирусного ПО.
Boot-вирусы– заражают загрузочные сектора дисков (Boot-сектор) или сектор, содержащий основной системный загрузчик жесткого диска (Master Boot Record). При опросе носителя информации, boot-сектор всегда опрашивается первым. Если диск является системным, то boot-сектор содержит программу – начальный загрузчик ОС. Если диск системным не является, то boot-сектор, как правило, содержит программу, выводящую на экран надпись, что этот диск не системный. Boot-вирус перехватывает обращение системы к программе, находящейся в boot-секторе.
Заражение дискет производится единственным известным способом: вирус записывает свой код вместо оригинального кода boot-сектора дискеты. Винчестер заражается тремя возможными способами:
- вирус записывается вместо кода MBR,
- вирус записывается вместо кода boot-сектора загрузочного диска (обычно диска С:),
- вирус заменяет адрес активного boot-сектора в Disk Partition Table, расположенного в MBR винчестера на свой, а управление boot-сектору передает уже самостоятельно.
При инфицировании диска вирус в большинстве случаев переносит оригинальный boot-сектор (или MBR) в какой-либо другой сектор диска (например, в первый свободный). Если длина вируса больше длины сектора, то в заражаемый сектор помещается первая часть вируса, остальные части размещаются в других секторах (например, в первых свободных), которые могут помечаться как сбойные.
Существует несколько вариантов размещения на диске первоначального загрузочного сектора и продолжения вируса:
- в сектора свободных кластеров логического диска;
- в неиспользуемые или редко используемые системные сектора;
- в сектора, расположенные за пределами диска. вирусу для этого приходится форматировать на диске дополнительный трек (метод нестандартного форматирования), если, разумеется, это допускается установленным оборудованием.
В последнее время активизировалась еще одна группа загрузочных вирусов, использующая особенность функционирования ОС Windows при обращении ее к логическим и съемным дискам.
Вирус копирует себя в корень съемных дисков и в системные директории операционной системы, создавая там файлы с именем «autorun.*», обеспечивающие автозапуск копии вируса в различных ситуациях. Активизация вируса происходит, в частности, при подключении съемного диска к системе, либо при обращении к логическим дискам компьютера через сервис «Мой Компьютер», и т.п. Пример вирусов: «Virus.Win32.Tupac» и «Troyan.CopySelf».
Файловые вирусы – для заражения используют файлы, специфика содержимого и формата которых позволяют вирусу активизироваться при открытии зараженного файла. Теоретически файловые вирусы могут внедряться во все исполняемые файлы всех популярных операционных систем (ОС). Практически – же, на сегодняшний день известны вирусы, поражающие все типы выполняемых объектов MS WINDWS, в том числе, командные файлы (ВАТ), загружаемые драйверы, исполняемые двоичные файлы, загружаемые библиотеки, файлы документов. Существуют вирусы, поражающие исполняемые файлы операционной системы смартфонов Symbian. Возможно, для других ОС: MacOS, Linux и т.д. так же существуют малоизвестные файловые вирусы.
С точки зрения наиболее популярных способов заражения файлов вирусы подразделяются следующим образом (см. Рис. 2.2.):
Рис. 2. Классификация файловых вирусов по способу заражения.
Overwriting-вирусы.
Данный метод заражения является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое. Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как ОС и приложения довольно быстро перестают работать. В настоящее время может использоваться только начинающими вирусописателями.
Parasitic-вирусы.
К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сами файлы при этом полностью или частично работоспособными. Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов (prepending), в конец файлов (appending) и в середину файлов (inserting). В свою очередь, внедрение вирусов в середину файлов происходит различными методами – путем переноса части файла в его конец или внедрения в заведомо неиспользуемые данные файла (cavity-вирусы).
Рис. 3. Внедрение вируса начало файла первым способом
Рис. 4. Внедрение вируса в начало файла вторым способом
Внедрение вируса в начало файла. Известны два способа внедрения паразитического файлового вируса в начало файла.
Первый способ (см. Рис. 2.3.) заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется на освободившееся место.
Второй способ (см. Рис. 2.4.) – при заражении файла вирус создает в оперативной памяти свою копию, дописывает к ней заражаемый файл и сохраняет полученную конструкцию на диск.
При этом вирусы, чтобы сохранить работоспособность программы, либо лечат зараженный файл, повторно запускают его, ждут окончания его работы и снова записываются в его начало (иногда используется временный файл, в который записывается обезвреженный файл), либо восстанавливают код программы в памяти компьютера и настраивают необходимые адреса в ее теле (т. е. дублируют работу ОС).
Внедрение вируса в конец файла. Наиболее распространенным способом внедрения вируса в файл является дописывание вируса в его конец (см. Рис. 2.5.). При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса. Изменяется точка запуска программы в заголовке исполняемого файла.
Рис. 5. Внедрение вируса в конец файла
Внедрение вируса в середину файла. Существует несколько возможностей внедрения вируса в середину файла.
Первый метод – наиболее простой из них, когда вирус переносит часть файла в его конец или раздвигает файл и записывает свой код в освободившееся пространство. Этот способ во многом аналогичен методам, перечисленным выше. Отдельные вирусы при этом сжимают переносимый блок файла так, что длина файла при заражении не изменяется.
Второй метод – (cavity) при котором вирус записывается в заведомо неиспользуемые области файла. Вирус может быть скопирован в незадействованные области таблицы настройки адресов ЕХЕ-файла или заголовок EXE-файла, в область стека файла или в область текстовых сообщений популярных компиляторов. Некоторые вирусы заражают только те файлы, которые содержат блоки, заполненные каким-либо постоянным байтом, при этом вирус записывает свой код вместо такого блока. Кроме того, копирование вирусав середину файла может произойти в результате ошибки вируса, в этом случае файл может быть необратимо испорчен.
Companion-вирусы.
К категории компаньон-вирусов относятся вирусы, не изменяющие заражаемых файлов. Алгоритм работы этих вирусов состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник, т. е. вирус.
Первая группа – компаньон-вирусы, использующие особенность операционной системы Windows по приоритету запуска исполняемых файлов с расширениями .ВАТ и .ЕХЕ. Если в одном каталоге присутствуют два файла с одним и тем же именем, но различными расширениями имени – .ВАТ и .ЕХЕ, то система по умолчанию запускает .ВАТ-файл, и лишь при отсутствии его запускается .ЕХЕ-файл. Компаньон-вирусы могут использовать данное свойство системы, они создают для ЕХЕ-файлов файлы-спутники, имеющие то же самое имя, но с расширением .ВАТ, например, для файла CMD.EXE создается файл CMD.ВАТ. Так как .ВАТ-файл является текстовым командным файлом, то не составляет сложности прописать в нем команды на запуск как вируса, так и «зараженного» файла программы. При запуске «зараженной» программы из командной строки с набором только имени стартового файла программы, Windows первым обнаружит и выполнит ВАТ-файл, т. е. запустит вирус параллельно с запуском программы.
Вирусы в пакетных файлах.
Почти в любых ОС имеется такое средство автоматизации выполнения процедур, как пакетные файлы. Пакетные файлы содержат программы на специальном командном языке, который зависит от ОС. С помощью этого языка можно запускать произвольные программы, выдавать команды ОС, создавать файлы и каталоги и т.п. Пакетные вирусы получили свое название благодаря тому, что для своего распространения и выполнения вредоносных действий они используют возможности пакетных файлов.
Для ОС Windows существуют вирусы, способные заражать пакетные файлы .BAT. Они записывают свой двоичный код в тело пакетного файла после оператора комментария REM. При запуске такой пакетный файл копирует вирусный код в обычный исполняемый файл. Затем данный исполняемый файл запускается. Центральный процессор выполняет код вируса, записанный после оператора комментария REM.
Вторую группу составляют вирусы, которые при заражении переименовывают файл, давая ему какое-либо другое имя, запоминают его (для последующего запуска файла-хозяина) и записывают свой код на диск под именем заражаемого файла. Например, файл XCOPY.EXE переименовывается в XCOPY.EXD, либо XCOPY1.EXE, а вирус записывается под именем XCOPY.EXE. При запуске управление получает код вируса, который затем запускает оригинальный XCOPY, хранящийся под именем XCOPY.EXD (XCOPY1.EXE). Интересно то, что данный метод может быть работоспособен в различных ОС.
В третью группу входят так называемые Path-companion-вирусы, которые используют особенность системной переменной PATH. Они либо записывают свой код под именем заражаемого файла, но на один уровень выше PATH (система, таким образом, первым обнаружит и запустит файл-вирус), либо переносят файл-жертву выше на один подкаталог и т. д. (например: C:/WINDOWS;C:/WinDOWS/SYSTEM32)
Возможно существование компаньон-вирусов, использующих иные оригинальные идеи или особенности других ОС.
Link-вирусы.
Link-вирусы, как и компаньон-вирусы, не изменяют физического содержимого файлов, однако при запуске зараженного файла заставляют ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы.
При заражении системы они записывают свое тело в последний кластер логического диска. При заражении файла вирусы корректируют лишь номер первого кластера файла, расположенный в соответствующем секторе каталога. Новый начальный кластер файла будет указывать на кластер, содержащий тело вируса. Таким образом, при заражении файлов их длина и содержимое кластеров с этими файлами не изменяются, а на все зараженные файлы на одном логическом диске будет приходиться только одна копия вируса.
До заражения данные каталога хранят адрес первого кластера файла (см. рис. 2.6.). После заражения данные каталога указывают на вирус, т. е. при запуске файла управление получают не файлы, а вирус (см. рис. 2.7.).
Рис. 6. Каталог до заражения
Рис 7. Каталог после заражения