Практике проблема «вирус-или-не-вирусНа практике проблема «вирус-или-не-вирус» довольно успешно решается введением и использованием понятия «нежелательное программное обеспечение» . «Вирусом» может считаться любая программа, которую типичный пользователь не хотел бы видеть на своем компьютере. Решающая процедура, присутствующая в антивирусном программном обеспечении, отличает «вирус» от «невируса» не по признаку возможности саморазмножения, а по сигнатурам, контрольным суммам, нехарактерным для «нормальных» программ фрагментам, подозрительному поведению и т. п. Речь об этом в нашей книге пойдет дальше. Известный специалист в области защиты информации Л. Адлеман в своей статье «Абстрактная теория компьютерных вирусов» определил компьютерный вирус-«паразит» через понятие «заражения» . Понятие «размножения» в этом определении тоже присутствует, но неявно, в силу рекурсивности определения. В основе модели Адлемана лежит тезис о том, что для каждой программы возможны как «здоровая», так и «зараженная» формы, и, соответственно, существует некая функция, преобразующая программу из первой формы во вторую. Эту функцию Адлеман и ассоциировал с «компьютерным вирусом». Чтобы абстрагироваться от конкретных алгоритмов, условий их применения, данных, с которыми они работают и т. п., и перейти от всего многообразия рассматриваемых сущностей к целым числам, Адлеман использовал «Геделевские нумерации» — остроумный способ пронумеровать каждый знак и, произведя над ними определенные действия, получить для каждого математического выражения его уникальный номер — так называемый «Геделев номер», или «нуме — рал». Таким образом, как аргументы, так и сами функции для Адлемана суть целые числа.

Еще интересные статьи :