Почему нет универсального антивируса?

(Ди Алессандро Руголо)
17/02/20

Пока существовали компьютерные вирусы, существовал и антивирус. Это очевидная реальность. Но почему антивирусы эффективны не против всех вирусов?

Ответить на этот вопрос интуитивно просто: потому что всегда есть новые вирусы, которые ведут себя не так, как предыдущие, а антивирусы работают только с тем, что знают. Если вы пойдете и посмотрите, что скрывается за интуитивным ответом, тогда все станет сложнее, потому что, если вы попытаетесь исследовать проблему, вы попадете в область исследования, которая совсем не проста.

Чтобы понять, о чем мы говорим, необходимо ввести некоторые понятия или значениеэвристический"и о"Машина Тьюринга".

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

Вместо «универсальной машины Тьюринга» мы имеем в виду один идеальная машина, которая запрограммирована, позволяет выполнять любую операцию или вычислять любую вычислимую функцию за конечное число элементарных шагов.

Несколько лет назад Леонард Макс Адлеман, помимо того, что был одним из трех изобретателей алгоритма шифрования RSA (Ривест-Шамир, Адлеман) и первым, кто использовал термин «вирус» в компьютерной науке для выявления вредоносных агентов, также показал, что если бы существовал алгоритм, способный обнаруживать присутствие вируса в общем случае, этот алгоритм мог бы решить проблему, известную под названием "проблема остановки". Эта проблема, теоретически решаемая Аланом Тьюрингом, состоит в скажем, если с учетом какой-либо программы и любого ввода можно определить, будет ли программа рано или поздно остановлена ​​или продолжит работать бесконечно, Алан Тьюринг показал, что эта проблема «неразрешима».

Итак, вернемся к нашей проблеме, то есть, если может быть программа, способная обнаруживать любой вирус, Леонард Макс Адлеман показал, что эта проблема эквивалентна более известной «проблеме остановки» и, следовательно, также неразрешимый.

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

Фото: ВВС США