Компьютерные вирусы
— разновидность вредоносных программ, отличительной особенностью
которых является способность к размножению (саморепликации). В
дополнение к этому они могут повреждать или полностью уничтожать
данные, подконтрольные пользователю, от имени которого была
запущена заражённая программа.
Из-за внедрения исполняемого кода — например, макросов — в
документы, появились макровирусы, поражающие такие документы
(например Microsoft Word и Excel).
До недавнего времени считалось,
что являясь программой вирус может заразить только программу —
какое угодно изменение непрограммы является не заражением, а
просто повреждением данных. Подразумевалось, что такие копии
вируса не получают управления, будучи информацией, не
использующейся процессором в качестве инструкций.
Некоторое время спустя появились вирусы, использующие уязвимости
в популярном программном обеспечении (например, Adobe Photoshop,
Internet Explorer, Outlook), в общем случае обрабатывающем
данные. Вирусы стали распространяться посредством внедрения в
последовательности данных (например, картинки, тексты, и т. д.)
специального кода, использующего уязвимости программного
обеспечения. Можно сказать, что именно с этого периода
пользователь компьютера стал наименее защищён от вирусов.
Компьютерный вирус был назван по аналогии с вирусами
биологическими. По всей видимости, впервые слово вирус по
отношению к программе было употреблено Грегори Бенфордом (Gregory
Benford), в фантастическом рассказе «Человек в шрамах» (The
Scarred Man), опубликованом в журнале Venture в мае 1970. Термин
компьютерный вирус впоследствии не раз открывался и
переоткрывался — так переменная в программе PERVADE (1975), от
значения которой зависело будет ли программа ANIMAL
распространяться по диску, называлась VIRUS, так же вирусом
назвал свои программы Джо Деллиндер, и, вероятно, — это и был
первый вирус, названный «вирусом».
В настоящее время не существует
единой системы классификации и именования вирусов (хотя попытка
создать стандарт была предпринята на встрече CARO в 1991 году).
Принято разделять вирусы по поражаемым объектам (файловые
вирусы, загрузочные вирусы, скриптовые вирусы, сетевые черви),
по поражаемым операционным системам и платформам (DOS, Microsoft
Windows, Unix, GNU/Linux, Java и другие), по технологиям
используемым вирусом (полиморфные вирусы, стелс-вирусы), по
языку на котором написан вирус (ассемблер, высокоуровневый язык
программирования, скриптовый язык и др.).
Основы теории самовоспроизводящихся механизмов заложил
американец венгерского происхождения Джон фон Нейман (John von
Neumann), который в 1951 предложил метод создания таких
механизмов. Первой публикацией, посвященной созданию
самовоспроизводящихся систем, является статья Л. С. Пенроуз (L.
S. Penrose) (жена нобелевского лауреата по физике Р. Пенроуза) о
самовоспроизводящихся механических структурах, опубликованная в
1957. американским журналом «Nature». В этой статье, наряду с
примерами чисто механических конструкций, была приведена некая
двумерная модель подобных структур, способных к активации,
захвату и освобождению. По материалам этой статьи Ф. Ж. Шталь
(F. G. Stahl) запрограммировал на машинном языке ЭВМ IBM 650
биокибернетическую модель, в которой существа двигались, питаясь
ненулевыми словами. При поедании некоторого числа символов
существо размножалось, причём, дочерние механизмы могли
мутировать. Если кибернетическое существо двигалось определённое
время без питания, оно погибало.
В 1961 В. А. Высотский (V. А.
Vyssotsky), Х. Д. Макилрой (H. D. McIlroy) и Роберт Моррис (Robert
Morris) — фирма Bell Telephone Laboratories, США — изобрели
достаточно необычную игру «Дарвин», в которой несколько
ассемблерных программ, названных «организмами», загружались в
память компьютера. Организмы, созданные одним игроком (то есть
принадлежащие к одному виду), должны были уничтожать
представителей другого вида и захватывать жизненное
пространство. Победителем считался тот игрок, чьи организмы
захватывали всю память или набирали наибольшее количество очков. |