Путаница была невероятная. Время от времени Мак-Магон садился и начинал думать о том, кто мог создать этого червя, который выглядел так, словно его запустили раньше, чем закончили. Его автор (или авторы) производил впечатление человека, богатого плодотворными идеями о том, как решать проблемы, но не доводящего дело до ума. Червь содержал программу совершенствования стратегии штурма, но она не была завершена. Код червя не имел удовлетворительной процедуры отслеживания ошибок, чтобы обеспечить его выживание в течение длительного времени. Кроме того, червь не отправлял адреса успешно взломанных учетных записей в свой почтовый ящик вместе с их паролями и именами. Какой толк в пароле и названии учетной записи, если неизвестно, какая компьютерная система их использует?
С другой стороны, возможно, что создатель червя сделал это умышленно. Например, чтобы показать всему миру, в какое количество компьютеров может успешно проникнуть его червь.
Его программа, отсылавшая собранные данные, сделала это. А если бы она содержала адреса зараженных сайтов, это облегчило бы работу администраторов. Они смогли бы использовать коллекцию GEMPAK как список подлежащих дезинфекции сайтов. Впрочем, предположения можно было строить до бесконечности.
Местами программа червя была просто блестящей, некоторые решения впечатляли, поскольку никогда не приходили в голову Мак-Магону с тех пор, как он стал интересоваться способами взлома компьютеров VMS. Это была серьезная творческая работа, но в ней отсутствовала какая-либо логика. После нападения червя некоторые эксперты по компьютерной безопасности решили, что он написан не одним человеком. Но Мак-Магон отстаивал свою точку зрения, по-прежнему считая, что это работа одного-единственного хакера.
Было похоже на то, что создатель червя начинал развивать какую-то мысль, а затем отвлекался. Внезапно он просто переставал писать код, необходимый для того, чтобы закончить мысль, и направлялся по другой тропинке, снова не дойдя до конца. У его создания была шизофреническая структура. Все было не на своем месте.
Мак-Магон подумал, не было ли это сделано намеренно, чтобы замаскировать то, на что способен червь. Возможно, подумал он, изначально код был упорядочен, последователен и все в нем имело смысл. Затем автор порубил его на куски, переместил середину в начало, начало в конец, перемешал остатки и связал их с набором команд передачи управления. Вполне вероятно, что хакер, написавший червя, был очень элегантным DCL-программистом, который решил сделать червя хаотичным, чтобы защитить его. Безопасность через скрытность.
Оберман придерживался другого мнения. Он считал, что стиль программирования так варьируется в разных частях червя, потому что это продукт деятельности многих людей. Он знал, что когда программисты пишут код, они не делают так много мелких отклонений от стиля без особых на то причин.
Кевин Оберман и Джон Мак-Магон перебрасывались идеями и продолжали собственные исследования червя. Оберман привлек к процессу перекрестной проверки Марка Калетку [Mark Kaletka], который управлял внутренними сетями в Лаборатории имени Ферми, одном из самых больших сайтов HEPNET. У червя было много уязвимых мест, но требовалось как можно скорее найти одно, которое могло быть использовано для его уничтожения с минимальными потерями для осажденных компьютеров. Как только машина VMS начинает процесс, она присваивает ему уникальное имя. Когда червь проползал на компьютерный сайт, он первым делом убеждался, что там нет его собственной копии. Он делал это, сличая названия процессов со своими, которые все именовались NETW_ плюс случайный набор из четырех цифр. Если червь-пришелец обнаруживал такое имя, он соображал, что другая его копия уже роется в компьютере, и самоуничтожался.
Похоже, оставалось сделать ловушку – написать программу, которая сможет выдавать себя за червя, а затем установить ее на всех уязвимых компьютерах NASA. Первая анти-WANK программа работала именно так. Притаившись в компьютерах SPAN, она притворялась процессом NETW_ и тем самым уничтожала любую настоящую версию червя WANK, которая могла пробраться внутрь.
Оберман первым закончил анти-WANK программу и поделился ею с Мак-Магоном. Она отлично работала, но Мак-Магон заметил одно серьезное упущение. Программа Обермана делала проверку на предмет наличия процессов с именем NETW_, но при этом предполагала, что червь действует в группе SYSTEM. В большинстве случаев так и было, но не всегда. Если червь находился в другой группе, программа Обермана становилась бесполезной. Когда Мак-Магон указал на ошибку, Оберман подумал: «Боже, как я мог такое пропустить?»
Мак-Магон работал над своей версией анти-WANK программы на базе программы Обермана, готовясь запустить ее в NASA.
В то же время Оберман пересмотрел свой вариант программы для Министерства энергетики. К вечеру понедельника (по восточному стандартному времени[p21]) Оберман был готов разослать исправленную копию вакцины, созданную для защиты еще не зараженных компьютеров, и приложил к ней электронную инструкцию о том, как действовать против червя. Его первая электронная инструкция, распространенная CIAC, в частности, гласила:
КОНСУЛЬТАТИВНАЯ СЛУЖБА ПО КОМПЬЮТЕРНЫМ ИНЦИДЕНТАМ (CIAC) ПРЕДУПРЕЖДЕНИЕ
Червь W.COM Worm, поражающий системы VAX VMS
16 октября 1989, 18:38 PST[p22] Номер А-2
Этого червя трудно уничтожить, и он может причинить большие разрушения. С того момента, как он уведомляет (по почте) о каждом из успешных захватов и оставляет лазейку (учетная запись FIELD), его недостаточно просто убить. Вам нужно войти в систему и убедиться, что все учетные записи имеют пароли, и эти пароли отличны от названий учетных записей.
Р. Кевин Оберман
Предупреждение
Червь атакует принадлежащую NASA сеть SPAN через системы VAX/VMS, подключенные к DECnet. He совсем понятно, ограничено ли распространение червя. Он может внедриться в другие системы, такие как HEPNET Министерства энергетики, в течение нескольких дней. Системные менеджеры VMS должны быть готовы к этому.
Червь поражает машины VMS и может распространяться только посредством DECnet. Для воспроизведения самого себя червь использует два свойства машин DECnet/VMS. Во-первых, это учетная запись DECnet по умолчанию, которая дает возможность пользователям, не имеющим специальных идентификационных логинов для машин, добиться некоторого уровня анонимного доступа. Червь использует учетную запись DECnet по умолчанию для самокопирования в машине, а затем использует функцию «TASK О» DECnet для запуска удаленной копии. Он имеет несколько других функций, включая жесткую силовую атаку.
Как только червь проникает в вашу систему, он заражает файлы .СОМ и создает новые уязвимые места в системе безопасности. Есть мнение, что он попытается переслать информацию об этих слабостях. Он может также разрушить файлы, преднамеренно или непреднамеренно.
Анализ червя, представленный ниже, проведен Кевином Оберманом из Национальной лаборатории имени Лоренса Ливермора. К анализу приложена программа DCL, которая блокирует текущую версию червя. В настоящее время существуют не менее двух версий червя, но могут появиться и другие. Эта программа предоставит вам достаточно времени, чтобы залатать очевидные дыры в системе безопасности. Создается более совершенная программа DCL.
Если ваш сайт подвергнется нападению, пожалуйста, обратитесь в CIAC для получения дальнейших инструкций…
Сообщение о черве W.COM
Р. Кевин Оберман
Технический отдел
Национальная лаборатория имени Лоренса Ливермора
16 октября 1989 года.
Приводим описание работы червя W.COM, основанное на исследовании двух первых версий. Техника репликации предполагает небольшое изменение кода, на что указывает источник нападения и накапливаемая в результате самообучения червя информация.
Весь анализ был сделан в большой спешке, но я считаю, что все факты достоверны. Для начала – описание программы:
1. Программа удостоверяет, что работает в директории, к которой сам владелец имеет полный доступ (с правами чтения, записи, исполнения и удаления файлов).
2. Программа проверяет, не работает ли уже другая копия червя, для чего она ищет процесс с первыми пятью знаками NETW_. В случае его обнаружения она самоуничтожается и прекращает работу. (ПРИМЕЧАНИЕ: Быструю проверку на зараженность можно провести, поискав процесс, начинающийся с NETW_. Это можно сделать с помощью команды SHOW PROCESS.
3. Затем программа изменяет пароль по умолчанию учетной записи DECnet случайной последовательностью двенадцати или более знаков.
4. Информация о пароле, использованном для доступа в систему, отправляется пользователю GEMTOP[11] на узле SPAN 6.59. Некоторые версии могут иметь другие адреса.