по деструктивным возможностям вирусы можно разделить на
Компьютерные вирусы
— Понятие компьютерного вируса
— Классификация компьютерных вирусов
— Семейства вирусов
Понятие компьютерного вируса
До сих пор строгого определения компьютерного вируса не существует, поэтому в различных работах специалистов встречаются совершенно разные трактовки и определения этого термина.
Однако все едины в одном.
Программа-вирус способна к самораспространению. Это и есть главный критерий, по которому отличается программа-вирус от остальных программ.
Другое отличие заключается в том, что обычно понятие компьютерный вирус связывают с какой-нибудь опасностью, подстерегающей даже высоконадежные компьютерные системы, так как программы-вирусы специально предназначены для того, чтобы нарушать нормальную работу компьютерных систем
Мы будем исходить из следующего определения.
Рассмотрим подробнее ключевые элементы определения, чтобы понять его суть.
Компьютерный вирус распространяется. Вирус может создавать свои копии и внедряться в выполнимые файлы программ, командные файлы, системные области компьютера. При этом копии сохраняют способность к дальнейшему распространению. Важно и то, что вирус может распространять набор команд, отличный от оригинала.
Классификация компьютерных вирусов
Вирусы можно разделить на классы по следующим признакам:
· по среде обитания вируса,
· по способу заражения,
· по деструктивным возможностям,
· по особенностям алгоритма вируса.
По с p еде обитания виpусы подpазделяются на файловые, загрузочные и файлово-загpузочные.
ФАЙЛОВЫМ называют вирус, который внед p яется в исполняемые файлы.
Это означает, что код программы-вируса находится в каком-то исполняемом файле.
Файл, в теле которого присутствует код программы-вируса, называется зараженным (инфицированным) файлом.
ЗАГРУЗОЧ H ЫМ (бутовым) называют вирус, который внедpяется в загpузочный сектоp диска (Boot-сектоp), либо в сектоp, содеpжащий системный загpузчик винчестеpа (Master Boot Record).
В данном случае код программы-вируса (или его часть) размещен в загрузочном секторе или в главной загрузочной записи.
Диск, загрузочный сектор которого поражен вирусом, называется зараженным или инфицированным диском.
ФАЙЛОВО-ЗАГРУЗОЧHЫМ называют виpус, который внедряется как в файлы, так и загpузочные сектоpы дисков.
Это уже более сложные вирусы, потому что они реализовывают и алгоpитм заражения файловым вирусом, и алгоритм заражения загрузочным вирусом.
По способам заpажения различают pезидентные и неpезидентные вирусы.
РЕЗИДЕHТHЫЙ виpус размещает себя или некоторую свою часть в опеpативной памяти компьютера, получая возможность пеpехватывать обpащения опеpационной системы к дискам и файлам.
При обращении операционной системы к этим объектам, вирус внедряется в них. Резидентный виpус находится в опеpативной памяти и является активным (т.е. способным заражать все новые и новые объекты) вплоть до выключения или перезагрузки компьютеpа.
Резидентными являются все загрузочные вирусы.
HЕРЕЗИДЕHТHЫЙ виpус не заpажает оперативную память компьютеpа, то есть не размещает свой код в оперативной памяти. Он является активным только во время работы зараженной программы.
По деструктивным возможностям вирусы можно разделить на неопасные и опасные.
ОПАСHЫМИ виpусами являются все остальные.
Это вирусы, котоpые наносят любой вред компьютеру: пpиводят к сеpьезным сбоям в pаботе, уничтожают или изменяют данные, уничтожают информацию в системных областях компьютера и т.п.
Необходимо сразу же заметить, что даже неопасные вирусы в результате ошибок могут нанести вред системе. Ведь по закону Мэрфи «каждая программа имеет хотя бы одну ошибку», следовательно, и каждый вирус имеет таковые. Особенно часто это случается, когда автор вируса сознательно или несознательно пишет вирус под какую-нибудь определенную систему или рассматривает ограничения на объекты заражения. Когда такой вирус попадает в новую среду, его внедрение может вызвать непредсказуемые и часто катастрофические последствия.
По особенностям алгоритма можно выделить следующие группы вирусов:
2) вирусы в структуре файловой системы;
Обо всех этих вирусах и их алгоритмах мы подробно поговорим позже.
Вирусам одного семейства или одной группы присуща одна или несколько отличительных черт, которую называют «почерком». Либо в этих вирусах встречается один и тот же алгоритм, либо одинаковые приемы программирования. Часто все вирусы одного семейства принадлежат одному автору, который либо постепенно совершенствует свою программу, либо, используя те же алгоритмы и приемы, пишет новые.
Такие вот вирусы и объединяют в одно семейство.
Иногда семейство насчитывает более 30 вирусов.
Размер программы измеряется количеством байт, которые она занимает в памяти. По отношению к программам-вирусам применяется термин длина вируса. Она тоже измеряется в байтах, но это не всегда размер всей программы-вируса. Чуть позже мы подробнее обсудим определение длины вирусов.
Длина вируса является важным его свойством, ее необходимо знать при лечении файлов и загрузочных секторов.
Особое впечатление, конечно, производят компактные вирусы. Существуют даже своего рода шедевры. Это вирусы, имеющие длину меньше 100 байт.
Во многих классификациях длина вируса включается в его название.
Безопасность → Классификация компьютерных вирусов. ч.1.
… как обещала для ознакомительных целей… на мой взгляд самая развёрнутая классификация… взята отсюда…
Слово «вирусы» давно и хорошо знакомо пользователям компьютеров. Оно давно переросло свое первоначальное значение и теперь часто употребляется для обозначения любых вредоносных программ, способных «размножаться», распространяясь с компьютера на компьютер и заражая подчас целые компьютерные сети — вплоть до глобальных эпидемий в интернете.
Это «классические» вирусы, сетевые и почтовые черви, «троянские кони», backdoor-программы и др.
Чем они опасны
Результатом работы вируса может быть:
относительно безвредное вмешательство в работу компьютера — например, злая шутка, когда экран гаснет и выдается сообщение, что ваш жесткий диск отформатирован;
нанесение реального вреда — когда винчестер действительно форматируется, или стираются важные файлы;
настоящее преступление — когда с помощью троянских программ злоумышленники крадут номера ваших кредитных карт, пароли доступа, другую конфиденциальную информацию.
Вирусы можно разделить на классы по следующим основным признакам:
-среда обитания;
-операционная система (OC);
-особенности алгоритма работы;
-деструктивные возможности.
По среде обитаниявирусы можно разделить на:
-файловые;
-загрузочные;
-макро;
-сетевые.
Файловые вирусы либо различными способами внедряются в выполняемые файлы (наиболее распространенный тип вирусов), либо создают файлы-двойники (компаньон-вирусы), либо используют особенности организации файловой системы (link-вирусы).
Загрузочные вирусы записывают себя либо в загрузочный сектор диска (boot-сектор), либо в сектор, содержащий системный загрузчик винчестера (Master Boot Record), либо меняют указатель на активный boot-сектор.
Макро-вирусы заражают файлы-документы и электронные таблицы нескольких популярных редакторов.
Сетевые вирусы используют для своего распространения протоколы или команды компьютерных сетей и электронной почты.
Существует большое количество сочетаний — например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, используют стелс и полиморфик-технологии. Другой пример такого сочетания — сетевой макро-вирус, который не только заражает редактируемые длокументы, но и рассылает свои копии по электронной почте.
Заражаемая ОПЕРАЦИОННАЯ СИСТЕМА (вернее, ОС, объекты которой подвержены заражению) является вторым уровнем деления вирусов на классы. Каждый файловый или сетевой вирус заражает файлы какой-либо одной или нескольких OS — DOS, Windows, Win95/NT, OS/2 и т.д. Макро-вирусы заражают файлы форматов Word, Excel, Office97. Загрузочные вирусы также ориентированы на конкретные форматы расположения системных данных в загрузочных секторах дисков.
Среди особенностей алгоритма работы вирусов выделяются следующие пункты:
-резидентность;
-использование стелс-алгоритмов;
-самошифрование и полиморфичность;
-использование нестандартных приемов.
РЕЗИДЕНТНЫЙ вирус при инфицировании компьютера оставляет в оперативной памяти свою резидентную часть, которая затем перехватывает обращения операционной системы к объектам заражения и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения компьютера или перезагрузки операционной системы. Нерезидентные вирусы не заражают память компьютера и сохраняют активность ограниченное время. Некоторые вирусы оставляют в оперативной памяти небольшие резидентные программы, которые не распространяют вирус. Такие вирусы считаются нерезидентными.
Резидентными можно считать макро-вирусы, посколько они постоянно присутствуют в памяти компьютера на все время работы зараженного редактора. При этом роль операционной системы берет на себя редактор, а понятие «перезагрузка операционной системы» трактуется как выход из редактора.
В многозадачных операционных системах время «жизни» резидентного DOS-вируса также может быть ограничено моментом закрытия зараженного DOS-окна, а активность загрузочных вирусов в некоторых операционных системах ограничивается моментом инсталляции дисковых драйверов OC.
ИспользованиеСТЕЛС-алгоритмов позволяет вирусам полностью или частично скрыть себя в системе. Наиболее распространенным стелс-алгоритмом является перехват запросов OC на чтение/запись зараженных объектов. Стелс-вирусы при этом либо временно лечат их, либо «подставляют» вместо себя незараженные участки информации. В случае макро-вирусов наиболее популярный способ — запрет вызовов меню просмотра макросов. Один из первых файловых стелс-вирусов — вирус «Frodo», первый загрузочный стелс-вирус — «Brain».
САМОШИФРОВАНИЕ и ПОЛИМОРФИЧНОСТЬ используются практически всеми типами вирусов для того, чтобы максимально усложнить процедуру детектирования вируса. Полиморфик-вирусы (polymorphic) — это достаточно труднообнаружимые вирусы, не имеющие сигнатур, т.е. не содержащие ни одного постоянного участка кода. В большинстве случаев два образца одного и того же полиморфик-вируса не будут иметь ни одного совпадения. Это достигается шифрованием основного тела вируса и модификациями программы-расшифровщика.
Различные НЕСТАНДАРТНЫЕ ПРИЕМЫ часто используются в вирусах для того, чтобы как можно глубже спрятать себя в ядре OC (как это делает вирус «3APA3A»), защитить от обнаружения свою резидентную копию (вирусы «TPVO», «Trout2»), затруднить лечение от вируса (например, поместив свою копию в Flash-BIOS) и т.д.
По ДЕСТРУКТИВНЫМ ВОЗМОЖНОСТЯМ вирусы можно разделить на:
-безвредные, т.е. никак не влияющие на работу компьютера (кроме уменьшения свободной памяти на диске в результате своего распространения);
-неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими, звуковыми и пр. эффектами;
-опасные вирусы, которые могут привести к серьезным сбоям в работе компьютера;
-очень опасные, в алгоритм работы которых заведомо заложены процедуры, которые могут привести к потере программ, уничтожить данные, стереть необходимую для работы компьютера информацию, записанную в системных областях памяти, и даже, как гласит одна из непроверенных компьютерных легенд, способствовать быстрому износу движущихся частей механизмов — вводить в резонанс и разрушать головки некотоорых типов винчестеров.
Безвредные. Но даже если в алгоритме вируса не найдено ветвей, наносящих ущерб системе, этот вирус нельзя с полной уверенностью назвать безвредным, так как проникновение его в компьютер может вызвать непредсказуемые и порой катастрофические последствия. Ведь вирус, как и всякая программа, имеет ошибки, в результате которых могут быть испорчены как файлы, так и сектора дисков. До сих пор попадаются вирусы, определяющие «COM или EXE» не по внутреннему формату файла, а по его расширению. Естественно, что при несовпадении формата и расширения имени файл после заражения оказывается нерабтоспособным. Возможно также «заклинивание» резидентного вируса и системы при использовании новых версий DOS, при работе в Windows или с другими мощными программными системами. И так далее.
Неопасные. К данной группе относятся вирусы, которые при своем размножении тем или иным способом используют файловую систему какой-либо (или каких-либо) ОС.
Внедрение файлового вируса возможно практически во все исполняемые файлы всех популярных ОС. На сегодняшний день известны вирусы, поражающие все типы выполняемых объектов стандартной DOS: командные файлы (BAT), загружаемые драйверы (SYS, в том числе специальные файлы IO.SYS и MSDOS.SYS) и выполняемые двоичные файлы (EXE, COM). Существуют вирусы, поражающие исполняемые файлы других операционных систем — Windows 3.x, Windows95/NT, OS/2, Macintosh, UNIX, включая VxD-драйвера Windows 3.x и Windows95.
Существуют вирусы, заражающие файлы, которые содержат исходные тексты программ, библиотечные или объектные модули. Возможна запись вируса и в файлы данных, но это случается либо в результате ошибки вируса, либо при проявлении его агрессивных свойств. Макро-вирусы также записывают свой код в файлы данных — документы или электронные таблицы, — однако эти вирусы настолько специфичны, что вынесены в отдельную группу.
По способу заражения файлов вирусы делятся на «overwriting», паразитические («parasitic»), компаньон-вирусы («companion»), «link»-вирусы, вирусы-черви и вирусы, заражающие объектные модули (OBJ), библиотеки компиляторов (LIB) и исходные тексты программ.
Данный метод заражения является наиболее простым: вирус записывает свой код вместо кода заражаемого файла, уничтожая его содержимое. Естественно, что при этом файл перестает работать и не восстанавливается. Такие вирусы очень быстро обнаруживают себя, так как операционная система и приложения довольно быстро перестают работать. Мне не известно ни одного случая, когда подобного типа вирусы были бы обнаружены «в живом виде» и стали причиной эпидемии.
К разновидности overwriting-вирусов относятся вирусы, которые записываются вместо DOS-заголовка NewEXE-файлов. Основная часть файла при этом остается без изменений и продолжает нормально работать в соответсвующей операционной системе, однако DOS-заголовок оказывается испорченным.
К паразитическим относятся все файловые вирусы, которые при распространении своих копий обязательно изменяют содержимое файлов, оставляя сими файлы при этом полностью или частично работоспособными. Основными типами таких вирусов являются вирусы, записывающиеся в начало файлов («prepending»), в конец файлов («appending») и в середину файлов («inserting»). В свою очередь, внедрение вирусов в середину файлов происходит различными методами — путем переноса части файла в его конец или копирования своего кода в заведомо неиспользуемые данные файла («cavity»-вирусы)
К категории «компаньон» относятся вирусы, не изменяющие заражаемых файлов. Алгоритм работы этих вирусов состоит в том, что для заражаемого файла создается файл-двойник, причем при запуске зараженного файла управление получает именно этот двойник, т.е. вирус.
Вторую группу составляют вирусы, которые при заражении переименовывают файл в какое-либо другое имя, запоминают его (для последующего запуска файла-хозяина) и записывают свой код на диск под именем заражаемого файла. Например, файл XCOPY.EXE переименовывается в XCOPY.EXD, а вирус записывается под именем XCOPY.EXE. При запуске управление получает код вируса, который затем запускает оригинальный XCOPY, хранящийся под именем XCOPY.EXD. Интересен тот факт, что данный метод работает, наверное, во всех операционных системах — подобного типа вирусы были обнаружены не только в DOS, но в Windows и OS/2.
В третью группу входят так называемые «Path-companion» вирусы, которые «играют» на особенностях DOS PATH. Они либо записывают свой код под именем заражаемго файла, но «выше» на один уровень PATH (DOS, таким образом, первым обнаружит и запустит файл-вирус), либо переносят файл-жертву на один подкаталог выше и т.д.
Возможно существование и других типов компаньон-вирусов, использующих иные оригинальные идеи или особенности других операционных систем.
Файловые черви (worms) являются, в некотором смысле, разновидностью компаньон-вирусов, но при этом никоим образом не связывают свое присутствие с каким-либо выполняемым файлом. При размножении они всего лишь копируют свой код в какие-либо каталоги дисков в надежде, что эти новые копии будут когда-либо запущены пользователем. Иногда эти вирусы дают своим копиям «специальные» имена, чтобы подтолкнуть пользователя на запуск своей копии — например, INSTALL.EXE или WINSTART.BAT.
Существуют вирусы-черви, использующие довольно необычные приемы, например, записывающие свои копии в архивы (ARJ, ZIP и прочие). К таким вирусам относятся «ArjVirus» и «Winstart». Некоторые вирусы записывают команду запуска зараженного файла в BAT-файлы (см. например, «Worm.Info»).
Не следует путать файловые вирусы-черви с сетевыми червями. Первые используют только файловые функции какой-либо операционной системы, вторые же при своем размножении пользуются сетевыми протоколами.
Link-вирусы, как и компаньон-вирусы не изменяют физического содержимого файлов, однако при запуске зараженного файла «заставляют» ОС выполнить свой код. Этой цели они достигают модификацией необходимых полей файловой системы.
На сегодняшний день известен единственный тип Link-вирусов — вирусы семейства «Dir_II». При заражении системы они записывают свое тело в последний кластер логического диска. При заражении файла вирусы корректируют лишь номер первого кластера файла, расположенный в соответствующем секторе каталога. Новый начальный кластер файла будет указывать на кластер, содержащий тело вируса. Таким образом, при заражении файлов их длины и содержимое кластеров диска, содержащих эти файлы, не изменяется, а на все зараженные файлы на одном логическом диске будет приходиться только одна копия вируса.
OBJ-, LIB-вирусы и вирусы в исходных текстах
Вирусы, заражающие библиотеки компиляторов, объектные модули и исходные тексты программ, достаточно экзотичны и практически не распространены. Всего их около десятка. Вирусы, заражающие OBJ- и LIB-файлы, записывают в них свой код в формате объектного модуля или библиотеки. Зараженный файл, таким образом, не является выполняемым и неспособен на дальнейшее распространение вируса в своем текущем состоянии. Носителем же «живого» вируса становится COM- или EXE-файл, получаемый в процессе линковки зараженного OBJ/LIB-файла с другими объектными модулями и библиотеками. Таким образом, вирус распространяется в два этапа: на первом заражаются OBJ/LIB-файлы, на втором этапе (линковка) получается работоспособный вирус.
Заражение исходных текстов программ является логическим продолжением предыдущего метода размножения. При этом вирус добавляет к исходным текстам свой исходный код (в этом случае вирус должен содержать его в своем теле) или свой шестнадцатеричный дамп (что технически легче). Зараженный файл способен на дальнейшее распространение вируса только после компиляции и линковки (см. например, вирусы «SrcVir», «Urphin»).
При инфицировании файла вирус может производить ряд действий, маскирующих и ускоряющих его распространение. К подобным действиям можно отнести обработку атрибута read-only, снятие его перед заражением и восстановление после. Многие файловые вирусы считывают дату последней модификации файла и восстанавливают ее после заражения. Для маскировки своего распространения некоторые вирусы перехватывают прерывание DOS, возникающее при обращении к защищенному от записи диску (INT 24h), и самостоятельно обрабатывают его.
Говоря про файловые вирусы, необходимо отметить такую их черту, как скорость распространения. Чем быстрее распространяется вирус, тем вероятее возникновение эпидемии этого вируса. Чем медленнее распространяется вирус, тем сложнее его обнаружить (если, конечно же, этот вирус пока неизвестен антивирусным программам). Понятия «быстрого» и «медленного» вируса (Fast infector, Slow infector) являются достаточно относительными и используются только как характеристика вируса при его описании.
Нерезидентные вирусы часто являются «медленными» — большинство из них при запуске заражает один или два-три файла и не успевает заполонить компьютер до запуска антивирусной программы (или появления новой версии антивируса, настроенной на данный вирус). Существуют, конечно же, нерезидентые «быстрые» вирусы, которые при запуске ищут и заражат все выполняемые файлы, однако такие вирусы очень заметны: при запуске каждого зараженного файла компьютер некоторое (иногда достаточно долгое) время активно работает с винчестером, что демаскирует вирус.
«Скорость» резидентных вирусов обычно выше, чем у нерезидентных — они заражают файлы при каких-либо обращениях к ним. В результате на диске оказываются зараженными все или почти все файлы, которые постоянно используются в работе.
Скорость распространения резидентных файловых вирусов, заражающих файлы только при их запуске на выполнение, будет ниже, чем у вирусов, заражающих файлы и при их открытии, переименовании, изменении атрибутов файла и т.д. Многие вирусы при создании своей копии в оперативной памяти компьютера пытаются занять область памяти с самыми старшими адресами, разрушая временную часть командного интерпретатора COMMAND.COM. По окончании работы зараженной программы временная часть интерпретатора восстанавливается, при этом происходит открытие файла COMMAND.COM и, если вирус заражает файлы при их открытии, его заражение. Таким образом, при запуске подобного вируса первым будет заражен файл COMMAND.COM.
Загрузочные вирусы заражают загрузочный (boot) сектор флоппи-диска и boot-сектор или Master Boot Record (MBR) винчестера. Принцип действия загрузочных вирусов основан на алгоритмах запуска операционной системы при включении или перезагрузке компьютера — после необходимых тестов установленного оборудования (памяти, дисков и т.д.) программа системной загрузки считывает первый физический сектор загрузочного диска (A:, C: или CD-ROM в зависимости от параметров, установленных в BIOS Setup) и передает на него управление.
В случае дискеты или компакт-диска управление получает boot-сектор, который анализирует таблицу параметров диска (BPB — BIOS Parameter Block) высчитывает адреса системных файлов операционной системы, считывает их в память и запускает на выполнение. Системными файлами обычно являются MSDOS.SYS и IO.SYS, либо IBMDOS.COM и IBMBIO.COM, либо других в зависимости от установленной версии DOS, Windows или других операционных систем. Если же на загрузочном диске отсутствуют файлы операционной системы, программа, расположенная в boot-секторе диска выдает сообщение об ошибке и предлагает заменить загрузочный диск.
В случае винчестера управление получает программа, расположенная в MBR винчестера. Эта программа анализирует таблицу разбиения диска (Disk Partition Table), вычисляет адрес активного boot-сектора (обычно этим сектором является boot-сектор диска C:), загружает его в память и передает на него управление. Получив управление, активный boot-сектор винчестера проделывает те же действия, что и boot-сектор дискеты.
При заражении дисков загрузочные вирусы «подставляют» свой код вместо какой-либо программы, получающей управление при загрузке системы. Принцип заражения, таким образом, одинаков во всех описанных выше способах: вирус «заставляет» систему при ее перезапуске считать в память и отдать управление не оригинальному коду загрузчика, но коду вируса.
Заражение дискет производится единственным известным способом — вирус записывает свой код вместо оригинального кода boot-сектора дискеты. Винчестер заражается тремя возможными способами — вирус записывается либо вместо кода MBR, либо вместо кода boot-сектора загрузочного диска (обычно диска C:), либо модифицирует адрес активного boot-сектора в Disk Partition Table, расположенной в MBR винчестера.
При инфицировании диска вирус в большинстве случаев переносит оригинальный boot-сектор (или MBR) в какой-либо другой сектор диска (например, в первый свободный). Если длина вируса больше длины сектора, то в заражаемый сектор помещается первая часть вируса, остальные части размещаются в других секторах (например, в первых свободных).
Макро-вирусы (macro viruses) являются программами на языках (макро-языках), встроенных в некоторые системы обработки данных (текстовые редакторы, электронные таблицы и т.д.). Для своего размножения такие вирусы используют возможности макро-языков и при их помощи переносят себя из одного зараженного файла (документа или таблицы) в другие.
Для существования вирусов в конкретной системе (редакторе) необходимо наличие встроенного в систему макро-языка с возможностями:
-привязки программы на макро-языке к конкретному файлу;
-копирования макро-программ из одного файла в другой;
-возможность получения управления макро-программой без вмешательства пользователя (автоматические или стандартные макросы);
Данная особенность макро-языков предназначена для автоматической обработки данных в больших организациях или в глобальных сетях и позволяет организовать так называемый «автоматизированный документооборот». С другой стороны, возможности макро-языков таких систем позволяют вирусу переносить свой код в другие файлы, и таким образом заражать их.
В системах вирусы получают управление при открытии или закрытии зараженного файла, перехватывают стандартные файловые функции и затем заражают файлы, к которым каким-либо образом идет обращение. По аналогии с MS-DOS можно сказать, что большинство макро-вирусов являются резидентными: они активны не только в момент открытия/закрытия файла, но до тех пор, пока активен редактор.