THE CREATURES #08
На своём веку :) мне приходилось слышать много определений понятию
"компьютерный вирус", начиная с хижняковской "вредной программы" и
заканчивая определением в УК РФ, которое, кстати, тоже не идеально. Вот
тов Касперский например вообще отказался давать вирусу чёткое определение,
говоря, что из всех правил есть исключения, и вирусы зачастую очень похожи
на не-вирусы по функциональности.
Хотя отделить понятие "вирус" всё же возможно, и отделить очень чётко.
Правда, я не буду пытаться формулировать его (хотя можно попробовать). Я
хотел расширить понятие "вирус", разобрать понимание его в разных ситуациях.
Ведь для кого-то и глюки винды - вирус, а кто HLLP за вирусы не считает.
Но вирус - вещь более мощная и теоретически намного более страшная,
нежели реальные ординарные представители. Это действительно УНИКАЛЬНЫЙ тип
ПО, к тому же не имеющий аналогов вне компьютера.
Подумайте - во-первых, никогда нельзя быть уверенным, что на данном
компьютере не обитает вирус, если только комп не отключён от каких-либо
носителей данных. То есть не представляется возможным хоть как-то
контролировать вирус, тем более обычным пользователям. Вирус АБСОЛЮТНО
независим. Если, допустим, та же винда зачастую делает вещи, о которых
пользователь не догадывается, то он может её снести нахрен, и хоть таким
образом как-то управлять ею. Не говоря уж о том, что обычно системы всё-же
не так скрытны в своих операциях, и если пользователь не знает о них точно,
то по крайней мере догадывается об их общих предназначениях. "Ну а трояны?" -
скажете вы. Да, троян довольно независим от пользователя "заражённого" компа,
но ведь по сути он является просто инструментом, инструментом обдуривания
бедных юзеров, особенно если это троян не собственный, а откуда-то взятый.
Так можно сказать, что вирус - это единственная по-настоящему НЕЗАВИСИМАЯ
программа?
Нет, это нечто более сильное... ведь единственный, кто может хоть как-то
контролировать вирус - это тот, кто знает его строение, а на первых порах это
единственный человек - создатель вируса. Как вам мысль, что кто-то посторонний
теоретически может контролировать ваш собственный компьютер, как бы вы не
старались этого избежать..?
Но суть ещё и в том, что вирус для создателя вируса вовсе не троян
какой-нибудь, и его могут делать вовсе не для того, чтобы поиметь чей-то
комп (хотя зачастую именно для этого). Проблема в том, что вирусом не так-то
просто управлять. Получается, он САМ хозяйничает на вашем компе! :)
Так что же такое вирус для создателя вируса? Итак, мы вернулись к вопросу
"зачем люди пишут вирусы". Вообще этот вопрос довольно широк, вы не находите?
Кроме всего прочего, компьютерный вирус - действительно наиболее удачная
имитация жизни, созданная человеком. По сути это и есть жизнь, только не
физическая (биологическая), а кибернетическая, виртуальная. И не беда, что
пока её ещё далеко даже до примитивнейших прокариотов, технологии развиваются,
и возможно в скором будущем появятся функционально полиморфные вирусы, либо
колониальные вирусы (кстати, смотри файлик номер три)
Ну и под конец всё же попробую вывести сухое определение вируса (так, для
понта - чтоб всякие там хижняки не путали). Итак,
ВИРУС - это
исполняемый код, способный к саморазмножению по собственной
"инициативе", то есть без старта его пользователем. Почти обязательным
признаком является какая-либо маскировка в местах, дающих возможность
автозапуска вирусного кода.
отсюда следует, что:
* вирус маскируется ПОД ЧТО-ТО, запускаемое системой,
программами или самим пользователем.
(так как если программу приходиться запускать саму по себе, это уже НЕ ВИРУС)
ОПЦИОННЫЕ ПРИЗНАКИ:
вирус работает без какого бы то ни было вмешательства
пользователя и даже пытается оградиться от любого вмешательства.
вирус старается избежать обнаружения себя пользователем
либо какими-либо программами, также путём скрывания косвенных признаков
(сокращение скорости работы, минимальное использование системных функций...)
ПОЯСНЕНИЯ:
Саморазмножение - это способность (кода) производить собственные копии.
ТО ЕСТЬ:
Саморазмножающиеся макросы на каком-либо HLL (даже bat) - вирусы.
Программа, спрашивающая "а можно я поселюсь в таком-то файле" - вирус
(правда, это скорее отладочная версия).
*ВНИМАНИЕ!* Разница - он хоть и спрашивает ползователя, но запустился-то
сам, без юзерского участия. Поэтому и вирус.
Просто копирующий сам себя код - НЕ вирус (смотри определение после звёздочки)
К сожалению, тут у меня вышла небольшая путаница с необходимостью,
достаточностью и опционностью некоторых признаков (а некоторые вообще следуют
из уже названных), но это всё-таки не математика... хотя придумать
математическую теорию о вирусах вообще-то интересная мысль...