участники вашей группы будут счастливы и в безопасности. Но еще более
важно то, что в подобном кодексе, которому вы следуете, присутствует ка-
кая-то необъяснимая скрытая ценность. Вам кажется, что я читаю вам про-
поведи? Ну что ж, я не стану спорить. Вот мой Кодекс Чести Хакера. Здесь
мои принципы, касающиеся компьютеров и хакерства, которым я стараюсь
следовать.
мой кодекс: чести
Компьютеры дали возможность каждому получать огромные количества ин-
формации быстрее и дешевле, чем когда-либо прежде. Свободное распростра-
нение информации является благом, но лишь постольку, поскольку не ущем-
ляет прав человека. Существует два вида прав человека-права отдельной
личности и права человечества в целом. Человечество должно иметь возмож-
ность виртуального доступа к любой информации, и эта информация должна
использоваться в моральных целях.
Люди должны знать то, что они хотят знать, и нельзя скрывать от них
информацию. Новые идеи должны публиковаться и обсуждаться. Знания должны
доходить до людей. Технологии должны использоваться на благо людей, но
не ради наживы и не в политических целях. Каждый человек должен иметь
право на то, чтобы связанная с ним информация не использовалась во вред
ему. Люди должны иметь право знать, если их личная информация внесена в
базу данных, знать о том, кому и когда она отдается или продается. Они
должны иметь право следить за тем, каким образом используется эта инфор-
мация. Человек должен иметь право проверять информацию о самом себе, ес-
ли она занесена в компьютерный файл или базу данных, и в этом ему не
должны чиниться препятствия. Он должен иметь право беспрепятственно исп-
равлять неточности в этих данных, и убирать оскорбительную для себя ин-
формацию. Аюди должны иметь гарантию, что те, кто создает и обслуживает
базы данных, будут своевременно предоставлять им эти права.
Так должно быть, и в некоторых ситуациях эти права действительно име-
ют силу. Но большинство этих прав почти единодушно игнорируется. Значит,
взломы необходимы.
Хакерство позволяет использовать компьютеры в соответствии с вышепе-
речисленными идеалами. Хакеры обладают идеалами относительно всех людей
и всего человечества в целом, и у меня есть набор таких идеалов, которые
лично я использую. Вот главные из них: Никогда и никаким образом не на-
носи вред ни компьютеру, ни программному обеспечению, ни системе, ни че-
ловеку, ничего не изменяй и не уничтожай. Если вред все же был нанесен,
сделай все, что в твоих силах, чтобы исправить содеянное, и предотвра-
тить подобное в будущем. Не позволяй ни себе, ни другим откровенно нажи-
ваться на взломах. Сообщай компьютерным менеджерам о наличии прорех в
защите их компьютеров. Учи других, если тебя просят об этом, делись зна-
ниями, если тебе есть чем делиться. Это не необходимость, но простая
вежливость. Помни о своей уязвимости во всем, что касается компьютеров,
включая секреты, которые тебе удалось узнать с помощью взломов. Будь ос-
торожен. Проявляй настойчивость, но не делай глупостей и не рискуй по-
напрасну.
Я не хочу сказать, что следование этим принципам делает мои занятия
хакерством моральными или правомочными. Но я также не считаю, что мое
хакерство аморально. И я не стану выслушивать ничьих возражений по этому
поводу. Мы-то знаем, что законно, а что - нет. Я собираюсь заниматься
хакерством вне зависимости от того, насколько моральным я его считаю. И
если у вас возникнет вопрос типа "Неужели вы действительно думаете, что
этот ваш кодекс чести может оправдать что-нибудь вроде "вынюхивания"?",
значит, у вас в крови нет хакерства.
комбинирование принципов
В данной книге я попытался предложить основные указания по различным
темам, которые подготовят вас к любой, связанной с компьютерами, ситуа-
ции, в которой вы можете оказаться.
Когда речь заходит о понятии "хакерства", невозможно говорить о ка-
кой-то определенной последовательности шагов, которые следует предприни-
мать для достижения своих целей. Надо, скорее, выбрать основные идеи,
дополнять их по мере необходимости, и взламывать до тех пор, пока что-то
не выйдет. Зная, что вас ожидает, вы будете знать, как реагировать на
очередное изменение, - и ваши хакерские способности только увеличатся. Я
хочу рассказать вам еще одну, последнюю, историю. Она демонстрирует мно-
гое из того, о чем вы прочли в книге: исследования, копание в мусоре,
подглядывание через плечо, упорство и логические рассуждения, програм-
мистские методы и методы грубой силы, общие знания о компьютерах, прос-
тую и обратную социальную инженерию, анализ экранов и модели систем. Эта
история показывает, как все это вместе работает на конечный результат -
удачный взлом.
"команда тигров" в моем лице
Недавно мне представилась возможность показать себя в хакерстве,
взламывая только что установленную компьютерную систему специализирован-
ной библиотеки. Директор библиотеки был в курсе дела, поскольку они не-
давно обратились к этой новой системе, которая, в отличие от предыдущих,
давала возможность получения коммутируемого доступа с внешних линий. Ди-
ректор захотел узнать, возможно ли, находясь в режиме поиска, проникнуть
в запретные зоны, имеющие дело с штрафами за просроченные книги, именами
и адресами клиентов и можно ли вообще выйти из библиотечной программы в
ОС? И многое-многое другое. Я сообщил ему, что буду счастлив разобраться
с этой проблемой. Он предложил дать мне один из номеров для соединения с
системой, но я отказался. Ведь я - хакер! (На самом деле я просто хотел
произвести на него впечатление - я уже знал этот номер, когда он де-
монстрировал мне работу общедоступной части системы.)
Я вызвал систему из дома и изучил ее вдоль и поперек. Это была систе-
ма, работавшая по командам. На экране я смог выбрать функцию, вводя та-
кие команды, как CAT для поиска библиотечного каталога, и HOL, чтобы по-
мечать пункты. Правильно завершать сеанс работы следовало с помошыо ко-
манды END. Я попробовал вводить другие, не указанные, команды. Очень
часто бывает так, что часть системы является открытой, а часть -секрет-
ной. Почти всегда общедоступная часть располагает по крайней мере одной
секретной командой для входа в закрытую часть. Итак, я использовал мно-
жество ключевых слов: EXIT, BYE, LATER и т. д. Я видел, что некоторые из
них используются в действующих прикладных программах. Так, команда LEAVE
открывала доступ в специальную область для кураторов и сотрудников му-
зея. Но ни одна из испробованных мною команд не сработала. Так как сис-
тема была новой и не устоявшейся, я не сомневался, что в ней должна быть
куча ошибок, которые я смогу обнаружить. В разговоре с директором он
упомянул о том, что определенные функциональные клавиши на терминалах
еще не установлены, и их нажатие означает провал в непонятную программ-
ную оболочку. Ага! Вот это-то мне и надо! Но, если вы вызываете систему
по телефонной линии, вы не сможете добраться до функциональных клавиш. Я
думал, что, возможно, функциональные клавиши являлись макросами команд,
которые пользователь так или иначе должен вводить вручную, но я не знал
этих команд.
Под покровом ночи я извлекал содержимое находящихся возле здания му-
сорных контейнеров в поисках полезной информации, и наконец нашел
кое-что - ужасно изорванную брошюрку - документацию по интересующей меня
системе. Лома я увидел, что среди перечисленных в карточке вешей были и
имена команд, присвоенных функциональным клавишам. Одну-две из них можно
было прочесть, остальные же прочесть не удалось. Но и двух было доста-
точно. Мне сразу стало ясно, что я исходил из неверных предпосылок - не
ВСЕ команды представляли собой стандартные слова английского языка или
аббревиатуры. Присутствовали и двузначные команды, и точечные. Вводя то-
чечную команду, вы набираете сперва точку, а вслед за ней - буквен-
но-иифровую команду. Они часто используются в прикладных программах,
когда непосредственный ввод буквенно-цифровой команды может быть истол-
кован как ввод данных. В программах часто используется точка перед ко-
мандами, поскольку точка - простой, неприметный символ, который очень
просто набрать. Но иногда в "точечных" командах используются и другие
символы - слеш, апостроф и т. п. Из карточки я узнал, нажатие клавиши F1
соответствует команде .QUIT, a F2 - команде .HELP. Это показалось много-
обещающим - .QUIT могла давать доступ к закрытым областям, а помощи,
скорее всего, вообще пока нет, так как система только что установлена.
Возможно, эта функция
и ведет к остановке системы. Я вызывал компьютер по внешней линии, а
через модем нажатие функциональных клавиш передать невозможно; так что
мне оставалось надеяться на .QUIT и .HELP. Конечно, я уже пытался их
вводить, но без точки. Может быть, теперь... Нет! Ничего! Команда .QUIT
просто отсоединила меня от компьютера. В ответ на .HELP экран очистился,
и на нем появилось следующее:
*EOF\txt\hlp\helpOOO* Я предположил, что это означало End Of File
helpOOO в директории \txt\hlp, то есть файл существовал, но был пустым.
Я тут же обрадовался - теперь я знаю о директориях текстовых файлов и
файлов помощи. И я заметил еще кое-что:
каждый раз при смене экрана вверху появлялось нечто вроде:
*** J. Smith Co Special Library On-Line ***
(000)U,SYSv55.6 Три цифры в скобках изменялись в соответствии с тем,
какую часть программы я использовал. Три нуля, возможно, означали откры-
тый экран, где я пытался набирать не указанные в списке команды. Если я
наберу команду .HELP вместе с номером экрана, допустим, (013), значит,
решил я, система начнет искать файл "\txt\hlp\help013". Так и случилось.
Аля ввода эта система использовала, в том числе, и команды, сопровождаю-
щиеся номером. Мне стало интересно, подходит ли такой формат и для ко-
манд помощи. Я попробовал ввести "HELP99999", надеясь, что такое большое
число система просто не проглотит - ведь, такого экрана просто не может
быть. В ответ я получил сообщение о неверной команде. Я попробовал дру-
гие варианты, но они тоже не сработали. Наконец, я снова набрал
"HELP99999", и на этот раз команда подействовала! Наверно, в первый раз
я сделал ошибку. Теперь система полетела, и я оказался в отладочной сре-
де программы. Это было нечто вроде мини-системы для редактирования текс-
товых и командных файлов. Я не нашел в ней ничего ценного, кроме копи-
райта с первыми буквами названия компании, выпустившей программу. Я
просмотрел несколько каталогов компаний по производству программного
обеспечения, пытаясь расшифровать аббревиатуру, и наконец мне это уда-
лось. Позвонив туда, я выяснил, что именно они написали интересующую ме-
ня программу. Я попросил прислать мне запасную документацию к пакету.
Конечно, сказали они, просто вышлите нам серийный номер своей программы,
и они вышлют мне книгу за соответствующую плату. Я попытался схитрить,
но не тут-то было: секретарша сообщила, что серийный номер можно найти
на ярлыке инсталляционных дискет. "У меня сейчас нет дискет... Я звоню
из машины. Я уверен, что высылал свою карточку, может, вы проверите? Ме-
ня зовут Ажонатан Смит из ..." Я молил бога, чтобы настоящий J. Smith
посылал им свою карточку. Но - нет. Мне пришлось сказать, что я перезво-
ню на следующий день. Я решил, что в библиотеке компании должна быть эта
документация, но не мог же я там появиться и попросить директора дать
мне ее на время. Я должен был действовать как независимый хакер. Пришло
время серьезно заняться социальной инженерией. Директор для этой цели не
годится - он знает мой голос. Все, что мне было надо, - это серийный но-
мер. Я позвонил секретарше библиотеки и сказал, что я - программист из
компании, которая установила им новую компьютерную систему, и хотел бы