Выбрать главу

[D2] Такая избирательность вируса послужила причиной того, что ряд экспертов высказали мысль, что инцидент, связанный с вирусом Морриса, вполне мог быть тщательно подготовленной акцией корпорации IBM по подрыву позиций своих конкурентов.

стр. 22

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

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

Автор программы Sendmail, Эрик Олмен (Eric Allman) тоже создал в своей программе "черный ход". [D5] Вообще программа Sendmail была весьма сложной и могла работать в нескольких режимах, что позволяло решать весьма сложные задачи распределенной обработки данных. Один из режимов предполагал работу утилиты в виде демона - фонового процесса: при этом программа постоянно опрашивала порт TCP на предмет обнаружения попыток передачи сообщений с использованием подпротокола SMTP. При обнаружении такой попытки демон устанавливал связь с удаленным абонентом и принимал адрес отправителя, адрес получателя, инструкции по обработке сообщения и собственно сообщение. Так вот, червь в качестве инструкций обработки посылал команду DEBUG, а вместо адреса получателя передавал набор команд. При нормальной работе такого делать нельзя, однако такая возможность в режиме отладки существовала, поскольку при этом можно было удостовериться в срабатывании почты, не указывая дальнейшую программу обработки, что, как вы понимаете, значительно облегчило Олмену отладку Sendmail. Однако эта возможность продолжала весьма активно использоваться и другими пользователями, поскольку этот метод позволял избежать сложной процедуры конфигурации утилиты Sendmail для выполнения частных задач.

Теперь будет понятен первый механизм распространения вируса Морриса: обосновавшись на инфицированном узле, вирус рассылал с помощью Sendmail по обнаруженным в пораженной системе адресам соседних узлов "невинное" сообщение, состоящее из 99 строк текста на языке C. Переданное сообщение - текст программы - компилировалось на узле-получателе и полученный модуль начинал работать, избежав выполнения требуемой процедуры входа в систему. Работа этого модуля заключалась в установлении контакта с сервером червя (т.е. атакующей программой-червем, работающей на уже инфицированном узле) и копировании с атакующего узла трех файлов: двух файлов объектного кода (отдельно для VAX и для Sun) и файла с упоминавшимся 99-строчным исходным текстом.

Уже упоминавшийся пользователь из университета Делавэр описал это следующим образом:

"Червь проник через Sendmail. Предполагая получение

обычного сообщения, Дэви открыл порт электронной почты и

позволил разместиться в нем сообщению, являвшемуся на самом деле

первым сегментом червя. Этот сегмент затребовал у Дэви запуска

программы (так называемой оболочки) в отладочном режиме, как

если бы законный пользователь отлаживал обычную программу."

При этом, во-первых, копирование выполнялось только в случае передачи серверу случайного числа, которое было ранее послано этим же

______________________________

[D5] Впоследствии он сказал, что создал этот "черный ход" с целью облегчения работы в системе, доступ к которой закрывал ему чрезмерно усердный администратор.

стр. 23

сервером в ходе попытки заражения. Если сервер не получал такого числа, он отсоединялся от модуля захвата, а сам модуль захвата самоуничтожался. Это должно было предотвратить "поимку" кем-либо файлов червя.