Лекция
доцента кафедры ИВТ Гродненского госуниверситета
канд. техн. наук Ливак Елены Николаевны
В лекции
- Понятие компьютерного вируса
- Длина вирусов
До сих пор строгого определения компьютерного вируса не существует, поэтому в различных работах специалистов встречаются совершенно разные трактовки и определения этого термина.
Однако все едины в одном.
Программа-вирус способна к самораспространению. Это и есть главный критерий, по которому отличается программа-вирус от остальных программ.
Другое отличие заключается в том, что обычно понятие компьютерный вирус связывают с какой-нибудь опасностью, подстерегающей даже высоконадежные компьютерные системы, так как программы-вирусы специально предназначены для того, чтобы нарушать нормальную работу компьютерных систем
Мы будем исходить из следующего определения.
Компьютерный вирус - это набор команд, который производит и распространяет свои копии в компьютерных системах и/или компьютерных сетях и преднамеренно выполняет некоторые действия, нежелательные для законных пользователей системы.
Рассмотрим подробнее ключевые элементы определения, чтобы понять его суть.
Компьютерный вирус - набор команд. Тело вируса могут составлять команды какого-либо языка программирования или нескольких сразу. Самым распространенным случаем является язык ассемблера. Реже встречаются команды языка управления заданиями. Иногда используются микропрограммные инструкции, управляющие символы и комбинации в телекоммуникационных сообщениях, различного рода параметры. Последние “достижения” в этой области - макрокоманды.
Компьютерный вирус распространяется. Вирус может создавать свои копии и внедряться в выполнимые файлы программ, командные файлы, системные области компьютера. При этом копии сохраняют способность к дальнейшему распространению. Важно и то, что вирус может распространять набор команд, отличный от оригинала.
Компьютерный вирус выполняет нежелательные действия. Причем нежелательные - это чаще всего мягко сказано. Попадая в компьютерную систему, вирус производит в ней изменения. В лучшем случае - это безобидные действия. Например, отображение на экране монитора разнообразных надписей или рисунков, проигрывание на встроенном динамике различных мелодий. В худшем случае - это разрушение файлов данных и программного обеспечения компьютера. Существуют вирусы, которые могут основательно вывести компьютер из строя и сделать неработоспособной системную плату компьютера. Существуют вирусы, делающие “полезную” работу. Например, один из вирусов, поражающий файлы программ, одновременно сжимает их, создавая на диске больше свободного места. Но он выполняет эти действия автоматически, не спрашивая разрешения на это владельца программ, т.е. и это “полезное” действие является нежелательным для законного пользователя.
Вирусы можно разделить на классы по следующим признакам:
· по среде обитания вируса,
· по способу заражения,
· по деструктивным возможностям,
· по особенностям алгоритма вируса.
По с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а, то есть не размещает свой код в оперативной памяти. Он является активным только во время работы зараженной программы.
По деструктивным возможностям вирусы можно разделить на неопасные и опасные.
НЕОПАСНЫЕ виpусы - это те, которые либо совсем никак не влияют на pаботу компьютеpа, кpоме того, что все-таки уменьшают свободную память на диске в pезультате своего pаспpостpанения, либо ограничиваются видео и аудиоэффектами.
ОПАСHЫМИ виpусами являются все остальные.
Это вирусы, котоpые наносят любой вред компьютеру: пpиводят к сеpьезным сбоям в pаботе, уничтожают или изменяют данные, уничтожают информацию в системных областях компьютера и т.п.
Необходимо сразу же заметить, что даже неопасные вирусы в результате ошибок могут нанести вред системе. Ведь по закону Мэрфи «каждая программа имеет хотя бы одну ошибку», следовательно, и каждый вирус имеет таковые. Особенно часто это случается, когда автор вируса сознательно или несознательно пишет вирус под какую-нибудь определенную систему или рассматривает ограничения на объекты заражения. Когда такой вирус попадает в новую среду, его внедрение может вызвать непредсказуемые и часто катастрофические последствия.
По особенностям алгоритма можно выделить следующие группы вирусов:
1) вирусы-«спутники»;
2) вирусы в структуре файловой системы;
3) стелс-вирусы;
4) вирусы-призраки;
5) полиморфные и MtE-вирусы;
6) макровирусы.
Обо всех этих вирусах и их алгоритмах мы подробно поговорим позже.
Семейства вирусов
Семейства вирусов - это группы из нескольких вирусов. Иногда эти группы насчитывают более десятка представителей.
Вирусам одного семейства или одной группы присуща одна или несколько отличительных черт, которую называют «почерком». Либо в этих вирусах встречается один и тот же алгоритм, либо одинаковые приемы программирования. Часто все вирусы одного семейства принадлежат одному автору, который либо постепенно совершенствует свою программу, либо, используя те же алгоритмы и приемы, пишет новые.
Увеличивается количество представителей в некоторых семействах вирусов и благодаря «студенческим/школьным» модификациям или плагиату. Иногда достаточно изменить деструктивную функцию вируса (тот нежелательный эффект, который производит программа) - и вот уже совсем новый вирус.
Такие вот вирусы и объединяют в одно семейство.
Иногда семейство насчитывает более 30 вирусов.
Длина вирусов
Размер программы измеряется количеством байт, которые она занимает в памяти. По отношению к программам-вирусам применяется термин длина вируса. Она тоже измеряется в байтах, но это не всегда размер всей программы-вируса. Чуть позже мы подробнее обсудим определение длины вирусов.
Длина вируса является важным его свойством, ее необходимо знать при лечении файлов и загрузочных секторов.
Как известно, программирование - это искусство. Авторы вирусов доказывают, что написание программ-вирусов тоже искусство. Они чуть ли не соревнуются друг с другом в написании самого компактного кода, в реализации самого изощренного алгоритма.
На сколько разнообразна сложность вирусов, на столько разнообразна и их длина (прямой зависимости нет). Длина вирусов колеблется от очень большой до очень маленькой. Например, существуют вирусы с длиной меньше 100 байт и наряду с ними есть вирусы, имеющие значительный размер - более 30 Кб. Но чаще всего длина вируса находится в диапазоне от 500 до 2000 байт.
Особое впечатление, конечно, производят компактные вирусы. Существуют даже своего рода шедевры. Это вирусы, имеющие длину меньше 100 байт.
Во многих классификациях длина вируса включается в его название.