Денис Ферри - Секреты супер хакера
Узнавание чьих-то личных пристрастий называется созданием личностного профиля (у хакеров — «парольного профиля»). Эта техника применяется тогда, когда хакер хочет получить информацию о конкретном человеке, чьи компьютеры он собирается взломать. Если вы хотите собрать интересующую вас информацию о главном боссе какой-либо корпорации, вам следует поискать его (или ее) интервью для прессы, узнать, каковы его (или ее) пристрастия, и действовать, исходя из полученной информации.
Одну из популярных уловок упоминает в своей «Настольной книге» хакер Хьюго Корнуолл. Она основана на том факте, что зачастую главному лицу организации программное обеспечение преподносится на блюдечке в уже готовом виде — с введенным паролем, — чтобы, упаси Боже, начальство не перенапрягло мозги. Естественно, такой пароль легко угадать, исходя из личных интересов босса, — ведь пароль-то готовился желающими выслужиться подхалимами именно для него. — Вы говорили, мистер Ларсен любит порыбачить? Так введите в качестве пароля слово «рыба».)
Давайте предположим, что хобби или увлечения избранного вами лица уже известны. Как действовать дальше? Для начала можно пойти в библиотеку и взять там все имеющиеся в наличии книги по данному предмету. Затем создайте банк слов, взятых из словарей и каталогов. Людям нравятся большие и, как им кажется, сложные слова или названия из сферы их обожаемых хобби: им кажется, что эти слова больше никому и в голову не придут. Так, студенты-литературоведы используют в качестве паролей имена вроде «Еврипид»; в целом же студенты тяготеют к мешанине из длинных технических терминов. Создав списки слов, начинайте их пробовать вводить к качестве пароля. Если не одно из них не подойдет, можно переходить к другому типу пароля. Аоктор необязательно придумает пароль «перикард». Жизнь человека многопланова, а профессиональная деятельность составляет лишь одну из ее сторон.
Изучение паролеи
Если вы считаете, что все эти разговоры насчет легко отгадываемых паролей — пустая болтовня, поразмыслите хорошенько. Я потратил немало времени на формальное и неформальное изучение данного предмета, прежде чем выяснил, насколько в действительности безопасны создаваемые пользователями пароли. Вот результат одного из подобных экспериментов. Среди 3829 паролей оказалось: 15 обычных ASCII-символов, 72 двузначных пароля, 464 трехзначных, 477 четырехзначных, 706 пятизначных (все они состояли либо из одних строчных, либо из одних прописных букв) и 605 шестизначных (все из строчных букв).
Вывод: то, что хакеры могут просто сидеть и отгадывать пароли — ФАКТ, а не ФИКЦИЯ. Это не только возможно, но зачастую и нетрудно.
Другой пример того, насколько легко взламываются пароли — «червь», который прополз по всему Интернету в 1988 году, «завалив» большую часть сети. У «червя» было два способа размножения, один из которых базировался на взломе пользовательских паролей. Сначала «червь» пробовал типичные пароли, такие, как имя для входа в систему, имя или фамилию пользователя, и тому подобные варианты. Если ни один из них не подходил, «червь» прибегал к помощи словаря, состоявшего из 432 общеупотребительных паролей. И, наконец, если оба этих метода не срабатывали, «червь» обращался к словарю системы UNIX и пробовал каждое слово, пока не находил верное. Результаты показали, что этот метод работал безупречно. Кстати, если вы окажетесь в системе UNIX, и вам понадобится грубая сила для получения более высокого уровня доступа, системный словарь может здорово помочь. Он находится в поддиректории»,usr.dict,». Файл называется «words». Вы также можете переписать этот файл на дискету или скопировать его на другой компьютер, если вам нужен открытый словарный текст для использования на других машинах.
Одно из достоинств (и недостатков) словаря UNIX заключается в том, что содержащиеся там слова не совсем соответствуют общеупотребительному словарю английского языка. В системном словаре превалируют научные термины, что отвечает целям, ради которых был создан данный словарь.
Ограничения для паролей
Большинство операционных систем создавалось не для сверхсекретных задач. Разумеется, в системах разделенного времени вся секретность заключается в основанных на паролях бюджетах. Впрочем, как мы уже заметили, многие пароли крайне легко отгадать.
Ограничения операционной системы UNIX для паролей ограничиваются тем, что пароли должны состоять не менее чем из пяти строчных символов, либо из четырех, при условии, что по крайней мере один из этих символов является прописной буквой или управляющим кодом. Впрочем, если пользователь настаивает на введении более короткого пароля, невзирая на предупреждения о ненадежности, система все же допустит его пароль. Системные операторы знают о том, что большинство паролей не отвечают требованиям секретности. Поэтому многие из них инсталлируют специальные программы, которые запрещают создание слишком «легких» паролей. Пароль должен отвечать определенным требованиям, как то:
а) быть определенной длины;
б) включать в себя как прописные, так и строчные буквы;
в) включать в себя одну и более цифр;
г) включать в себя один нецифровой и неалфавитный символ.
Одно или несколько из этих правил должны соблюдаться.
Программа может также протестировать пароль пользователя, применив список известных ей «плохих» паролей, которые не допускаются к использованию. Запрет на однобуквенные или простые буквенные пароли, конечно, создает определенные трудности при отгадывании, но не слишком большие. Однажды я пытался отгадать пароль некоего человека; мне казалось, что его пароль должен быть «рореуе» («пучеглаз»), поскольку у него была обширная коллекция классических юмористических книг и в основном его интересовал именно этот комикс. Системное программное обеспечение предлагало вводить в качестве пароля смесь из прописных и строчных букв (кстати, это также дает полезную информацию о том, что система отличает строчные буквы от прописных). Я попробовал ввести следующее: Рореуе PoPeYe popeyE PopEye popEYE рорЕуЕореуЕ PopEYE РоРеуе, а затем ввел инверсную форму каждого из этих сочетаний, превращая PopeyE в pOPEYe (на случай, если пользователь считал заглавные буквы нормой для компьютерной клавиатуры, а строчные исключением). Казалось маловероятным, что этот любитель комиксов придумал нечто из ряда вон выходящее — ввел прописные буквы посреди слова или расставил их бессистемно. (Да и кто из нас, будучи в здравом рассудке, поступит так, если его попросят ввести заглавные буквы в пароль?) В конце концов его пароль оказался «OliveOyl». При первой загрузке пользователя система может попросить его ввести в пароль не заглавные буквы, а числа. И опять же, вряд ли Простой Пользователь станет разбивать слово числами, да и числа введет не длиннее, чем одно-двухзначные. Ведь пользователь обычно рассматривает пароль как слово. И о необходимости включения в него чисел он подумает в последнюю очередь. Таким образом, обычно встречаются пароли следующего вида: пароль#, пар#оль, #пароль. Числа, как правило, берутся легко запоминающиеся, либо те, которые удобно набирать, вроде О или 1. Числа от 1 до 31 встречаются наиболее часто, равно как и числа с повторяющимися цифрами или заканчивающиеся нулями или девятками — 888, 500, 1999 и т. п. Можно ожидать, что автор пароля поставит цифру «1» на место буквы «I» (строчная «L»), если пароль содержит данную букву. Компьютерные фанатики также имеют милую манеру заменять букву «О» нулем, если требуется ввести какую-либо цифру. Если вы подозреваете, что пароль содержит цифры «1» или «О», вместо букв, то попробуйте набрать вместо «cool» или «computer» следующее: «cOOl» или «cOmputer».
Пароли, создаваемые компьютером: подделка и анализ паролей, генерируемых машиной
Многие из паролей, которые создает сам компьютер, порождены не без участия генератора случайных чисел. Взгляните, например, на приведенный ниже отрывок из сегмента воображаемой программы:
5 Randomize Timer
100 For i = 1 to 6
110 Char=lnt(Rnd*91)
120 If Char?»
«Разъяснение» гласило, что некий (относительно недавний) пользователь сей BBS, чей псевдоним был Мистер Шутник, ввел в действие «свойство» программного обеспечения данной BBS, создававшее несекретные пароли. В предыдущем году система «вышла из строя, что явилось результатом действий мистера Шутника». Причина или вид поломки подробно не описывались, вероятно, потому, что постоянные пользователи системы уже и так знали эту историю. Как бы то ни было, теперь вы понимаете, каким образом можно получить неплохую информацию, изучая «случайные» пароли. Даже если на первый взгляд вы не можете найти ни одного осмысленного набора символов, это не означает, что его нет вообще. Может присутствовать лишь намек на такой набор, или хотя бы ошибка или странность, которую вам удастся обнаружить.