Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вирусы и средства борьбы с ними.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.95 Mб
Скачать

Результат Фреда Коэна

В 1984 г. в своей работе "Computer Viruses - Theory and Experiments" Фред Коэн показал, что задача обнаружения компьютерных вирусов является неразрешимой. При этом он руководствовался следующими рассуждениями.

Отправной точкой был выбор определения вируса:

Определение 2.1. Компьютерным вирусом является программа, способная заражать другие программы изменяя их таким образом, чтобы они включали возможно измененную копию вируса.

Следовательно, чтобы определить, является ли программа P вирусом, необходимо выяснить заражает ли она другие программы. Предположим, существует процедура D, позволяющая по любой программе P сказать вирус это или нет. Но тогда можно составить программу V, которая будет включать процедуру D и будет заражать другие программы только в том случае, когда D не определит V как вирус и не будет заражать в противном случае.

Соответственно, если процедура D, будучи примененной к программе V, скажет, что это вирус, программа V на самом деле не будет заражать файлы и не будет вирусом согласно определению. И наоборот, если согласно процедуре D программа V не является вирусом, на самом деле она будет заражать другие программы, а значит будет вирусом.

Таким образом, гипотетическая процедура D оказывается противоречивой и, следовательно, не существует.

Результат д. Чесса и с. Вайта Основные положения

В работе "An Undetectable Computer Virus" Дэвид Чесс и Стив Вайт попытались развить идеи Коэна и показать, что задача обнаружения вирусов остается неразрешимой и при более слабых допущениях. Этой работой они попытались охватить класс полиморфных вирусов.

Рассмотрим множество программ. Множеством значений каждой из программ является одна или несколько других программ. При каждом выполнении программа производит одну программу из своего множества значений (в зависимости от входных данных). Пусть при этом выполнялась программа p, а результатом ее работы стала программа q. В этом случае будем говорить, что p производит q. Будем также говорить, что p со временем производит q, если p производит q либо непосредственно, либо после конечного числа итераций, когда сперва выполняется программа p, затем ее результат и т. д. Отношение "со временем производит" является транзитивным замыканием отношения "производит".

Определение 2.2. Множество V называется вирусным, если это максимальное множество удовлетворяющее условию:

Максимальность понимается в том смысле, что не существует такой программы r V, чтобы при ее добавлении к множеству V все еще выполнялось указанное условие.

Далее в рамках изложения условимся отождествлять множество V с компьютерным вирусом. Программа p будет называться экземпляром вируса V или же будет говориться, что она заражена вирусом V, т.к. p V.

Программа p будет называться просто зараженной, если: (V - вирус) [p V].

Будем говорить, что программа p размножается, если она производит новый экземпляр вируса (новый в смысле еще один, а не в смысле отличный от предыдущих).

Простейший вирус представляет собой множество из одного элемента и всегда производит сам себя. Более сложные множества соответствуют полиморфным вирусам, которые могут иметь несколько отличающихся форм, каждая из которых в процессе эволюции способна со временем произвести все остальные.

Предложенный формализм соответствует перезаписывающим вирусам, которые заменяют собой другие программы, принимая их имена, либо некоторым видам сетевых червей, которые распространяются создавая свои копии и рассылая их по сетевым каналам. Для описания вирусов в классическом определении Коэна необходимо усложнять модель. Однако основные результаты, которые будут получены ниже, могут быть распространены и на классические "паразитирующие" вирусы.