Согласно теории эволюции, одними из первых биологических организмов, появившихся на нашей планете, были вирусы. Компьютерные вирусы, получившие свое название благодаря способности самостоятельно распространяться по электронным сетям и, размножаясь, наносить вред вычислительным системам, также возникли на заре развития компьютерных технологий. И если проследить историю зарождения белковых вирусов с большой долей достоверности сейчас уже не представляется возможным, ответить на вопрос, кто именно и зачем придумал компьютерные вирусы, относительно несложно. Как говорится, история не забывает своих героев. Вполне естественно, что многомиллионная армия пользователей персональных компьютеров должна помнить тех людей, благодаря которым появилось на свет такое известное сегодня каждому школьнику понятие, как компьютерный вирус.
Автором идеи, благодаря которой значительно позже возникла технология создания программных вирусов, принято считать американского программиста Боба Томаса. В 1971 году вычислительная лаборатория компании Bolt, Beranek and Newman, в которой работал Томас, получила заказ на разработку распределенного программного комплекса для авиадиспетчерских служб, управляющих движением пассажирских самолетов. Согласно требованиям заказчиков, входящие в комплекс программы должны были автоматически передавать управление курсом самолетов с одного компьютера на другой по вычислительной сети, отображая на экранах всех подключенных к этой сети компьютеров постоянно изменяющуюся информацию о текущем положении авиалайнеров в воздухе. Экспериментируя с системами передачи данных между различными вычислительными машинами, Томас написал программу, которую назвал «Ползуном». «Ползун» самостоятельно копировал себя с одного компьютера на другой, перемещаясь таким образом по сети, и выводил на экран каждого терминала следующее сообщение: «Я — Ползун! Если сможешь, поймай меня!». Эта небольшая программа не размножалась, а просто «ползала» с одного сетевого узла на другой, развлекая пользователей и системных администраторов. Когда другие программисты узнали об изобретении Томаса, они принялись создавать аналогичные программы, демонстрировавшие на экранах коллег по лаборатории различные забавные фразы. Когда кому-то из специалистов Bolt, Beranek and Newman надоело бороться с бесконечно отвлекающими его от работы «Ползунами», он написал другую программу, которая в точности так же самостоятельно перемещалась по сети, но с совершенно иной целью: она вылавливала и безжалостно уничтожала всех «Ползунов», которые попадались ей на пути. Задетые за живое разработчики «Ползунов» не отставали: усовершенствовав исходный код, они научили свои программы прятаться от «убийцы» в недрах операционной системы, маскируясь под ее компоненты и необходимые для нормальной работы компьютера библиотеки. Кровавая борьба между «Ползунами» и «Киллерами» продолжалась несколько месяцев, после чего это увлечение утратило свою новизну и было заброшено, так и не получив сколь либо серьезного развития.
Однако идея Боба Томаса не была забыта. В 1975 году американский писатель-фантаст Джон Браннер выпустил фантастический роман «Оседлавший Взрывную Волну», в основу которого легла несколько видоизмененная история с «Ползунами». Книга рассказывала о компьютеризированном обществе, которым управляло с помощью глобальной электронной сети правительство диктаторов и тиранов. Программист, решивший спасти мир от диктатуры, написал программу, которую автор романа назвал «глистом»; эта программа копировала себя с одного компьютера на другой, разрушая хранившуюся в них информацию. Чтобы остановить «глиста», правительство вынуждено было отключить сеть, лишившись таким образом власти. Роман быстро стал бестселлером, сделавшись поистине культовой книгой в только зарождавшейся тогда среде компьютерных хакеров. Именно благодаря этому роману в 1980 году двое сотрудников компании Xerox, которая в те времена выпускала пользовавшиеся большой популярностью персональные компьютеры, имеющие возможность объединения в локальные сети, решили создать программу, которую по аналогии с упоминавшимся в романе Браннера детищем программиста-бунтаря назвали «Червем». Собственно, «Червь» Иона Хеппа и Джона Шока должен был нести положительную миссию: по замыслу разработчиков, перемещаясь между подключенными к сети компьютерами, «Червь» был призван проверять операционную систему на наличие скрытых дефектов и по возможности устранять их. Хепп и Шок задумали еще два варианта «Червя»: один из них предназначался для распространения объявлений, которые администратор мог направлять всем пользователям вычислительной сети, второй позволил бы гибко перераспределять ресурсы между различными объединенными в сеть компьютерами. Однако на практике все получилось совсем не так, как задумали разработчики. Запустив вечером экспериментальную версию «Червя», Хепп и Шок отправились домой. Когда утром программисты вернулись на работу, они увидели, что все компьютеры, установленные в многоэтажном здании исследовательского центра Xerox, расположенного в городке Паоло-Альто, благополучно зависли. В исходном коде «Червя» была допущена незначительная ошибка, благодаря которой программа начала бесконтрольно распространяться между различными узлами сети и блокировать их работу. Перезагрузка машин не помогала: часть входящих в сеть компьютеров была установлена в закрытых комнатах, к которым Хепп и Шок не имели доступа, и как только на перезагружаемой машине запускалась операционная система, «Червь» тут же копировал себя в ее память с другого компьютера, после чего система мгновенно выходила из строя. Отключив одну из машин от локальной сети, программисты вынуждены были экстренно создать другую программу, которая уничтожила бы взбесившегося «Червя». На полную ликвидацию последствий их совместного творчества ушло несколько дней.
Ведущий программист компании Bell Labs Боб Морриссон по признаниям коллег был лучшим специалистом в своей области, к нему часто обращались за всевозможными консультациями, в частности — в сфере безопасности компьютерных систем. Морриссон был немногословен, но нередко доказывал оппонентам свою правоту на практике. Однажды сотрудники отдела, в котором трудился Боб, несколько месяцев подряд работали над совершенствованием системы безопасности эксплуатируемой ими компьютерной сети, изобретая все новые и новые программные модули. Когда работа была закончена, они похвастались Бобу, что теперь эта сеть защищена от возможных сбоев на все сто процентов. Пожав плечами, Морриссон молча выбросил горящий окурок в стоящее поблизости мусорное ведро с бумагами, содержимое ведра мгновенно загорелось, сработала противопожарная сигнализация и льющаяся из вмонтированных в потолок лаборатории труб вода за две секунды привела всю вычислительную систему в нерабочее состояние. Тогда, в конце восьмидесятых годов, среди программистов была очень популярна игра под названием Core Wars. Игра имела встроенный язык программирования, от игрока требовалось написать на этом языке специальную «боевую программу». Предназначение такой программы было простым: уничтожить аналогичные программы соперников, отыскивая слабые места в их коде. Побеждал тот программист, чье творение продолжало работать, когда все остальные программы были повреждены или разрушены. Виртуальные баталии «боевых программ» на несколько месяцев стали «коньком» программистов из Bell Labs; это продолжалось до тех пор, пока за дело не взялся Боб Морриссон. Его «боевая программа» оказалась непобедимой: код состоял всего лишь из 30 строк, однако этот крошечный файл не просто атаковал соперников: он анализировал методы их защиты и, соответствующим образом видоизменяясь, уничтожал файл противника «изнутри», выбирая стратегию атаки исходя из его логической структуры. После этого игра Core Wars утратила всякий смысл: изобретенный Морриссоном «полиморф» не оставлял конкурентам ни одного шанса. Вскоре Боб Морриссон оставил работу в Bell и получил должность эксперта по компьютерной защите в Национальном Агентстве Безопасности США — единственной в Америке организации, занимавшейся расследованием компьютерных преступлений.
Старший сын Боба Морриссона Роберт рос тихим и скромным мальчиком, его единственной страстью были компьютеры. Уже в четырнадцатилетнем возрасте он переписал популярную у подростков компьютерную игру The Four Corners, добавив в нее множество новых функциональных возможностей, в 16 лет он стал настоящим экспертом по системе безопасности UNIX, обнаружив в «классическом» берклиевском коде этой платформы множество ошибок, которые не замедлил исправить. Однако он и сам не брезговал пользоваться обнаруженными «дырами» в защите, время от времени подключаясь к удаленным электронным сетям в поисках интересующей его информации. Это увлечение привело к тому, что вскоре в компьютерном журнале Smitsonian появился материал, в котором Роберта называли одним из наиболее известных молодых хакеров в Америке. Именно Роберт Морриссон является автором и разработчиком одной из наиболее известных реализаций протокола передачи данных UUCP — Unix-To-Unix CoPy. Обучаясь на четвертом курсе Гарвардского университета, Роберт уже читал лекции в Национальном Агенстве Безопасности США и исследовательских лабораториях военно-морского флота по безопасности операционной системы UNIX.
Полученные Робертом в ходе его самостоятельных разработок и изучения уже существующего опыта других программистов знания требовали практического применения. В качестве эксперимента Роберт решил написать программу, которая, используя обнаруженные им недоработки в созданном для UNIX протоколе FTP и программе sendmail могла бы самостоятельно распространяться между объединенными в сеть компьютерами, подобно «Червю» Хеппа и Шока, но при этом умела бы эффективно «прятаться» в операционной системе и самостоятельно размножаться. Иными словами, «Червь» Морриссона должен был объединять в себе все достоинства предыдущих попыток создания аналогичных программ. Поскольку эта разработка была всего лишь научным экспериментом, тестом на безопасность объединенных в сети компьютерных систем, Роберт заложил в код «Червя» алгоритмы, сдерживающие его распространение, никаких модулей, разрушающих файловую систему атакованных компьютеров, также задумано не было. 2 ноября 1988 года в 18.30 Роберт Морриссон подключился к компьютерам лаборатории искусственного интеллекта MIT и запустил свою программу на исполнение. Когда спустя полчаса он снова попытался подключиться к сети, чтобы проверить ход эксперимента, удаленный компьютер не ответил: благодаря закравшейся в исходный код ошибке «Червь» начал бесконтрольно размножаться, блокируя нормальную работу вычислительных систем, и вскоре вырвался из локальной сети MIT на просторы Интернета.