Общие сведения о вирусах

Основные типы вирусов

Рекомендуемая литература


  Компьютерные вирусы
— разновидность вредоносных программ, отличительной особенностью которых является способность к размножению (саморепликации). В дополнение к этому они могут повреждать или полностью уничтожать данные, подконтрольные пользователю, от имени которого была запущена заражённая программа.
Из-за внедрения исполняемого кода — например, макросов — в документы, появились макровирусы, поражающие такие документы (например 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, США — изобрели достаточно необычную игру «Дарвин», в которой несколько ассемблерных программ, названных «организмами», загружались в память компьютера. Организмы, созданные одним игроком (то есть принадлежащие к одному виду), должны были уничтожать представителей другого вида и захватывать жизненное пространство. Победителем считался тот игрок, чьи организмы захватывали всю память или набирали наибольшее количество очков.