подходящую управляющую последовательность для выполнения разных гнуснос-
тей, вроде отправки к вам конфиденциальных документов и т. п.
Хакер может использовать в своих целях не только электронную почту и
команду TALK, но и любую другую команду, которая позволяет взаимо-
действовать с другим терминалом. Если вам попадется команда, дозволяющая
такое взаимодействие, изучите ее внимательно, чтобы посмотреть, как мож-
но ее применить.
Просмотрите также программы - нельзя ли с их помощью связаться с дру-
гими директориями на вашей собственной машине. Текстовый редактор
GNU-EMACS, используемый в UNIX, позволяет переслать файл, с которым вы
работаете, в директорию другого пользователя. Если вы назвали свой файл
o.loginn(2), то, когда бы ни загрузился тот пользователь, будет запус-
каться этот резервный файл. Если этот файл включает в себя передачу по
электронной почте в ваш бюджет секретных данных того пользователя - тем
лучше для вас.
шифрование и дешифровка
Возвращаясь к старым уловкам: атака с помощью перебора может дать вам
возможность дешифровать файлы с паролями, когда и как вам будет угодно.
Даже если у вас бюджет с низким уровнем доступа, вы сможете скопировать
зашифрованный файл с взломанной вами машины на более безопасный носи-
тель. Во всяком случае, вам удастся хотя бы просмотреть содержание пусть
даже закодированного файла с паролями.
После этого откомпилируйте копию зашифрованной программы, изменив ее
таким образом, чтобы она читалась в терминах специально подготовленного
словаря, используйте словарь в качестве ключа, а результат распечатайте.
Листинги исходных программ UNIX доступны для любого вида ОС. Даже если
вы не можете найти дешифратор, который использовался компьютером для
шифрования скопированного вами файла, вы всегда можете заглянуть в руко-
водство, найти там алгоритм искомого шифра, и самостоятельно написать по
нему программу. Метод перебора в случае с ключами к зашифрованным файлам
с паролями действует гораздо эффективнее, чем атака самих паролей для
входа в систему. Вскоре вы наверняка найдете ключ для расшифровки, и
станете обладателем пароля привилегированного пользователя!
Атака с помощью перебора не всегда является необходимостью. Говорят о
существовании известной инверсии шифровального алгоритма, использующего-
ся в некоторых ОС, включая старые версии VMS. К сожалению, сам я не
знаю, в чем заключается данный метод инверсии, но я знаю, что существуют
способы алгоритмического обратного преобразования команды "crypt" в
UNIX. Эта команда использует шифровальный алгоритм World War II Enigma,
который был превосходен для своего времени, но не представляет собой за-
гадки для современных суперкомпьютеров. Конечно, для расшифровки вам все
же потребуется какое-то время, но она не затруднит ваш компьютер, если у
него достаточно "лошадиных сил".
Впрочем, команда шифрования не очень широко используется из-за своей
общеизвестной уязвимости. В основном "crypt" избегают по сентиментальным
причинам. Шифр, наиболее часто использующийся для кодирования паролей,
является версией государственного стандарта шифрования данных (Data
Encryption Standart - DES). Вариант DES в UNIX не подходит для атаки с
помощью перебора из-за невероятно сложных шифровальных ключей. Каким же
образом версия в UNIX защищена от атак методом перебора?
Как известно, файлы паролей в UNIX доступны для чтения, копирования и
печати, но сами пароли хранятся в зашифрованной форме. Однако это не
совсем так: на самом деле файл паролей ВООБЩЕ не содержит никаких паро-
лей. Когда новый пользователь входит в систему и вводит пароль, UNIX ис-
пользует первые восемь символов этого пароля в качестве шифровального
ключа для кодирования некоей константы (например, большого случайного
числа).
Еще одна причина, по которой DES был избран для шифрования паролей,
заключается в следующем: когда такой алгоритм используется в программном
варианте, он действует медленно. А значит, атака с помощью метода пере-
бора займет больше времени.
Говоря об этой теме, необходимо заметить, что стандарт шифрования
данных может быть и не настолько безопасным, как некогда считалось. Ос-
новой DES стала система безопасности под названием "Аю-иифер", разрабо-
танная IBM в 1973 году для Национального бюро стандартов. Прежде чем DES
был принят в качестве официального (стандартного) шифра США, сверхсек-
ретное Агентство по национальной безопасности (NSA) вмешалось в это де-
ло, понизив сложность шифровального алгоритма и скрыв основные аспекты
его устройства. Это выглядело весьма подозрительно! Зачем бы NSA объяв-
лять код безопасным, в то же время делая его менее безопасным? Критики
предупреждали, что в систему, возможно, была встроена лазейка.
В начале 1992 года два израильских ученых объявили, что они нашли
способ победить систему. Если содержание зашифрованного сообщения ко-
му-либо известно, с помощью определенных математических приемов можно
вычислить ключ, использованный для шифровки сообщения. Затем не составит
труда прочесть тексты, зашифрованные с помощью того же ключа.
Как бы то ни было, со времен семидесятых придумано уже немало гораздо
лучших шифров.
В некоторых системах силовая атака на зашифрованные файлы затруднена
тем, что шифровальный ключ, применяемый пользователями, шифрует не сам
текст, а некую случайную последовательность символов, а эти символы, в
свою очередь, зашифровывают текст. Чтобы стать хакером, не обязательно
быть слишком уж проницательным, достаточно просто обладать умом. Но для
того, чтобы взламывать алгоритмы шифровки данных, необходимо быть не
только умным и проницательным, но еще и разбираться в математике. К
счастью для тех, кто не может похвастаться калькулятором вместо мозгов,
существует много других методов для прочтения зашифрованных файлов
(вспомните хотя бы прибор благословенного Ван Эйка).
бит за битом
Допустим, вы вошли в какой-нибудь незначительный бюджет, где нет дос-
тупа ни к чему интересному. Допустим также, что в данной системе вы мо-
жете прочесть файл с паролями, но не изменить его.
Например, пароль вашего бюджета в этом файле закодирован в виде
"fg(kk3j2.". Если у вас есть возможность загрузить файл паролей в текс-
товый редактор, вы сможете сменить зашифрованный пароль системного адми-
нистратора на ваш собственный; но сохранить внесенные изменения вам не
удастся, если у вас нет статуса привилегированного пользователя. Но так
ли это?
Компьютерная зашита системы порой осуществляет проверку достоверности
только на самых высоких уровнях защищенности. Пользователь, не обладаю-
щий определенным уровнем доступа (а следовательно и защищенности) не мо-
жет использовать команды высокого уровня для уничтожения, перемещения,
использования и изменения файлов; к командам же машинного уровня, скажем
для перемещения головки чтения,записи в определенное положение, это не
относится. Если бы так происходило со всей доступной областью памяти,
каждый файл можно было бы полностью считать или переписать побитно. Если
у вас имеется доступ к программному обеспечению или к дисковым носите-
лям, вы сможете изменить расположение хранящихся личных данных, поменяв
зашифрованный пароль системного администратора на свой.
С другой стороны, вы можете обнаружить, что компьютерная зашита не
разрешает использование даже инструкций низкого уровня. Но не сдавайтесь
слишком рано! Область памяти может быть, по разным причинам, - из-за за-
бывчивости, ошибок, неумения или непрактичности, - только частично
за-шишена таким образом. Если это так, вам не удастся изменить файл па-
ролей, но, вероятно, удастся переместить его в директорию другого
пользователя, или изменить уже находящиеся в ней файлы. А это даст вам
возможность широкого применения "троянских коней" и лазеек.
Если зашита отвергает любые попытки получения нелегального доступа,
возможно, вам удастся заставить привилегированного пользователя порабо-
тать за вас. Напишите простую программу, например, игру, и введите в нее
скрытые инструкции по изменению паролей. Затем откомпилируйте ее, сохра-
ните, сделав доступной только для привилегированных пользователей, и по-
местите в общественную директорию. В конце концов какой-нибудь привиле-
гированный пользователь наткнется на нее и запустит, таким образом за-
действовав те части вашей программы, которые, запусти вы их самостоя-
тельно, привели бы к сообщениям об ошибках и, возможно, дополнительным
отметкам в журнале регистрации.
применение программ
Большинство программ, применяемых хакерами, являются разновидностями
"троянских коней". А классический "троянский конь" использует ошибки
других для достижения своей цели. Чаше всего это означает эксплуатацию
врожденных недостатков РАТН-команд.
Большинство современных ОС позволяет вам организовывать свои файлы
путем использования директорий и поддиректорий. Таким образом, поиск
нужного файла облегчается, но зато для перехода из одной директории в
другую приходится набирать длинные путевые имена.
Решение заключается в использовании команд PATH. Команда PATH говорит
ОС: "Если ты не найдешь этот файл в текущей директории, посмотри вон
там... А потом - там... И еще вон там." Другими словами, вы определяете
путь, по которому будет следовать ОС в поисках файлов. Таким образом,
для получения доступа к этому файлу вам не нужно находиться в той дирек-
тории, где он содержится.
Команды PATH обычно помещаются в ВАТ-файлы, которые запускаются при
загрузке. Они особенно часто используются на больших машинах, которые
содержат множество файлов и кучи директорий. В подобных случаях, особен-
но, если пользователь является обслуживающим оператором и ему нужен не-
ограниченный доступ, очень много директорий может определяться с помощью
PATH.
Пути поиска очень важны для хакеров, особенно, если поиск ведется по
всем директориям системы.
Для начала хакер переписывает часто используемую программу, вставляя
в нее "троянского коня". Затем он помешает программу в директорию, кото-
рая предположительно находится на пути привилегированного пользователя.
Привилегированный пользователь или программа (типа сценария заполнения
"пустой" экспертной системы) могут случайно запустить, скажем, вашу
программу установки даты вместо "официальной" версии, хранящейся в ди-
ректории ОС. Если так случится, ваша спрятанная программа сделает свое
дело.
"Троянские кони" могут делать многие веши - собирать пароли, созда-
вать ложные приглашения к входу в систему, лишать файлы зашиты от чте-
ния,записи, либо создавать впечатление фатального сбоя системы (а когда
пользователь выключит свой терминал и уйдет, вы сможете набрать секрет-
ный управляющий код, который позволит "троянскому коню" снова "вло-
миться" в бюджет этого пользователя). "Троянские кони", безусловно, сос-
тавляют значительную часть хакерского арсенала, но существует и другой
способ повышения уровня доступа с помощью программ - использование
компьютерных вирусов.
ВИРУСЫ
Вирус возник путем скрещивания трех видов программ: "троянского ко-
ня", червя и логической бомбы.
Логическая бомба - это небольшая программа, спрятанная внутри большей
программы. Обычно она представляет собой не более чем высказывание IF
THEN (ЕСЛИ ТО). ЕСЛИ что-то верно, ТО надо сделать нечто. Что обычно
представляет собой ТО, можно догадаться, исходя из самого названия - ло-
гическая бомба.
Классический пример логической бомбы был использован, когда один сис-
темный программист был уволен за неверно выполненную работу. Через нес-
колько дней после его ухода главы фирмы получают от программиста посла-
ние: "Заплатите мне Х долларов до 31-го июля, и я сообщу вам, как спасти