Розыгрыш на $100 млн. Как чуть не посадили создателя первого вируса-червя

История программы, подарившей обычным юзерам словосочетание «компьютерный червь», а своему создателю — условный тюремный срок.
Что произошло
Научное любопытство
Как это работало
Что пошло не так
Первый киберзлодей
Как червь Морриса изменил мир
Что произошло
Научное любопытство
Как это работало
Что пошло не так
Первый киберзлодей
Как червь Морриса изменил мир
Ещё

Два дня, которые потрясли компьютерный мир

Системным администраторам не привыкать работать, когда все спят. Ночь со второго на третье ноября 1988 года выдалась тяжелой для администраторов ARPANET — прообраза современного интернета. Она была создана под эгидой Министерства обороны США и соединяла в основном компьютеры, установленные в научных институтах. Вечером 2 ноября исследователи, работавшие на подключенных к сети компьютерах, заметили неладное.

Машины тормозили, зависали и отказывались работать, память была переполнена, а список процессов забит копиями одной и той же программы.
Работа за компьютером, 1988 год. Фото: Paleofuture
Работа за компьютером, 1988 год. Фото: Paleofuture

Перезагрузки компьютерам не помогали — при повторном запуске копий вредоносной программы становилось еще больше. К утру зараженными оказались 7000 компьютеров — десятая часть сети ARPANET на тот момент. Компьютерные специалисты были в шоке: систему пытались взломать уже не в первый раз, да и само понятие компьютерного вируса к тому моменту уже прочно закрепилось в лексиконе. Но атаки подобных масштабов сеть еще не испытывала.

В это время 22-летний аспирант Корнеллского университета Роберт Моррис пытался при помощи друга разослать ученым анонимное письмо с описанием механизма работы вируса и рекомендациями, как от него защищаться. Именно Моррис был создателем вируса, и явно мог бы его «усмирить». Но вот какая ирония — простая программа не позволила своему творцу этого сделать.

Из-за перегруженных программой сетей данные отправить не получилось

Научное любопытство

Сам Моррис так и не смог позже внятно объяснить, зачем он это сделал. Скорее всего, сыном известного криптографа и компьютерного специалиста двигало научное любопытство. «Червь Морриса», как потом назвали программу, не должен был «подвешивать» ARPANET. Вирус задумывался как безобидный компьютерный эксперимент, proof-of-concept, способ указать специалистам, что их сеть не так уж и хорошо защищена.

Роберт Моррис. Фото: Telegram
Роберт Моррис. Фото: Telegram

Компьютерный червь не содержал в себе никакой смысловой нагрузки и не должен был влиять на работу сети. Все, на что был рассчитан вирус, — копировать самого себя и передавать на другие машины. Почти как вирус простого герпеса: есть у многих, но люди с нормальным иммунитетом его вовсе не замечают.

Что же пошло не так?

Как это работало

Для распространения своей программы Моррис решил использовать уязвимости в Sandmail и Fingerd. Первый — агент для передачи почтовых сообщений, вторая — программа, запускаемая операционной системой UNIX и отвечающая на запросы о действиях пользователя (например, когда тот последний раз регистрировался в сети). Также вирус передавался при помощи методов rexec и rsh, позволяющих управлять удаленным компьютером. В этом случае для получения доступа к другой машине червь использовал простой, но изящный метод перебора паролей.

Благодаря тому, что многие пользователи имели одинаковые имена и пароли на всех машинах в сети, сложности в этом не было.
Карта сети ARPANET в 1988 году. Фото: МТИ
Карта сети ARPANET в 1988 году. Фото: МТИ

Кроме того программа пользовалась определенными трюками, которые должны были затруднить специалистам по компьютерной безопасности обнаружение и обезвреживание вируса. Например, после запуска она удаляла свой исполняемый файл и отключала сообщения об ошибках. Также родительский поток выполнения «Червя Морриса» раз в несколько минут создавал дочерний поток, а сам отключался — благодаря этому в списке процессов регулярно обнулялось время работы программы. Ну и вдобавок ко всему червь умел маскироваться под другие, «здоровые» процессы.

