Хакеры (takedown) - Джон Маркоф
Шрифт:
Интервал:
Закладка:
По мнению Роберта, это был абсолютно безобидный способ испытать защиту сети. Что-нибудь в этом духе мог бы в свое время выдумать его отец, чтобы заслужить уважение коллег. Роберту явно не пришло в голову, что компьютерный террорист с помощью подобной программы может подорвать всю международную компьютерную сеть.
В занятиях наступил перерыв, и Роберт вместе с Даусоном Дином поехал в Кембридж. Дэвид Хендлер был в Европе, и большую часть времени Роберт провел с Полом Грехемом. Энди Саддат присоединился к ним после того, как закончились соревнования по гребле, в которых он принимал участие. Все было как в старые добрые времена. Роберт прилип к одной из рабочих станций. Пол сидел этажом ниже в кабинете Дэвида Мумфорда, видного гарвардского математика, чьим кабинетом Пол частенько пользовался в отсутствие хозяина. Рано вечером в субботу Роберт ворвался в кабинет Мумфорда, и по его фирменной ухмылочке Пол понял – что-то наклевывается. Роберт забегал по кабинету как одержимый. Он объявил, что, читая исходный код UNIX, он обнаружил, здоровую дыру в ftp, программе передачи файлов, позволяющих пользователям копировать файлы с машины на машину по компьютерной сети. Дыра дает возможность прочесть или написать файл на сервере. По степени возбуждения Роберта Пол понял, что тот только что обнаружил эту дыру и его распирает от желания поделиться с кем-нибудь. Робертова беготня по тесному офису достигла апогея. Наткнувшись на стол. Мумфорда, Роберт, вместо того чтобы развернуться, вскочил прямо на стол.
– rtm! Ты на мумфордовском столе! – заорал Пол, увидев, как его друг своими кроссовками топчет лежащие на столе бумаги.
– Ox, – ответил Роберт и спустился на пол.
Сперва Пол не мог понять в чем дело. Еще один способ взломать UNIX?
– Ну, славная дырочка, но из-за чего столько шума? – спросил он.
– Я смогу ее использовать и написать вирус, – и Роберт рассказал, что почти все каникулы только и думал о создании вируса, который мог бы медленно распространяться по Internet. Вирус, как его описал Роберт, должен был не принести никакого вреда и, конечно же, не уничтожать информацию. Собственно говоря, он вообще ничего не должен был делать, только попасть на как можно большее количество машин.
Пол моментально загорелся. Весь семестр он шпынял Роберта, чтобы тот обзавелся друзьями в Корнелле и побольше вращался в обществе, но услышав, что подобные начинания были отложены ради чего-то настолько интригующего, как этот компьютерный вирус, пришел в восторг.
– Это действительно великолепно! – Пол загорелся так же быстро, как и Роберт. – Ты сможешь это использовать в своей диссертации!
Пол был, на свой манер, идеальным другом. Если чья-то идея его захватывала, он своим энтузиазмом не давал автору идеи никаких шансов забросить ее. Тем более если этим человеком был его друг и образец для подражания Роберт Моррис. Пол один стоил целой группы поддержки.
Когда Роберт начал рассказывать о вирусе, который он задумал, энтузиазм Пола заработал на третьей скорости, что не могло не повлиять даже на такого обычно спокойного и тихого человека, как Роберт. Расскажи он об этом кому-нибудь еще, например Нику, Энди или Дэвиду, реакция могла бы оказаться менее восторженной. Они наверняка убедили бы его сначала протестировать вирус, возможно, запустив его в локальной сети, отключенной от Internet. Если вирус содержит ошибку, подобные меры предосторожности воспрепятствуют его воздействию на всю сеть. Но «эксперимент в пробирке» был бы неинтересным и менее продуктивным в научном смысле. Роберт хотел большего доказательного пространства.
Пол и Роберт отправились на встречу с Энди, чтобы вместе поужинать в ресторане напротив MIT. Поджидая Энди на улице, они опять вернулись к теме вируса. Ни тот, ни другой до сих пор не слышали о чем-либо подобном, так что подойти к этому делу следовало творчески. Обоим казалось, что это тот самый «великий хак», о котором часто мечтали в компьютерном мире. Роберт начал размышлять вслух, описывая кое-какие наиболее существенные качества, что потребуются такой программе. Конечно, во-первых, она должна распространиться по сети, тайно заселив множество машин, и тут главное– сделать вирус как можно неприметнее, чтобы он не вызывал подозрения у системных администраторов. Как только вирус заселится, ему потребуются средства для определения наличия другой копии в машине. И он должен быть саморегулирующимся, чтобы ограничить число копий в каждом компьютере. Но все еще оставался неразрешенным трудный вопрос: как ограничить рост, не остановив его при этом полностью?
Роберт вкратце набросал свой план. Этот вирус проникает в компьютер через обнаруженные в UNIX дыры и просматривает систему на предмет других своих копий. Если таковая отыщется, то они «беседуют» друг с другом и решают, что делать. В идеале одна должна автоматически уничтожиться, чтобы ограничить рост вируса. Но что, если кто-то обнаружит вирус и постарается обмануть его, заставив поверить, что копия уже имеется? Программист может создать имитатор, который одурачит пришельца. Такая программа, очень легкая в написании, может воспрепятствовать распространению вируса, сыграв роль биологической вакцины. Продумывая ходы как шахматисты, Роберт и Пол решили, что необходимы контрмеры против потенциальных защитных программ. Как им провести системщиков? Рандомизацией, конечно! Оба прослушали курс лекций по эффективным алгоритмам, который читал Майкл Рабин, блестящий математик и криптолог. Теория случайных чисел была коньком Рабина, и он не уставал повторять студентам, что если задача кажется неразрешимой, надо свести ее к более простой и применить рандомизацию (эта идеология лежала в основе вероятностной программы поиска опечаток, придуманной Бобом Моррисом). Рабин говорил о рандомизации в применении к абстрактным задачам, таким, как поиск простых чисел, но Роберт и Под решили, что смогут использовать этот принцип в программе-вирусе. Когда вирус встретится со своей копией, они бросят электронную монетку, чтобы решить, кому из них прекратить прогон. Еще один способ гарантировать выживание вируса пришел в голову Роберту. В одном случае из N вирус, проникнув в компьютер, должен забыть про электронный жребий и просто скомандовать себе никогда не останавливаться. Но тут возникал новый вопрос: чему должно равняться N – 5? 1000? 10000? Только они начали это обдумывать, как появился Энди. Энди был близким другом, но то, что он работал системным администратором, поставило бы его в неловкое, если не сказать больше, положение, окажись он внезапно участником обсуждения громадных дыр в защите UNIX. Энди решил, что с его появлением беседа оборвалась, потому что друзья говорили о женщине, интересовавшей и Энди, и Роберта.
(adsbygoogle = window.adsbygoogle || []).push({});