Курсовая работа: Компьютерные вирусы
Поэтому представляется возможным сформулировать только обязательное условие для того, чтобы некоторая последовательность выполняемого кода являлась вирусом.
ОБЯЗАТЕЛЬНЫМ (НЕОБХОДИМЫМ) СВОЙСТВОМ КОМПЬЮТЕРНОГО ВИРУСА является возможность создавать свои дубликаты (не обязательно совпадающие с оригиналом) и внедрять их в вычислительные сети и/или файлы, системные области компьютера и прочие выполняемые объекты. При этом дубликаты сохраняют способность к дальнейшему распространению.
Следует отметить, что это условие не является достаточным (т.е. окончательным), поскольку следуя вышеприведенному примеру операционная система MS-DOS удовлетворяет данному свойству, но вирусом, скорее всего, не является.
Вот почему точного определения вируса нет до сих пор, и вряд ли оно появится в обозримом будущем. Следовательно нет точно определенного закона, по которому “хорошие” файлы можно отличить от “вирусов”. Более того, иногда даже для конкретного файла довольно сложно определить, является он вирусом или нет.
Вот два примера: вирус KOH и программа ALREADY.COM.
Пример 1. Есть... вирус? утилита? с названием KOH. Эта программа шифрует/расшифровывает диски только по запросу пользователя . Выполнена она в виде загрузочной дискеты - boot-cектор содержит bootstrap loader KOH, а где-то в других секторах лежит основной код KOH. При загрузке с дискеты KOH задает пользователю вопрос типа: “А можно, я сам себя установлю на винчестер?” (если он уже на винчестере, то спрашивает то же самое про дискету). При утвердительном ответе KOH переносит себя с диска на диск.
В результате KOH переносит (копирует) сам себя с дискеты на винчестер, а с винчестера на дискеты, но только с разрешения хозяина компьютера.
Затем KOH выводит текст о своих hot-keys (“горячие” клавиши), по которым он шифрует/расшифровывает диски - спрашивает пароль, читает сектора, шифрует их и делает недоступными, если не знать пароля. Есть у него, кстати, ключ деинсталляции, по коему он сам себя с диска убирает (расшифровав, естественно, все, что было зашифровано).
Итого, KOH - это некая утилита защиты информации от несанкционированного доступа. Добавлена к ней, правда, одна особенность: сия утилита сама себя может копировать с диска на диск (с разрешения пользователя). Вирус ли это?.. Да или нет? Скорее всего - нет...
И все-бы было ничего, и никто бы эту утилиту по имени KOH вирусом не обозвал, но только bootstrap loader у этого KOH практически на 100% совпадает с довольно “популярным” вирусом “Havoc” (“StealthBoot”)... “и все - и крышка празднику”. Вирус! И официальное название есть - “StealthBoot.KOH”.
Если бы, конечно, автором KOH был бы не безызвестный программист, а, скажем, Симантек, или Sierra, или даже Сам Microsoft, то никто бы и не посмел назвать это вирусом...
Пример 2. Есть некая программа ALREADY.COM, которая сама себя копирует в разные подкаталоги на диске в зависимости от системной даты. Вирус? Конечно да - типичный вирус-червь, сам себя расползающий по дискам (включая сетевые). Да?.. Да!
“Вы играли - но не угадали ни одной буквы!” Hе вирус это, как оказалось, а компонента от какого-то софтвера. Однако если этот файл выдернуть из этого софтвера, то ведет он себя как типичный вирус.
Итого были приведены два живых примера:
1. не-вирус - вирус
2. вирус - не-вирус
Внимательный читатель, который не прочь поспорить, может возразить:
Стоп. Hазвание “вирусы” по отношению к программам пришло из биологии именно по признаку саморазмножения. КОH этому условию соответствует, следовательно это есть вирус (или комплекс, включающий вирусный компонент)...
В таком случае DOS является вирусом (или комплексом, включающим вирусный компонент), поскольку в нем есть команда SYS и COPY. А если на диске присутствует файл AUTOEXEC.BAT, приведенный несколькими абзацами выше, то для размножения не потребуется даже вмешательства пользователя. Плюс к этому: если принять за необходимый и достаточной признак вируса возможность саморазмножения, то тогда любая программа, имеющая инсталлятор, является вирусом. Итого: аргумент не проходит.
... что, если под вирусом понимать не просто “саморазмножающийся код”, но “саморазмножающийся код, не выполняющий полезных действий или даже приносящий вред, без привлечения/информирования пользователя”...
Вирус KOH является программой, шифрующей диски по паролю, вводимому пользователем. _Все_ свои действия KOH комментирует на экране и спрашивает разрешения пользователя. Плюс к тому имеет деинсталлятор - расшифровывает диски и удаляет с них свой код. Однако все равно - вирус!
Если в случае с ALREADY.COM привлечь субъективные критерии (полезна/не полезна, входит в комплект/самостоятельна и т.п.), то, возможно, это и не стоит называть вирусом/червяком. Hо стоит ли привлекать эти самые субъективные критерии?
А какие могут быть объективные критерии вируса? Саморазмножение, скрытность и деструктивные свойства? Но ведь на каждый объективный критерий можно привести два контрпримера - a) пример вируса, не подходящего под критерий, и b) пример не-вируса, подходящего под критерий:
Саморазмножение:
Intended-вирусы, не умеющие размножаться по причине большого количества ошибок, или размножающиеся только при очень ограниченных условиях.
MS-DOS и вариации на тему SYS+COPY.
Скрытность:
Вирусы “KOH”, “VirDem”, “Macro.Word.Polite” и некоторые другие информируют пользователя о своем присутствии и размножении.
Сколько примерно (с точностью до десятка) драйверов сидит под стандартной Windows95 ? Скрытно сидит, между прочим.