Страница:
- Как же ты мог забыть свой пароль??!
- Не знаю, он как-то вылетел у меня из головы, наверное!
- Я не могу так вот просто раскрывать подобные пароли.
- И не надо........ты можешь просто впустить меня в систему.
- Если ты действительно The Knightmare, тогда скажи мне свое НАСТОЯЩЕЕ ИМЯ! Пауза, затем:
- Неужели ты не веришь своему лучшему другу и со-оператору? Давай же.....
- Я не могу тебе поверить!!!!! Никакой ты НЕ The Knightmare... (Здесь DR dendryte намекает на неграмотность хакера; DR dendryte знал, что в моих беседах онлайн я весьма щепетильно отношусь к правописанию.) Он никогда не делает таких дурацких орфографических ошибок, и с грамматикой у него тоже все в порядке, и... (Теперь они пытаются печатать одновременно. DR dendryte дает высказаться кракеру.)
- Это просто глупость! Я тебе больше не друг! Можешь стереть меня из BBS.
- Если ты и вправду тот, за кого себя выдаешь, давай перейдем на голос!
(Это значит, что DR dendryte просит хакера выключить свой модем и поднять телефонную трубку - перейти на голос.)
- Я не могу поверить, что ты не доверяешь мне.
- ПЕРЕЙДИ НА ГОЛОС.
- У меня в комнате нет телефона..
- Как это нет!? На книжной полке рядом с тобой!
- Он сломался.
- ХА!! Ты должен был сказать: "НА КАКОЙ полке?" V тебя в комнате НЕТ книжной полки! ХА-ХАХА-ХА-ХА-А. + + +
(Щелчок.)
На следующий день, когда DR dendryte поведал мне эту историю, я сказал: "Тебе стоило сказать ему:
"The "nightmare - это Я!" То-то он смутился бы!"
Подобное самозванство может сработать, но только в том случае, если вы достаточно близко знакомы с человеком, чью роль вы собираетесь сыграть. В данном случае хакер решил при входе в систему сыграть мою роль, правильно предположив, что в полночь я не могу находиться у системного оператора дома. Возможно, хакер также предполагал, что DR dendryte в это время будет спать.
Мне сдается, что подобная уловка скорее сработает на компьютере какой-нибудь большой корпорации, где никто не знает друг друга, а сотрудники могут и не питать такой любви к своей компьютерной системе, как системные операторы - к своим.
Взлом по электронной почте
Treacherous Den BBS являлась лакомым куском для хакеров. Это была большая система, с множеством пользователей (многие из них сами были системными операторами других BBS), которая располагала десятками игр и цифровых порнографических картинок, которые можно было загрузить.
Эта система была списана с пиратской копии программного пакета одной популярной BBS, но DR dendryte так изменил его, что ему удалось официально зарегистрировать систему на свое имя. Как-то раз давний пользователь системы задал ему по телефону безобидный технический вопрос насчет BBS. DR dendryte попросил его подождать минутку у телефона, пока он поищет ответ в руководстве.
- О, вы купили его? - спросил пользователь, конечно, имея в виду программное обеспечение BBS.
- Ага, - ответствовал DR dendryte, имея в виду руководство, которое приобрел за четверть иены в букинистическом магазине.
DR dendryte ответил на вопрос, поговорил еще немного и повесил трубку. Он больше не вспоминал об этом разговоре, пока через месяц не получил по почте картонный конверт. Это был дискетный конверт с напечатанной на компьютере наклейкой обратного адреса, которая указывала, что данный адрес принадлежит компании, производящей программное обеспечение BBS. DR dendryte открыл конверт. Внутри оказалось письмо на его настоящее имя, подписанное автором программного обеспечения BBS, человеком, который также являлся основателем и владельцем компании. Письмо гласило:
Дорогой м-р А. Г.!
К... Software приняла новую политику обновления программного обеспечения. Все клиенты, приобретшие non-entertainment пакеты ао июля 1986 года, получают право на бесплатное ежегодное обновление.
Данная новая версия вашей программы полностью совместима с предыдущей. Для обновления необходимо лишь вставить прилагающуюся дискету и набрать START.
Благодарим Вас за покупку отличной продукции К... Software. Надеемся в будушем вновь увидеть Вас среди наших покупателей.
Искренне Ваш
(Подпись)
DR dendryte с первого взгляда не только понял, что это совершеннейшая липа, но и догадался, кто имел глупость послать ему такое письмо. Он сразу же сократил входной доступ того пользователя, с которым говорил тогда по телефону, до статуса однократного посетителя. Затем он написал записку ядовитого содержания и послал ему по электронной почте. Этот самый пользователь был единственным человеком, кроме меня, который знал о существовании руководства. Но я-то, разумеется, был в курсе, что DR dendryte не покупал программы, а руководство добыл иными путями. Пользователь же ошибочно решил, что, раз у системного оператора есть книга, значит, он купил BBS.
Изучив присланную по почте дискету, мы обнаружили, что она содержит восемь файлов.
Там был текстовый файл, где говорилось о "чудесных и волнующих мгновениях, которые вы испытаете, получив вашу обновленную версию L...BBS Software". Еще там был файл инструкции под названием START, повторявший содержание того текстового файла. START должен был "обновить" старую версию программы на "новую".
Еще на дискете присутствовали четыре файла, в точности совпадавшие с теми, что находились среди программного обеспечения настоящей BBS (явная попытка отвлечь наше внимание), а вот пятая программа не совсем совпадала с оригиналом! (Сравнить два файла можно с помощью команды MS-DOS "comp", или используя соответствующие возможности Нортона или другой программы типа Нортона.) Наконец, на дискете был пустой файл под названием Т, который не нес никакой смысловой нагрузки.
Нам понадобился не один час, чтобы выяснить, для чего этот пользователь запрограммировал свою "новую" версию. Программы отличались двумя моментами.. Копия файла пользовательской информацией была создана, чтобы отправляться по электронной почте пользователю при первой загрузке; также была вставлена лазейка, которая должна была дать временный доступ в операционную систему любому, кто нажмет control-E, control-X, control-1, control-T, control-! в ответ на приглашение ввести имя пользователя.
Вам не удастся проделать подобный трюк, пока вы не получите доступ к исходной программе программного обеспечения, что, видимо, удалось сделать тому пользователю (если вы не хотите потом восстанавливать по кусочкам всю электронную доску объявлений).
Вот так была отбита еще одна атака этих назойливых хакеров!
Разрушение BBS
На другой BBS, в которой я участвовал, системный оператор-каждый день, возвращаясь из школы домой, обнаруживал, что его система разрушена. Она просто зависала, и ее приходилось перезагружать. В конце концов, он узнал от кого-то, что в данной версии этой BBS имеется дефект. Комбинация "\х", напечатанная в ответ на приглашение ввести пароль, приводила к останову всей системы. Ключевые узлы программного обеспечения BBS были написаны на легко изменяемом, понятном Бейсике. Для устранения данной проблемы я просто ввел строку после приглашения, которая должна была отсоединять любого, пытавшегося набрать ужасный "\х".
Это подействовало. Я всегда удивлялся насчет этого "\х". Как там могла оказаться такая вредоносная вещь? Я не могу представить себе программиста, намеренно вставившего ее, разве что он собирался досадить нелегальным пользователям своей программы. Возможно, это была какая-то лазейка, не сработавшая должным образом. Возможно, если бы я повнимательнее изучил программу, то понял бы, что это значит.
Вполне возможно также, что дефект был вставлен в программу тем человеком, который дал оператору копию программного обеспечения, или тем, который сделал первую пиратскую копию, или еще кем-либо из этой цепочки. Пиратское программное обеспечение так быстро распространяется по стране и по всему миру, что буквально тысячи людей могли бы добавить этот дефект с "\х" и распространять программу дальше в таком виде. Эй, у вас еще не появилось никаких идей по этому поводу? У меня они уже есть!
Можно либо написать собственную программу для BBS, или изменить уже существующую, добавив некоторые секретные свойства, такие как выход в DOS, или любую другую лазейку на ваше усмотрение. Можно добавить строку, которая будет обнаруживать при вводе наиболее сложные и необычные управляющие коды и присуждать таким пользователям наивысший уровень доступа к системе.
Метод, похожий на эту тактику, - написать или изменить терминальную программу, которую вы дадите пользователю. Когда она примет внутренний код во время соединения с вашей BBS, вы получите доступ к вызывающему компьютеру. Например, вызывая вашу BBS, пользователь запускает вашу специальную терминальную программу. BBS должна послать на модем вызывавшего пользователя код, который позволит вам разгуливать по жесткому диску данного пользователя. Чтобы сделать свое присутствие незаметным, лучше всего входить во время передачи какого-нибудь длинного файла или, если скорость передачи модема невысока, в перерывах между его работой. Пока вы исследуете диски удаленного пользователя, терминальная программа может продолжать делать вид, что принимает данные.
PRODIGY, графически ориентированной интерактивной службе онлайн, летом 1991 года было предъявлено обвинение в занятиях подобными вещами. Пользователи обнаруживали свои личные данные, спрятанные внутри программного обеспечения, которое использовалось для вызова PRODIGY. После жалоб пользователей на грубое нарушение их прав главный вице-президент PRODIGY выслал оскорбленным утилиту, предназначенную для удаления несущественных данных из терминального программного обеспечения службы. В сопроводительном письме он без тени раскаяния заявлял:
Как мы уже утверждали публично и сообщали онлайн, программное обеспечение PRODIGY не считывает, не собирает, а также не перелает компании службы PRODIGY никакую информацию либо данные, не имеющие прямого отношения к вашему использованию службы. Мы хотим заверить вас, что продолжим работу над обеспечением безопасности личных данных всех наших участников.
Может, они и не делают ничего такого - но вы-то ведь можете!
Несколько лет назад группа предприимчивых хакеров распространила доморощенную терминальную программу с дефектом для компьютеров Macintosh. Программа предлагала пользователям удобную опцию, позволяющую хранить пароли и другие процедуры входа на дискете, чтобы можно было не бояться их забыть. Информация хранилась в зашифрованной форме на спрятанной части дискеты. Через несколько занесенных туда паролей и телефонных номеров программа "портилась". Хакеры надеялись, что пользователи отошлют дискеты обратно, и в результате у них окажется богатый выбор входной информации.
Но на деле все оказалось не так, как задумывалось. Это PRODIGY может отмахнуться от вопросов пользователей благодаря своему уникальному графическому интерфейсу. А пока вам не удалось разработать в своей терминальной программе нечто подобное, нечего и мечтать о том, что пользователи возьмут на себя труд инсталлировать и изучать вашу программу, в то время как они уже знакомы с одной или несколькими коммерческими пакетами. Примерно такая судьба и постигла эту группу хакеров. Вначале их терминальная программа вызвала большой интерес (они свободно распространяли ее), но ни у кого не возникло желания ее использовать. Проблема была в том, что хакеры отдали программу в руки опытных пользователей, которые уже были близко знакомы, по крайней мере, с одной коммерческой программой. Хакерский терминальный пакет никому не понадобился, и великая идея с треском провалилась.
Что касается той первой идеи - изменить BBS, включив в нее лазейки, это действительно возможно. Всегда найдутся люди, желающие установить свою BBS, или те, кто хочет приобрести новое программное обеспечение. Проблема распространения здесь имеет меньшее значение, нежели проблема программирования - особенно учитывая тот факт, что вам придется не только вставлять программу для лазейки, но и, для достижения лучших результатов, придумать способ, как спрятать эту программу от любопытных глаз.
"Троянские кони"
Для хакера обычно не составляет большого труда начинить BBS какой-либо версией программы типа "троянский конь". Хакер пишет программу, предназначенную для выполнения какой-нибудь интересной функции, например, запуска игры или вывода на экран привлекательных картинок. В программе спрятаны инструкции для прочтения файлов паролей BBS, или выполнения другой скрытой операции. Затем хакер подзагружает программу в BBS и - внимание, это важно! - надеется, что системный оператор запустит программу.
Для написания "троянского коня" вам понадобится достать копию программы BBS, чтобы точно знать, каковы будут ваши тайные инструкции. Иначе как же вы узнаете, в какие файлы следует заглядывать и в каком секторе диска находится нужная информация?
Какие действия, помимо секретных, могут выполнять "троянские кони"? Вот несколько предложений:
Можно тайно перепрограммировать саму BBS так, чтобы в ней оказалась лазейка. Если программа BBS написана на интерпретируемом языке, "троянский конь" может добавлять несколько строк, которые дадут вам операторский доступ при вводе определенного кодового слова. Именно так и произошло с популярной электронной доской объявлений Commodore 64, написанной на Бейсике.
Вы можете запрограммировать "троянскую лошадку" так, что она будет заглядывать в файл, содержащий пароли, и каким-либо образом пересылать содержащиеся в нем данные обратно к вам. Во многих BBS существует секция текстовых файлов. Можно сделать так, что ваша программа будет зашифровывать пароли, добираясь до них, а затем присоединять в конец одного из текстовых файлов. Затем вам останется только загрузиться, просмотреть файлы, взять закодированные пароли и расшифровать их. Другие люди, читая текстовые файлы в режиме онлайн, примут случайно расположенные на первый взгляд символы за помехи в линии передачи или безвредное искажение файла.
Другой способ отправить себе информацию о паролях состоит в использовании функции электронной почты BBS. Дабы избежать подозрений (системные операторы обожают читать электронную почту, которую пользователи посылают друг другу), вам следует, опять же, закодировать информацию и включить ее в какую-либо другую порцию электронной почты.
"Троянский конь" может содержать приближенную версию какой-либо ключевой части самой программы BBS. Затем "лошадка" извлекает искомый кусок и копирует его поверх легальной версии, записанной на диске.
Как скрыть деятельность "Троянских коней"
Когда вы загружаете в систему программу, содержащую "троянского коня", вам следует иметь в виду два момента: Вашу "лошадку" могут обнаружить в процессе ее работы. Ее могут обнаружить либо до, либо после прогона.
Давайте по очереди рассмотрим эти две проблемы.
Во время работы
Рациональному хакеру легче избежать этой опасности, чем злонамеренному разрушителю системы. Дело в том, что, если Юнец Джо напишет программу, которая тайно переформатирует жесткий диск, в то время как лампочки жесткого диска будут непрерывно зажигаться, на экране должно происходить нечто, способное отвлечь внимание пользователя. Юнцу Джо следует с умом соорудить некий не интерактивный "тайм-киллер", который будет развлекать пользователя на протяжении всего времени, которое понадобится для форматирования диска или для уничтожения файлов. Это может быть порнографическая картинка (возможно, дополненная цифровыми звуковыми эффектами: "О! О, детка! М-м-м..."), или цифровая музыкальная партитура; программа может также посылать графическое изображение на принтер. Между тем ваши быстродействующие "троянские кони" ("спринтеры") будут в срочном порядке делать свое дело.
Никогда не допускайте вашу программу на жесткий диск (или любое периферийное устройство), если системный оператор не сможет увидеть причины для этого. В то время как "троянский конь" будет заниматься своим делом, на экране должно быть сообщение, дезинформирующее оператора о работе программы. Например, если "лошадка" спрятана в игре, она должна посылать на экран сообщение вроде: "Сохранение вашего последнего счета...", тогда как на самом деле программа будет копаться в пользовательских файлах доступа (или делать что-то еще, на ваше усмотрение). Не забудьте о том, что попутно программа действительно обязана сохранить новое количество очков пользователя, а общее время ее работы должно быть весьма кратким. Как только "троянский конь" закончит работу, программе следует стереть с экрана сообщение; это позволит убедиться в том, что работа программы с жестким диском не вызвала подозрений. Если будет возможность, сотрите сообщение с экрана посреди работы "троянского коня", чтобы создать иллюзию очень малого времени обращения к жесткому диску.
Другой способ незаметно добраться до диска состоит в том, чтобы в начале работы программы выдать на экран нечто типа:
AutoCheck Virus Detection Program v1.3 (c)opyright 1992 Paul Bradley Ascs.
Scanning file FILENAME.1 for viruses..... Scanning file FILENAME.2 for viruses...
А тем временем "троянский конь" будет "проверять" жесткий диск компьютера на пароли!
В качестве FILENAME.1, FILENAME.2 и т. д. можно вставить имена программ и файлов данных, которые были загружены вместе с приложением. Замечательным штрихом будет не мгновенное, а постепенное появление на экране скобок (...) после каждого обращения к жесткому диску, дабы создать впечатление, что программа действительно проверяет файлы на вирусы.
"Прикрыть" деятельность "троянского коня" (в соответствующих обстоятельствах) можно также с помощью сообщений типа: открытие файла данных, чтение данных, сохранение выбора перед выходом,
Загрузка текста
Сообщения всегда должны соответствовать тому, что в действительности происходит в видимой части программы.
"Троянские кони", выполняющие функции BBS (такие, как изменение паролей), должны, если возможно, делать это путем прямого доступа к диску, не используя программу BBS. Это позволит вам обойти любые защитные протоколы и распечатки подозрительных действий.
До и после
Системные операторы, администраторы систем и даже обычные пользователи стали теперь осторожнее относиться к пересылке файлов. Они, как минимум, опасаются вирусов, и изучают программы перед тем, как их использовать, более тщательно, чем когда бы то ни было раньше.
Это означает, что они будут проверять ваши подгруженные программы на вирусы с помощью сканера. Такая проверка практически неизбежна, но бояться нечего, так как существующие программы проверки на вирусы не смогут обнаружить вашего "троянского коня" ни в одном из законных файлов. Вам следует опасаться только того, что системный оператор или менеджер станет собственноручно изучать ваши подгруженные программы в поисках нецензурных слов или ошибок.
Как и в предыдущем случае, сознательным разрушителям и системным вандалам придется труднее, чем вам. У них есть текст, который им придется прятать внутри своих программ. Например, всем известен вирус, или логическая бомба, которая вопит "GOTCHA!!" ("Попался!"), когда записывается поверх таблицы размещения файлов. Существующие программы ищут в файлах именно подобные веши. Даже если у оператора не имеется соответствующей программы, но он достаточно наблюдателен, разрушительское "GOTCHA!!" будет замечено еще до того, как программа начнет работать.
Ваших "троянских коней" не придется прятать слишком тщательно. Весь текст в ваших программах будет состоять из текста, который так или иначе будет выведен на экран: текст, либо являющийся частью прикладной программы, либо текст, который исходит из программы, а на самом деле прикрывает деятельность "троянского коня". К тому же в вашей программе не будут торчать, подобно ослиным ушам, команды типа "format с:". Таким образом, ваша работа легче, чем у кракера, хотя далеко не является пустяком.
В вашей программе могут быть команды чтения, записи или изменения хранящихся в BBS личных файлов. Системный оператор не должен обнаружить ни таких команд, ни, тем более, имен файлов. Использовать для кодирования команд и имен шифр "на одну букву выше" нежелательно, так как существуют программы, которые сканируют файл и выводят на экран содержащийся в нем удобочитаемый текст. Если вы просто замените все буквы следующими по порядку (т.е. PASS превратится в QBTT, и т. п.), в программе все равно останется текст в закодированном виде, и оператор может догадаться, что он означает. Лучше, если вы закодируете текст, используя цифры, символы или иностранные алфавиты.
Программа, в которую вы вставите "троянскую лошадку", может являться не откомпилированным исходником или пакетным файлом. В этом случае, чтобы спрятать "троянских коней", вам понадобится некоторая ловкость рук. НИКОГДА не загружайте пакетный файл просто так, в его первоначальном виде. Представьте себе состояние системного оператора, получившего от пользователя следующее:
cd BBS\USERS
open USERINFO.TXT
read USERINFO.TXT: User#44
set systemlevel 3 == systemlevel 99
close
exit
Это не настоящая программа. Я привел ее в качестве примера наглой попытки повышения уровня доступа, которая неминуемо привлечет внимание системного оператора.
Один из способов избежать этой проблемы - заставить ведущую прикладную программу создавать пакетные файлы и другие программы, которые для этого требуются. Пакетные команды запускаются как закодированная абракадабра в прикладной программе. Требуется подпрограмма, которая открывала бы текстовый файл, расшифровывала команды, наполняла ими файл, а затем делала свое дело. Создание и использование файла могут происходить в различные промежутки времени, чтобы не удлинять время нелегального доступа к диску.
В легко читаемых источниках "троянская лошадка" также не должна стоять в самом начале или в конце листинга. Засуньте ее поглубже в программу. Добавьте комментарии, способные отвлечь внимательного читателя. И помните, если ваша прикрывающая программа будет особенно умно сделанной, системному оператору может захотеться проанализировать ее, чтобы понять, как это вы добились столь выдающихся результатов! Это означает, что прикрывающая программа может оказаться объектом пристального внимания, и вашего "троянского коня" могут случайно обнаружить.
После использования "троянского коня" программа должна его уничтожить, т. е. последние несколько действий "троянского коня" должны стираться из программы.
Стереть прикладную программу, а вместе с ней и "троянского коня", может и сам системный оператор. Это может оказаться сложным - заставить системного оператора стереть все загруженные вами файлы, не вызывая никаких подозрений. Способ заключается в следующем: прикладная программа должна являться чем-то уже имеющимся у оператора, или чем-то похожим на его версию, но похуже.
Вы можете даже просто послать системному оператору письмо по электронной почте, в котором сообщите, что обнаружили в программе потенциально опасную ошибку, а "в случае, если вы решите уничтожить ее, я вышлю вам исправленную версию". Так можно поступать только в случае, если прикладная программа, которую вы послали, откомпилирована, иначе системный оператор сможет и сам устранить ошибку (уж он-то устранит!)
Встречаются операторы-параноики, которые пересылают все подгруженные файлы на другой компьютер, прежде чем запустить их. Могут также быть установлены иные, чем вы ожидали, директории, или сама BBS может загружать файлы не на жесткий диск, а на гибкий. Помните об этом, когда будете создавать свою программу, чтобы ваша "троянская лошадка" срабатывала лишь тогда, когда компьютер установлен так, как предполагалось. Таким образом, она будет запускаться, только получив доступ к файлам с паролями, или для чего вы там ее предназначите. Это необходимо также потому, что, если ваша прикладная программа окажется достаточно качественной, системный оператор сделает ее доступной для загрузки другими пользователями.
"Сделай сам": пять узелков на память
Мы с вами уже говорили о хакерских BBS. Что, если вы будете усердно искать подходящую BBS, чтобы приобретать знания и делиться информацией, но ваши поиски не увенчаются успехом? Вы можете создать собственную BBS, полностью отвечающую вашим потребностям. Раздобудьте подходящее программное обеспечение, соберите самых верных друзей - и установите собственную электронную доску объявлений! Запуск собственной системы означает, что отныне вам не придется особенно много работать на своем домашнем компьютере и использовать свою телефонную линию. Это не станет проблемой, если вы занимались исключительно хакерством, поскольку теперь ваши возможности значительно расширятся благодаря использованию лап-топов и т. п. Но вы, скорее всего, используете свой компьютер и в других целях: играете, набираете тексты, программируете, а также легально пользуетесь модемом. Не забывайте об этом, прежде чем загоритесь идеей создания собственной BBS.
Один из способов обойти данную проблему - а вместе с ней и многие другие проблемы, которые возникают при установке BBS - применить ваши хакерские способности и взломать какой-либо мэйнфрэйм, находящийся далеко от вашего дома, а затем использовать его для установки вашей электронной доски объявлений.
Где бы вы ни решили установить вашу систему, вам понадобится фальшивый фасад, чтобы система выглядела легальной, и обратная сторона, заключающая в себе закрытую область только для избранных хакеров. Приглашайте в этот круг только тех, кого вы знаете как разумных и достойных доверия хакеров, а остальную часть доски пусть использует, кто захочет.
- Не знаю, он как-то вылетел у меня из головы, наверное!
- Я не могу так вот просто раскрывать подобные пароли.
- И не надо........ты можешь просто впустить меня в систему.
- Если ты действительно The Knightmare, тогда скажи мне свое НАСТОЯЩЕЕ ИМЯ! Пауза, затем:
- Неужели ты не веришь своему лучшему другу и со-оператору? Давай же.....
- Я не могу тебе поверить!!!!! Никакой ты НЕ The Knightmare... (Здесь DR dendryte намекает на неграмотность хакера; DR dendryte знал, что в моих беседах онлайн я весьма щепетильно отношусь к правописанию.) Он никогда не делает таких дурацких орфографических ошибок, и с грамматикой у него тоже все в порядке, и... (Теперь они пытаются печатать одновременно. DR dendryte дает высказаться кракеру.)
- Это просто глупость! Я тебе больше не друг! Можешь стереть меня из BBS.
- Если ты и вправду тот, за кого себя выдаешь, давай перейдем на голос!
(Это значит, что DR dendryte просит хакера выключить свой модем и поднять телефонную трубку - перейти на голос.)
- Я не могу поверить, что ты не доверяешь мне.
- ПЕРЕЙДИ НА ГОЛОС.
- У меня в комнате нет телефона..
- Как это нет!? На книжной полке рядом с тобой!
- Он сломался.
- ХА!! Ты должен был сказать: "НА КАКОЙ полке?" V тебя в комнате НЕТ книжной полки! ХА-ХАХА-ХА-ХА-А. + + +
(Щелчок.)
На следующий день, когда DR dendryte поведал мне эту историю, я сказал: "Тебе стоило сказать ему:
"The "nightmare - это Я!" То-то он смутился бы!"
Подобное самозванство может сработать, но только в том случае, если вы достаточно близко знакомы с человеком, чью роль вы собираетесь сыграть. В данном случае хакер решил при входе в систему сыграть мою роль, правильно предположив, что в полночь я не могу находиться у системного оператора дома. Возможно, хакер также предполагал, что DR dendryte в это время будет спать.
Мне сдается, что подобная уловка скорее сработает на компьютере какой-нибудь большой корпорации, где никто не знает друг друга, а сотрудники могут и не питать такой любви к своей компьютерной системе, как системные операторы - к своим.
Взлом по электронной почте
Treacherous Den BBS являлась лакомым куском для хакеров. Это была большая система, с множеством пользователей (многие из них сами были системными операторами других BBS), которая располагала десятками игр и цифровых порнографических картинок, которые можно было загрузить.
Эта система была списана с пиратской копии программного пакета одной популярной BBS, но DR dendryte так изменил его, что ему удалось официально зарегистрировать систему на свое имя. Как-то раз давний пользователь системы задал ему по телефону безобидный технический вопрос насчет BBS. DR dendryte попросил его подождать минутку у телефона, пока он поищет ответ в руководстве.
- О, вы купили его? - спросил пользователь, конечно, имея в виду программное обеспечение BBS.
- Ага, - ответствовал DR dendryte, имея в виду руководство, которое приобрел за четверть иены в букинистическом магазине.
DR dendryte ответил на вопрос, поговорил еще немного и повесил трубку. Он больше не вспоминал об этом разговоре, пока через месяц не получил по почте картонный конверт. Это был дискетный конверт с напечатанной на компьютере наклейкой обратного адреса, которая указывала, что данный адрес принадлежит компании, производящей программное обеспечение BBS. DR dendryte открыл конверт. Внутри оказалось письмо на его настоящее имя, подписанное автором программного обеспечения BBS, человеком, который также являлся основателем и владельцем компании. Письмо гласило:
Дорогой м-р А. Г.!
К... Software приняла новую политику обновления программного обеспечения. Все клиенты, приобретшие non-entertainment пакеты ао июля 1986 года, получают право на бесплатное ежегодное обновление.
Данная новая версия вашей программы полностью совместима с предыдущей. Для обновления необходимо лишь вставить прилагающуюся дискету и набрать START.
Благодарим Вас за покупку отличной продукции К... Software. Надеемся в будушем вновь увидеть Вас среди наших покупателей.
Искренне Ваш
(Подпись)
DR dendryte с первого взгляда не только понял, что это совершеннейшая липа, но и догадался, кто имел глупость послать ему такое письмо. Он сразу же сократил входной доступ того пользователя, с которым говорил тогда по телефону, до статуса однократного посетителя. Затем он написал записку ядовитого содержания и послал ему по электронной почте. Этот самый пользователь был единственным человеком, кроме меня, который знал о существовании руководства. Но я-то, разумеется, был в курсе, что DR dendryte не покупал программы, а руководство добыл иными путями. Пользователь же ошибочно решил, что, раз у системного оператора есть книга, значит, он купил BBS.
Изучив присланную по почте дискету, мы обнаружили, что она содержит восемь файлов.
Там был текстовый файл, где говорилось о "чудесных и волнующих мгновениях, которые вы испытаете, получив вашу обновленную версию L...BBS Software". Еще там был файл инструкции под названием START, повторявший содержание того текстового файла. START должен был "обновить" старую версию программы на "новую".
Еще на дискете присутствовали четыре файла, в точности совпадавшие с теми, что находились среди программного обеспечения настоящей BBS (явная попытка отвлечь наше внимание), а вот пятая программа не совсем совпадала с оригиналом! (Сравнить два файла можно с помощью команды MS-DOS "comp", или используя соответствующие возможности Нортона или другой программы типа Нортона.) Наконец, на дискете был пустой файл под названием Т, который не нес никакой смысловой нагрузки.
Нам понадобился не один час, чтобы выяснить, для чего этот пользователь запрограммировал свою "новую" версию. Программы отличались двумя моментами.. Копия файла пользовательской информацией была создана, чтобы отправляться по электронной почте пользователю при первой загрузке; также была вставлена лазейка, которая должна была дать временный доступ в операционную систему любому, кто нажмет control-E, control-X, control-1, control-T, control-! в ответ на приглашение ввести имя пользователя.
Вам не удастся проделать подобный трюк, пока вы не получите доступ к исходной программе программного обеспечения, что, видимо, удалось сделать тому пользователю (если вы не хотите потом восстанавливать по кусочкам всю электронную доску объявлений).
Вот так была отбита еще одна атака этих назойливых хакеров!
Разрушение BBS
На другой BBS, в которой я участвовал, системный оператор-каждый день, возвращаясь из школы домой, обнаруживал, что его система разрушена. Она просто зависала, и ее приходилось перезагружать. В конце концов, он узнал от кого-то, что в данной версии этой BBS имеется дефект. Комбинация "\х", напечатанная в ответ на приглашение ввести пароль, приводила к останову всей системы. Ключевые узлы программного обеспечения BBS были написаны на легко изменяемом, понятном Бейсике. Для устранения данной проблемы я просто ввел строку после приглашения, которая должна была отсоединять любого, пытавшегося набрать ужасный "\х".
Это подействовало. Я всегда удивлялся насчет этого "\х". Как там могла оказаться такая вредоносная вещь? Я не могу представить себе программиста, намеренно вставившего ее, разве что он собирался досадить нелегальным пользователям своей программы. Возможно, это была какая-то лазейка, не сработавшая должным образом. Возможно, если бы я повнимательнее изучил программу, то понял бы, что это значит.
Вполне возможно также, что дефект был вставлен в программу тем человеком, который дал оператору копию программного обеспечения, или тем, который сделал первую пиратскую копию, или еще кем-либо из этой цепочки. Пиратское программное обеспечение так быстро распространяется по стране и по всему миру, что буквально тысячи людей могли бы добавить этот дефект с "\х" и распространять программу дальше в таком виде. Эй, у вас еще не появилось никаких идей по этому поводу? У меня они уже есть!
Можно либо написать собственную программу для BBS, или изменить уже существующую, добавив некоторые секретные свойства, такие как выход в DOS, или любую другую лазейку на ваше усмотрение. Можно добавить строку, которая будет обнаруживать при вводе наиболее сложные и необычные управляющие коды и присуждать таким пользователям наивысший уровень доступа к системе.
Метод, похожий на эту тактику, - написать или изменить терминальную программу, которую вы дадите пользователю. Когда она примет внутренний код во время соединения с вашей BBS, вы получите доступ к вызывающему компьютеру. Например, вызывая вашу BBS, пользователь запускает вашу специальную терминальную программу. BBS должна послать на модем вызывавшего пользователя код, который позволит вам разгуливать по жесткому диску данного пользователя. Чтобы сделать свое присутствие незаметным, лучше всего входить во время передачи какого-нибудь длинного файла или, если скорость передачи модема невысока, в перерывах между его работой. Пока вы исследуете диски удаленного пользователя, терминальная программа может продолжать делать вид, что принимает данные.
PRODIGY, графически ориентированной интерактивной службе онлайн, летом 1991 года было предъявлено обвинение в занятиях подобными вещами. Пользователи обнаруживали свои личные данные, спрятанные внутри программного обеспечения, которое использовалось для вызова PRODIGY. После жалоб пользователей на грубое нарушение их прав главный вице-президент PRODIGY выслал оскорбленным утилиту, предназначенную для удаления несущественных данных из терминального программного обеспечения службы. В сопроводительном письме он без тени раскаяния заявлял:
Как мы уже утверждали публично и сообщали онлайн, программное обеспечение PRODIGY не считывает, не собирает, а также не перелает компании службы PRODIGY никакую информацию либо данные, не имеющие прямого отношения к вашему использованию службы. Мы хотим заверить вас, что продолжим работу над обеспечением безопасности личных данных всех наших участников.
Может, они и не делают ничего такого - но вы-то ведь можете!
Несколько лет назад группа предприимчивых хакеров распространила доморощенную терминальную программу с дефектом для компьютеров Macintosh. Программа предлагала пользователям удобную опцию, позволяющую хранить пароли и другие процедуры входа на дискете, чтобы можно было не бояться их забыть. Информация хранилась в зашифрованной форме на спрятанной части дискеты. Через несколько занесенных туда паролей и телефонных номеров программа "портилась". Хакеры надеялись, что пользователи отошлют дискеты обратно, и в результате у них окажется богатый выбор входной информации.
Но на деле все оказалось не так, как задумывалось. Это PRODIGY может отмахнуться от вопросов пользователей благодаря своему уникальному графическому интерфейсу. А пока вам не удалось разработать в своей терминальной программе нечто подобное, нечего и мечтать о том, что пользователи возьмут на себя труд инсталлировать и изучать вашу программу, в то время как они уже знакомы с одной или несколькими коммерческими пакетами. Примерно такая судьба и постигла эту группу хакеров. Вначале их терминальная программа вызвала большой интерес (они свободно распространяли ее), но ни у кого не возникло желания ее использовать. Проблема была в том, что хакеры отдали программу в руки опытных пользователей, которые уже были близко знакомы, по крайней мере, с одной коммерческой программой. Хакерский терминальный пакет никому не понадобился, и великая идея с треском провалилась.
Что касается той первой идеи - изменить BBS, включив в нее лазейки, это действительно возможно. Всегда найдутся люди, желающие установить свою BBS, или те, кто хочет приобрести новое программное обеспечение. Проблема распространения здесь имеет меньшее значение, нежели проблема программирования - особенно учитывая тот факт, что вам придется не только вставлять программу для лазейки, но и, для достижения лучших результатов, придумать способ, как спрятать эту программу от любопытных глаз.
"Троянские кони"
Для хакера обычно не составляет большого труда начинить BBS какой-либо версией программы типа "троянский конь". Хакер пишет программу, предназначенную для выполнения какой-нибудь интересной функции, например, запуска игры или вывода на экран привлекательных картинок. В программе спрятаны инструкции для прочтения файлов паролей BBS, или выполнения другой скрытой операции. Затем хакер подзагружает программу в BBS и - внимание, это важно! - надеется, что системный оператор запустит программу.
Для написания "троянского коня" вам понадобится достать копию программы BBS, чтобы точно знать, каковы будут ваши тайные инструкции. Иначе как же вы узнаете, в какие файлы следует заглядывать и в каком секторе диска находится нужная информация?
Какие действия, помимо секретных, могут выполнять "троянские кони"? Вот несколько предложений:
Можно тайно перепрограммировать саму BBS так, чтобы в ней оказалась лазейка. Если программа BBS написана на интерпретируемом языке, "троянский конь" может добавлять несколько строк, которые дадут вам операторский доступ при вводе определенного кодового слова. Именно так и произошло с популярной электронной доской объявлений Commodore 64, написанной на Бейсике.
Вы можете запрограммировать "троянскую лошадку" так, что она будет заглядывать в файл, содержащий пароли, и каким-либо образом пересылать содержащиеся в нем данные обратно к вам. Во многих BBS существует секция текстовых файлов. Можно сделать так, что ваша программа будет зашифровывать пароли, добираясь до них, а затем присоединять в конец одного из текстовых файлов. Затем вам останется только загрузиться, просмотреть файлы, взять закодированные пароли и расшифровать их. Другие люди, читая текстовые файлы в режиме онлайн, примут случайно расположенные на первый взгляд символы за помехи в линии передачи или безвредное искажение файла.
Другой способ отправить себе информацию о паролях состоит в использовании функции электронной почты BBS. Дабы избежать подозрений (системные операторы обожают читать электронную почту, которую пользователи посылают друг другу), вам следует, опять же, закодировать информацию и включить ее в какую-либо другую порцию электронной почты.
"Троянский конь" может содержать приближенную версию какой-либо ключевой части самой программы BBS. Затем "лошадка" извлекает искомый кусок и копирует его поверх легальной версии, записанной на диске.
Как скрыть деятельность "Троянских коней"
Когда вы загружаете в систему программу, содержащую "троянского коня", вам следует иметь в виду два момента: Вашу "лошадку" могут обнаружить в процессе ее работы. Ее могут обнаружить либо до, либо после прогона.
Давайте по очереди рассмотрим эти две проблемы.
Во время работы
Рациональному хакеру легче избежать этой опасности, чем злонамеренному разрушителю системы. Дело в том, что, если Юнец Джо напишет программу, которая тайно переформатирует жесткий диск, в то время как лампочки жесткого диска будут непрерывно зажигаться, на экране должно происходить нечто, способное отвлечь внимание пользователя. Юнцу Джо следует с умом соорудить некий не интерактивный "тайм-киллер", который будет развлекать пользователя на протяжении всего времени, которое понадобится для форматирования диска или для уничтожения файлов. Это может быть порнографическая картинка (возможно, дополненная цифровыми звуковыми эффектами: "О! О, детка! М-м-м..."), или цифровая музыкальная партитура; программа может также посылать графическое изображение на принтер. Между тем ваши быстродействующие "троянские кони" ("спринтеры") будут в срочном порядке делать свое дело.
Никогда не допускайте вашу программу на жесткий диск (или любое периферийное устройство), если системный оператор не сможет увидеть причины для этого. В то время как "троянский конь" будет заниматься своим делом, на экране должно быть сообщение, дезинформирующее оператора о работе программы. Например, если "лошадка" спрятана в игре, она должна посылать на экран сообщение вроде: "Сохранение вашего последнего счета...", тогда как на самом деле программа будет копаться в пользовательских файлах доступа (или делать что-то еще, на ваше усмотрение). Не забудьте о том, что попутно программа действительно обязана сохранить новое количество очков пользователя, а общее время ее работы должно быть весьма кратким. Как только "троянский конь" закончит работу, программе следует стереть с экрана сообщение; это позволит убедиться в том, что работа программы с жестким диском не вызвала подозрений. Если будет возможность, сотрите сообщение с экрана посреди работы "троянского коня", чтобы создать иллюзию очень малого времени обращения к жесткому диску.
Другой способ незаметно добраться до диска состоит в том, чтобы в начале работы программы выдать на экран нечто типа:
AutoCheck Virus Detection Program v1.3 (c)opyright 1992 Paul Bradley Ascs.
Scanning file FILENAME.1 for viruses..... Scanning file FILENAME.2 for viruses...
А тем временем "троянский конь" будет "проверять" жесткий диск компьютера на пароли!
В качестве FILENAME.1, FILENAME.2 и т. д. можно вставить имена программ и файлов данных, которые были загружены вместе с приложением. Замечательным штрихом будет не мгновенное, а постепенное появление на экране скобок (...) после каждого обращения к жесткому диску, дабы создать впечатление, что программа действительно проверяет файлы на вирусы.
"Прикрыть" деятельность "троянского коня" (в соответствующих обстоятельствах) можно также с помощью сообщений типа: открытие файла данных, чтение данных, сохранение выбора перед выходом,
Загрузка текста
Сообщения всегда должны соответствовать тому, что в действительности происходит в видимой части программы.
"Троянские кони", выполняющие функции BBS (такие, как изменение паролей), должны, если возможно, делать это путем прямого доступа к диску, не используя программу BBS. Это позволит вам обойти любые защитные протоколы и распечатки подозрительных действий.
До и после
Системные операторы, администраторы систем и даже обычные пользователи стали теперь осторожнее относиться к пересылке файлов. Они, как минимум, опасаются вирусов, и изучают программы перед тем, как их использовать, более тщательно, чем когда бы то ни было раньше.
Это означает, что они будут проверять ваши подгруженные программы на вирусы с помощью сканера. Такая проверка практически неизбежна, но бояться нечего, так как существующие программы проверки на вирусы не смогут обнаружить вашего "троянского коня" ни в одном из законных файлов. Вам следует опасаться только того, что системный оператор или менеджер станет собственноручно изучать ваши подгруженные программы в поисках нецензурных слов или ошибок.
Как и в предыдущем случае, сознательным разрушителям и системным вандалам придется труднее, чем вам. У них есть текст, который им придется прятать внутри своих программ. Например, всем известен вирус, или логическая бомба, которая вопит "GOTCHA!!" ("Попался!"), когда записывается поверх таблицы размещения файлов. Существующие программы ищут в файлах именно подобные веши. Даже если у оператора не имеется соответствующей программы, но он достаточно наблюдателен, разрушительское "GOTCHA!!" будет замечено еще до того, как программа начнет работать.
Ваших "троянских коней" не придется прятать слишком тщательно. Весь текст в ваших программах будет состоять из текста, который так или иначе будет выведен на экран: текст, либо являющийся частью прикладной программы, либо текст, который исходит из программы, а на самом деле прикрывает деятельность "троянского коня". К тому же в вашей программе не будут торчать, подобно ослиным ушам, команды типа "format с:". Таким образом, ваша работа легче, чем у кракера, хотя далеко не является пустяком.
В вашей программе могут быть команды чтения, записи или изменения хранящихся в BBS личных файлов. Системный оператор не должен обнаружить ни таких команд, ни, тем более, имен файлов. Использовать для кодирования команд и имен шифр "на одну букву выше" нежелательно, так как существуют программы, которые сканируют файл и выводят на экран содержащийся в нем удобочитаемый текст. Если вы просто замените все буквы следующими по порядку (т.е. PASS превратится в QBTT, и т. п.), в программе все равно останется текст в закодированном виде, и оператор может догадаться, что он означает. Лучше, если вы закодируете текст, используя цифры, символы или иностранные алфавиты.
Программа, в которую вы вставите "троянскую лошадку", может являться не откомпилированным исходником или пакетным файлом. В этом случае, чтобы спрятать "троянских коней", вам понадобится некоторая ловкость рук. НИКОГДА не загружайте пакетный файл просто так, в его первоначальном виде. Представьте себе состояние системного оператора, получившего от пользователя следующее:
cd BBS\USERS
open USERINFO.TXT
read USERINFO.TXT: User#44
set systemlevel 3 == systemlevel 99
close
exit
Это не настоящая программа. Я привел ее в качестве примера наглой попытки повышения уровня доступа, которая неминуемо привлечет внимание системного оператора.
Один из способов избежать этой проблемы - заставить ведущую прикладную программу создавать пакетные файлы и другие программы, которые для этого требуются. Пакетные команды запускаются как закодированная абракадабра в прикладной программе. Требуется подпрограмма, которая открывала бы текстовый файл, расшифровывала команды, наполняла ими файл, а затем делала свое дело. Создание и использование файла могут происходить в различные промежутки времени, чтобы не удлинять время нелегального доступа к диску.
В легко читаемых источниках "троянская лошадка" также не должна стоять в самом начале или в конце листинга. Засуньте ее поглубже в программу. Добавьте комментарии, способные отвлечь внимательного читателя. И помните, если ваша прикрывающая программа будет особенно умно сделанной, системному оператору может захотеться проанализировать ее, чтобы понять, как это вы добились столь выдающихся результатов! Это означает, что прикрывающая программа может оказаться объектом пристального внимания, и вашего "троянского коня" могут случайно обнаружить.
После использования "троянского коня" программа должна его уничтожить, т. е. последние несколько действий "троянского коня" должны стираться из программы.
Стереть прикладную программу, а вместе с ней и "троянского коня", может и сам системный оператор. Это может оказаться сложным - заставить системного оператора стереть все загруженные вами файлы, не вызывая никаких подозрений. Способ заключается в следующем: прикладная программа должна являться чем-то уже имеющимся у оператора, или чем-то похожим на его версию, но похуже.
Вы можете даже просто послать системному оператору письмо по электронной почте, в котором сообщите, что обнаружили в программе потенциально опасную ошибку, а "в случае, если вы решите уничтожить ее, я вышлю вам исправленную версию". Так можно поступать только в случае, если прикладная программа, которую вы послали, откомпилирована, иначе системный оператор сможет и сам устранить ошибку (уж он-то устранит!)
Встречаются операторы-параноики, которые пересылают все подгруженные файлы на другой компьютер, прежде чем запустить их. Могут также быть установлены иные, чем вы ожидали, директории, или сама BBS может загружать файлы не на жесткий диск, а на гибкий. Помните об этом, когда будете создавать свою программу, чтобы ваша "троянская лошадка" срабатывала лишь тогда, когда компьютер установлен так, как предполагалось. Таким образом, она будет запускаться, только получив доступ к файлам с паролями, или для чего вы там ее предназначите. Это необходимо также потому, что, если ваша прикладная программа окажется достаточно качественной, системный оператор сделает ее доступной для загрузки другими пользователями.
"Сделай сам": пять узелков на память
Мы с вами уже говорили о хакерских BBS. Что, если вы будете усердно искать подходящую BBS, чтобы приобретать знания и делиться информацией, но ваши поиски не увенчаются успехом? Вы можете создать собственную BBS, полностью отвечающую вашим потребностям. Раздобудьте подходящее программное обеспечение, соберите самых верных друзей - и установите собственную электронную доску объявлений! Запуск собственной системы означает, что отныне вам не придется особенно много работать на своем домашнем компьютере и использовать свою телефонную линию. Это не станет проблемой, если вы занимались исключительно хакерством, поскольку теперь ваши возможности значительно расширятся благодаря использованию лап-топов и т. п. Но вы, скорее всего, используете свой компьютер и в других целях: играете, набираете тексты, программируете, а также легально пользуетесь модемом. Не забывайте об этом, прежде чем загоритесь идеей создания собственной BBS.
Один из способов обойти данную проблему - а вместе с ней и многие другие проблемы, которые возникают при установке BBS - применить ваши хакерские способности и взломать какой-либо мэйнфрэйм, находящийся далеко от вашего дома, а затем использовать его для установки вашей электронной доски объявлений.
Где бы вы ни решили установить вашу систему, вам понадобится фальшивый фасад, чтобы система выглядела легальной, и обратная сторона, заключающая в себе закрытую область только для избранных хакеров. Приглашайте в этот круг только тех, кого вы знаете как разумных и достойных доверия хакеров, а остальную часть доски пусть использует, кто захочет.