Что пошло не так

Поскольку Моррис предполагал, что его программу все же будут обнаруживать и обезвреживать, то снабдил ее простым методом самозащиты. Червь с определенной периодичностью перезаписывал себя, создавая копию. Делал он это каждый раз, когда попадал на новый компьютер, а затем по определенному расписанию.

Обнаружение и удаление активной копии программы никак не гарантировало, что компьютер будет очищен.

Именно в этом механизме и крылась допущенная Моррисом ошибка. Установленный период размножения был слишком коротким, и в результате программа начала создавать избыточное количество копий. Распространение программы приобрело лавинообразный характер, и эксперимент вышел из-под контроля.

Упрощенная схема работы червя. Фото: Apanados
Упрощенная схема работы червя. Фото: Apanados
Создатель червя хотел рассказать о нем миру, как только узнал о последствиях собственного эксперимента.

Сперва он сообщил о нем нескольким друзьям, затем (как мы уже упоминали выше) пытался с их помощью сделать рассылку, чтобы помочь усмирить вирус. Когда распространение превратилось в самую настоящую пандемию, Роберт во всем признался отцу и решился на явку с повинной.

Первый киберзлодей

Эпидемия, вызванная «Червем Морриса», была не первым масштабным нашествием компьютерного вируса. Незадолго до этого по миру прокатились вирусы Brain и Jerusalem. Но несмотря на то, что количество зараженных ими компьютеров было куда больше, чем у Morris Worm, они не нанесли подобного ущерба.

Убыток, нанесенный Моррисом, оценили в 96,5 миллиона долларов.

Общее количество часов потери доступа к сети составило 8 миллионов часов — и еще примерно миллион пришлось потратить на восстановление последствий. И это при том, что программа была в целом безвредной!

Суд над Моррисом продолжался до января 1990 года. Изначально парню грозило пять лет лишения свободы и штраф в 25 тысяч долларов. Но учитывая чистосердечное признание и отсутствие в коде вредоносного предназначения, горе-программист отделался условным сроком. К нему добавили 10 тысяч долларов штрафа и 400 часов обязательных общественных работ.

Моррис во время судебного процесса. Фото: Fifth Domain
Моррис во время судебного процесса. Фото: Fifth Domain
Роберт Моррис стал первым осужденным по Закону о мошенничестве и злоупотреблениях с применением компьютера — первым киберпреступником в истории США.

Как червь Морриса изменил мир

Morris Worm был далеко не первым компьютерным вирусом — но именно он заставил инженеров и ученых по всему миру задуматься о вопросах безопасности. Именно после эпидемии 1988 года для повышения безопасности системы стало внедряться использование пауз после неправильного ввода пароля и хранение паролей в закрытом файле /etc/shadow вместо доступного для чтения всем пользователям файла /etc/passwd.

Еще одним важным итогом случившегося стало создание в университете Карнеги-Меллона Компьютерной группы реагирования на чрезвычайные ситуации (Computer Emergency Response Team, CERT) — экспертного сообщества, занимающегося проблемами компьютерной безопасности.

Дискета с исходным кодом червя. Фото: This Day in Tech History
Дискета с исходным кодом червя. Фото: This Day in Tech History

Как раз в это время распространение компьютерных сетей начало набирать обороты, и инцидент, случившийся с ARPANET, на какое-то время стал главной темой во всех СМИ, оттеснив на задний план новости о выборах президента США.

Именно после этого обычные юзеры запомнили слово «червь» и начали хоть немного думать перед тем, как вводить пароли из нескольких единиц.

Сам Моррис больше героем новостных сюжетов не становился. Роберт закончил университет, получил докторскую степень, основал свой стартап и написал один из диалектов языка Lisp. И больше нигде так не ошибался — видимо, после 1988 года всегда тщательно проверял свой код.

Это тоже интересно: