Суета вокруг Роберта - [11]
Могу сразу сказать, что сделать это будет не так-то просто, а почему - вы узнаете несколько ниже.
Итак, что же представлял собой вирус Морриса [D1].
Вирус Морриса - высокосложная 60000-байтная программа,
разработанная с расчетом на поражение операционных систем
UNIX Berkeley 4.3 (или 4.3 BSD) и аналогичных ей Sun, работающих
на компьютерах фирм Sun Microsystems Inc. (Sun) и Digital
Equipment Corp. (DEC) [D2].
Вирус изначально разрабатывался как безвредный и имел целью
лишь скрытно проникнуть в вычислительные системы, связанные
сетью Arpanet, и остаться там необнаруженным.
Поскольку вирус распространялся в среде сети с
использованием соответствующих сетевых средств и полностью
обеспечивал свою работу сам, то бесспорным является утверждение,
что вирус Морриса является полноправным представителем крайне
редко встречающегося вирусного семейства сетевых червей.
______________________________
[D1] Мне кажется более правильным называть этот вирус по имени его автора, хотя, как я уже говорил, вирус имеет массу других названий. Однако в нашей стране, имеющей весьма отдаленное представление об Arpanet, Milnet, Internet, Корнеллском университете и т.д. прижилось и получило определенное распространение именно это название - "вирус Морриса". В дальнейшем будем так называть его и мы.
стр. 21
Компьютерные эксперты, дезассемблировавшие вирус, единодушно отметили, что программа была написана с выдающимся мастерством и расчетом на три недостатка в системе безопасности поражаемых операционных систем.
Вирусная программа включала компоненты, позволявшие раскрывать пароли, существующие в инфицируемой системе, что в свою очередь позволяло программе маскироваться под задачу легальных пользователей системы, на самом деле занимаясь размножением и рассылкой собственных копий. Вирус не остался скрытым и полностью безопасным, как задумывал автор, в силу незначительных ошибок, допущенных при разработке, которые привели к стремительному неуправляемому саморазмножению вируса.
Теперь давайте рассмотрим вирус несколько подробнее, насколько, конечно, позволяет имеющаяся у нас информация о нем.
Прежде всего интересен вопрос, каким образом распространялся вирус?
Суббота, 5 ноября 1988 года.
18:31 RISKS Предупреждение против ссылок на "ошибки в операционной
системе UNIX". Указывается, что "вирус не использует каких-либо
ошибок в UNIX", ошибки содержит "программа пересылки Sendmail".
Первой лазейкой была утилита электронной почты Sendmail, входившая в состав инфицируемых систем. Недостаток утилиты Sendmail, позволивший Моррису обходить подсистему безопасности вычислительной системы атакуемого узла сети, имеет, если можно так выразиться, классический характер и относится к такому довольно часто встречающемуся явлению в программировании как "люки".
По большому счету люк - это не описанная в документации на программный продукт возможность работы с этим программным продуктом. Люки чаще всего являются результатом забывчивости разработчиков: в процессе разработки программы разработчики часто создают временные механизмы, облегчающие ведение отладки за счет прямого доступа к отлаживаемым частям продукта. Например, для начала работы с продуктом требуется выполнить некоторую последовательность действий, предусмотренных алгоритмом - ввести пароль, установить значения некоторых переменных и т.п. При нормальной работе продукта эти действия имеют определенный смысл, но во время отладки, когда разработчику необходимо тестировать некоторые внутренние части программы и волей-неволей приходится выполнять ту же операцию входа добрый десяток - а то и более - раз на дню, безобидные в общем-то правила, затрудняющие тем не менее доступ к отлаживаемым частям, начинают не на шутку раздражать. Что делает программист? Правильно: в течение получаса он программирует некоторый дополнительный механизм, не предусмотренный изначальным алгоритмом программы, но позволяющий не выполнять надоевших действий или выполнять их автоматически например, при нажатии определенной клавиши (группы клавиш) или при вводе определенной последовательности символов. Все - люк готов!
[D2] Такая избирательность вируса послужила причиной того, что ряд экспертов высказали мысль, что инцидент, связанный с вирусом Морриса, вполне мог быть тщательно подготовленной акцией корпорации IBM по подрыву позиций своих конкурентов.
стр. 22
Если сравнивать с промышленным производством, то люк - это технологическое отверстие, не имеющее никакого отношения к основному предназначению изготовляемого изделия, но значительно облегчающее процесс производства.
По окончании отладки большинство люков убирается из программы; но люди есть люди - зачастую они забывают о существовании каких-то мелких "лючков".
Автор программы Sendmail, Эрик Олмен (Eric Allman) тоже создал в своей программе "черный ход". [D5] Вообще программа Sendmail была весьма сложной и могла работать в нескольких режимах, что позволяло решать весьма сложные задачи распределенной обработки данных. Один из режимов предполагал работу утилиты в виде демона - фонового процесса: при этом программа постоянно опрашивала порт TCP на предмет обнаружения попыток передачи сообщений с использованием подпротокола SMTP. При обнаружении такой попытки демон устанавливал связь с удаленным абонентом и принимал адрес отправителя, адрес получателя, инструкции по обработке сообщения и собственно сообщение. Так вот, червь в качестве инструкций обработки посылал команду DEBUG, а вместо адреса получателя передавал набор команд. При нормальной работе такого делать нельзя, однако такая возможность в режиме отладки существовала, поскольку при этом можно было удостовериться в срабатывании почты, не указывая дальнейшую программу обработки, что, как вы понимаете, значительно облегчило Олмену отладку Sendmail. Однако эта возможность продолжала весьма активно использоваться и другими пользователями, поскольку этот метод позволял избежать сложной процедуры конфигурации утилиты Sendmail для выполнения частных задач.