5 ноября 2013

25 лет червю Морриса

Безопасность Видео

На этих выходных стукнуло двадцать пять первой компьютерной заразе, которая была достаточно массовой, чтобы попасть в телевизионные новости. Знаменитый червь Морриса, написанный студентом Корнелльского университета, поразил примерно 10% компьютеров, подключенных к Интернету, то есть  6 из 60 тысяч. Цифры выглядят смешными, но в этом доисторическом по меркам компьютерной индустрии случае на самом деле собралась квинтэссенция зловредства: эксплойты, стелс-технологии, перебор паролей, DDoS, а венцом всему стало судебное преследование и приговор.

Червь Морриса исходный код

Дискета с исходным кодом червя Морриса хранится в Бостонском музее науки. Фото: Intel Free press

О том, как рассказывали о черве в теленовостях, можно посмотреть видео на YouTube.  А мы немного расскажем о технической стороне дела.

Итак, студент Корнелльского университета Роберт Таппан Моррис решил, по его словам, оценить размер Интернета. Подошел он к этому основательно — написал сложную программу, которая способна самостоятельно распространяться по Сети и препятствовать попыткам ее остановить. Легко заметить, что эта функциональность четко попадает под определение червя. Червь Морриса не причинял какого-либо вреда системе, но ошибка в программе приводила к тому, что многие компьютеры запускали червя десятки раз, что перегружало сервер, делая его, по сути, неработоспособным. Похоже на DDoS, не правда ли?

Как же червь распространялся по Интернету? Ничего не изменилось за прошедшие 25 лет — для этого использовались уязвимости. В случае червя Морриса — целых три. Во-первых, уязвимости реализации Finger и Sendmail в популярных UNIX-системах того времени позволяли запустить на удаленном компьютере произвольный код. Во-вторых, если эти варианты не проходили, червь пытался подключиться к rsh — консоли удаленного администрирования. Правда, для этого требуется пароль, но червь его подбирал. Весьма впечатляет, что большой процент успешно подобранных паролей был достигнут при помощи словаря всего в 400 слов, плюс несколько очевидных вариантов, таких как пароль, совпадающий с именем пользователя или составленный из тех же букв в обратном порядке. О необходимости выбирать надежные пароли и сегодня задумываются немногие, а уж 25 лет назад даже системные администраторы об этом не особо заботились.

Червь не был запрограммирован на вредоносные действия, но из-за ошибки перегружал компьютеры работой.

Проникнув на компьютер, червь менял имя своего процесса, удалял временные файлы и принимал еще ряд мер, препятствующих своему обнаружению, в частности шифровал свои данные в памяти. Запускаясь на новом компьютере, червь проверял, не является ли компьютер уже зараженным. При обнаружении двух копий на компьютере они «играли в кости», и одна самоуничтожалась. То ли из-за ошибки Морриса, то ли для страховки от создания простой «вакцины», основанной на этом эффекте, в одном случае из семи новая копия переставала играть «в выживание» и продолжала работать при любых условиях. Именно это решение привело к DDoS-эффекту, коэффициент 1/7 оказался слишком большим, и многие компьютеры повторно заражались десятки раз.

Несмотря на то что сама концепция сетевого червя оказалась совершенно новой для системных администраторов и для разбирательства с угрозой пришлось спешно создавать рабочие группы программистов и администраторов в МТИ и Беркли,  буквально за два дня были определены и заблокированы «лазейки», через которые червь проникал в систему, а код заразы был целиком дизассемблирован. В общем, с червем было покончено. Несмотря на это, на устранение последствий заражения, по разным оценкам, было потрачено от 100 тысяч до 10 млн долларов.

Интересно, что принятые Моррисом меры конспирации могли бы помочь ему остаться анонимным. Но в дело вступил отец, тоже Роберт Моррис. Соавтор операционной системы UNIX и директор по исследованиям Национального центра компьютерной безопасности при АНБ убедил сына во всем признаться. Суд, состоявшийся в 1991 году, учел этот факт и вынес Моррису довольно мягкий приговор: 3 года условно, штраф 10 тысяч долларов и 400 часов общественных работ. Урок, кстати, пошел Моррису-младшему на пользу — он стал весьма уважаемым членом компьютерного сообщества. Среди его успехов создание одной из первых платформ интернет-коммерции Viaweb (в дальнейшем продана Yahoo! и переименована в Yahoo Store), создание стартап-фермы Y Combinator, работа над новыми языками программирования и профессорская степень в МТИ.