Главная arrow Развитие ПО arrow История компьютерных вирусов
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
История компьютерных вирусов Печать
Компьютерные вирусы являются одной из разновидностей компьютерных программ, получившего распространение в конце 80-х гг. Исторически их  возникновение связано с идеей создания самовоспроизводящихся программ - концепции, уходящей своими корнями в пятидесятые годы. Идея самовоспроизводящихся механизмов исследовалась еще Джоном фон Нейманом, который в 1951 г. предложил метод создания таких механизмов.

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

Первой публикацией, связанной с рассматриваемой концепцией, можно считать статью Л.С.Пенроуза (L.S. Penrose) о самовоспроизводящихся механических структурах, опубликованную в 1959 г. американским журналом  «Scientific American». В этой статье, наряду с примерами чисто механических конструкций, была приведена некая двумерная модель подобных структур, способных к активации, захвату и освобождению. Под влиянием этой статьи Ф.Ж.Шталь (F.G.Stahl) запрограммировал на машинном языке ЭВМ IBM 650 биокибернетическую модель, в которой существа двигались, питаясь ненулевыми словами. При N передвижениях без пищи существо умирало от голода, а после съедания определенного количества слов порождало новое. При размножении была предусмотрена возможность мутаций, в ходе которых существа могли приобретать способность пожирать себе подобных и терять возможность к размножению. Однако ограниченная память и быстродействие IBM 650 послужили препятствием для получения интересных результатов: в ходе пробного прогона один бесплодный мутант убил и съел единственного, способного к размножению.

В 1962 г. Роберт Моррис (Robert Morris) -- фирма Bell Telephone Laboratories, США -- изобрел достаточно необычную игру «Дарвин», в  которой несколько ассемблерных программ, названных «организмами», загружались в память компьютера. Организмы, созданные одним игроком (т.е. принадлежащие к одному виду), должны были уничтожать представителей другого вида и захватывать жизненное пространство. Победителем считался тот игрок, чьи организмы захватывали всю память или набирали наибольшее количество очков.

Игра проходит на большом участке памяти, называемом ареной и управляемом специальной программой - супервизором. Вид V состоит из N(V) особей. Каждая особь (K=1..N(V)) имеет размер S(K)  (K=1..N(V), S(K) < MAXS) и расположена в R(K) последовательных ячейках, начиная с головы G(K), причем R(V) точек со смещениями P(K,1)..P(K,R(V)) относительно головы являются защищенными. Организм, который получает управление, может использовать три вида обращения к супервизору:

  • PROBE(n,loc) - запрос о содержании ячейки с адресом loc (если эта ячейка защищена, то управление передается ее обладателю, а если нет, то возвращаются три числа - <номер вида организма, занимающего ячейку> (ноль, если  ячейка свободна), <начало> и <конец> (если ячейка свободна, то начало и конец свободного участка арены, в который она входит; нули, если ячейка занята организмом));
  • KILL(loc) -- уничтожить  организм по адресу loc (loc должна принадлежать организму другого вида и должна быть предварительно исследована PROBE любым организмом того же вида, что и нападающий);
  • CLAIM(n,loc) - размножить организм на участок свободного пространства, включающий  loc (ячейка  loc должна быть предварительно исследована с помощью PROBE и не менее S(K) ячеек должно быть свободно, возможно, в результате предыдущего KILL).

«Игра для полуночников», возникшая в фирме Bell Telephone Laboratories, быстро приобрела популярность и в других учебных и исследовательских центрах, например в исследовательском центре фирмы Xerox в Пало Альто и в Массачусетском технологическом институте (МТИ).

Отметим, что долгое время описание игры существовало только «в устном фольклоре»: статья с описанием игры была опубликована только в 1972 г., причем в ее тексте использовался термин «вирус» применительно к одному из видов организмов.

Весной 1977 г. появился первый персональный компьютер Apple II. Эта модель  находилась в производстве с 20 апреля 1977 г. по 1 августа 1983 г. Общее количество проданных машин составило более 3 млн. шт., что на порядок превышало количество ЭВМ других серий.

Поэтому для  этих машин появились объективные возможности создания реальных компьютерных вирусов, и эти возможности очень быстро были осознаны и реализованы. Неудивительно, что Apple II послужил «рабочей лошадкой» для разработчиков «доисторических» компьютерных вирусов.

Параллельно с массовой продажей компьютеров Apple, в конце 70-х годов в США отмечается бурное развитие сетей для передачи информации на базе обычных телефонных каналов. Появляются первые банки свободно распространяемых программ и данных - BBS (Bulletin Board System - буквально «доска объявлений» для программ).

В этот банк любой программист мог загрузить (download) свою программу, и любой пользователь мог ее считать и запустить на своем компьютере.

Это существенно увеличило и ускорило трафик программ, тем более что многие университетские компьютерные центры (традиционно являющиеся центрами разработки различного рода бесплатных программ) организовали свои BBS. Позднее появились и большие онлайновые информационные системы, такие как CompuServe, которые охватывали практически все западные страны.

С появлением BBS получил распространение и новый вид компьютерного хулиганства: загрузка в нее программы, выводящей какие-то привлекательные картинки или претендующей на выполнение какой-либо полезной функции, которая сразу после запуска («чистая» программа-вандал) или через некоторое время, или при выполнении некоторого условия (троянская программа вандал) уничтожала данные на компьютере пользователя, переписавшего и запустившего ее на своем  компьютере. Такие программы-вандалы можно рассматривать как исторических предшественников вирусов-вандалов, тем более что их разрабатывает по сути один и тот тип личностей.

В 1980 г. появилась первая  и весьма примечательная европейская публикация по компьютерным вирусам – «Самовоспроизводящиеся программы» Крауса. Ее автор - сотрудник  кафедры информатики  Дортмундского университета - не только дал достаточно точное определение компьютерных вирусов, но и привел в своей работе листинги компьютерных вирусов (на языке ассемблера фирмы Siemens - клона известной системы System/360 фирмы IBM). К сожалению, данная публикация представляла собой препринт Дортмундского университета и широкого распространения не получила. По мнению Ральф Бургера, автора первой книги по компьютерным вирусам, опубликованной впервые в 1987 г., уровень этой работы существенно превосходит уровень исследований Ф.Коэна, поэтому обидно, что она практически забыта и не цитируется в современных исследованиях по компьютерным вирусам.

В 1981-82 гг. появился первый, получивший некоторое распространение, бутовый вирус на компьютер Apple II. Этот вирус, получивший название ELK CLONER, обнаруживал свое присутствие сообщением, содержавшим даже небольшое стихотворение:

elk cloner:
the program with a personality
it will get on all your disks
it will infiltrate your chips
yes, it's cloner
it will stick to you like glue
it will modify ram, too
send in the cloner!


Поскольку винчестеров тогда еще не было, борьба с ним состояла в использовании защитных наклеек на дискетах.

Другой вирус для Apple II был создан в 1982 г. студентом Техасского университета. Он был рассчитан на операционную систему DOS 3.3. Не до конца отлаженная версия этого вируса «ускользнула» от автора и начала распространяться по университету. Ошибка в вирусе вызывала подавление графики популярной игры под названием CONGO, и в течение нескольких недель все «пиратские» копии этой игры перестали работать. Для исправления ситуации автор запустил новый, исправленный вирус, предназначенный для «замещения» предыдущей версии. Как мы видим, идея «подобное лечится подобным» открывалась многократно.