Денис Ферри - Секреты супер хакера
5 Randomize Timer
100 For i = 1 to 6
110 Char=lnt(Rnd*91)
120 If Char?»
«Разъяснение» гласило, что некий (относительно недавний) пользователь сей BBS, чей псевдоним был Мистер Шутник, ввел в действие «свойство» программного обеспечения данной BBS, создававшее несекретные пароли. В предыдущем году система «вышла из строя, что явилось результатом действий мистера Шутника». Причина или вид поломки подробно не описывались, вероятно, потому, что постоянные пользователи системы уже и так знали эту историю. Как бы то ни было, теперь вы понимаете, каким образом можно получить неплохую информацию, изучая «случайные» пароли. Даже если на первый взгляд вы не можете найти ни одного осмысленного набора символов, это не означает, что его нет вообще. Может присутствовать лишь намек на такой набор, или хотя бы ошибка или странность, которую вам удастся обнаружить.
Например, в первой версии одной программы BBS — настолько жуткой, что через месяц полетела клавиатура — генератор случайных паролей никогда не создавал пароли, в которых присутствовала бы буква А или цифра 0. Знание этой особенности может оказать некоторую услугу: для семизначного пароля типа WXYZ123, где WXYZ — строчные либо прописные буквы, а 123 — цифры, существует только 284,765,630 возможных комбинаций букв и цифр, вместо 456,976,000 — разница в 172,210,630 паролей! Программное обеспечение кишмя кишело ошибками, многие из которых прославились как наихудшие ошибки за всю историю программирования.
Неслучайные пароли, генерируемые машиной
Под конец давайте обсудим неслучайные машинные пароли. Пользователи часто подключаются к системе еще до окончания оформления регистрации, пользуясь временным паролем. Временный пароль может представлять собой какую-то уже известную пользователю информацию, например, номер карточки социального страхования, дату рождения, либо другие личные данные. Предполагается, что потом пользователи заменяют такие мало секретные пароли на более безопасные, но пока им специально не покажут, как это делается, или не посоветуют так поступить, пользователи вряд ли произведут замену.
Вот один некомпьютерный пример, наглядно демонстрирующий эту человеческую слабость. В апреле 1992 года студенты университета в Нью-Ажерси получили послание с информацией о новом классе регистрационных процедур. В послании утверждалось, что код персонального доступа (Personal Access Code РАС), предназначенный для подтверждения личной регистрации, состоит из первых четырех цифр даты рождения данного человека (месяц и день), вводимых вместе с девятой цифрой студенческого номера (а по необходимости — номера Социальной безопасности). В первую очередь меня поразил тот факт, что они сообщили студентам, что их сверхсекретный РАС на самом деле — их день рождения. Такое сообщение сводит на нет все меры по безопасности, которые они пытаются внедрить. Действительно, неужели так уж трудно узнать чью-то дату рождения? Но РАС является только частью пароля, а другая часть студенческий ID. Узнать чей-то ID — проще простого. ID можно легально, или почти легально, узнать в студенческих оздоровительных центрах, прочесть на досках объявлений в компьютерных залах, в идентификационных картах, в списках имеющих право на общежитие — да где угодно! Послание также гласило, что те, кого беспокоит проблема безопасности, могут подойти в регистрационный офис, чтобы изменить свой РАС. Как вы понимаете, никому и в голову не придет куда-то тащиться и что-то менять, коли можно обойтись и без этого. К тому же, замена первых четырех цифр вряд ли сможет отпугнуть опытного хакера. Чтобы отследить изменение пароля, потребуется 10 000 минус одна попыток. Не говоря уже о тех 366 возможных паролях, которые можно перебрать до того, как эта «озабоченная безопасностью» личность сменит свой код. Десять тысяч чисел — это, разумеется, немало, но перебрать их все вполне возможно. Автоматический номеронабиратель способен проделать это примерно за семь минут, если количество попыток ввода кодов на один звонок будет неограниченным. В любом случае, я привел эту историю для того, чтобы проиллюстрировать одну истину: пользователь и пальцем не пошевелит, чтобы изменить коды доступа, если его не заставить.
И, даже если они это сделают, мало что изменится. На что же тогда мы, хакеры? Давайте теперь вернемся к нашему разговору о неслучайных паролях, которые генерирует компьютер; вернее, о тех, которые устанавливает программист или администратор, выбирая их из компьютерных файлов данных.
Компьютер выбирает пароли каждый раз, когда требуется ввести большое количество паролей сразу. В течение первой недели семестра в колледже для студентов, занимающихся в компьютерных классах, создаются тысячи входов. По большей части эти входы-бюджеты устанавливаются с пользовательским именем, соответствующим усеченной или уменьшительной форме настоящего имени пользователя, а пароли представляют собой либо номер карточки социального страхования (НКСС), либо студенческий ID. Итак, если вы решили подвергнуть взлому компьютерную систему колледжа, приступайте к делу в самом начале семестра — пока пользователи не заменили свои пароли на более секретные. НКСС можно отгадать методом прямого перебора.
НКСС (или другие идентификационные номера) также можно получить социальными методами (см. главу о социальной инженерии), или с помощью других хитростей. Я присутствовал на уроке в одном колледже, когда инструктор раздал всем листки бумаги, попросив студентов написать на них свое имя и идентификационный номер. Затем листочки передавались ассистенту преподавателя, который вводил информацию в компьютер, создавая входы-бюджеты в системе. Если вам случится попасть на подобный урок, постарайтесь сесть на заднюю парту, чтобы никто не мог заметить, как вы копируете личные данные других людей. Имена и НКСС нетрудно увидеть в списках посещающих занятия, в классных расписаниях; они обычно содержат сведения об имени и НКСС каждого учащегося. Если расписание не висит на видном месте, это не означает, что его нет. Придумайте какой-либо способ хотя бы мельком взглянуть на него. Например, скажите, что в прошлый раз ваше имя неправильно записали и вы хотите проверить, исправлено ли оно. Профессора обожают рассуждать о промахах образовательной бюрократической системы. Сыграйте на этой слабости!
После нескольких шумных судебных разбирательств был сделан вывод, что указание номера социальной безопасности в совокупности с именем человека в общедоступных средствах неконституционно, так как является вторжением в частную жизнь. С тех пор НКСС все реже и реже используются для идентификации, уступая место устанавливающемуся организациями ID. В этом случае приходится больше полагаться на метод перебора, чтобы получить доступ к массиву личных идентификационных номеров.
Предварительные пользовательские пароли не всегда представляют собой идентификационные номера. Если между администратором системы и пользователем установлена какая-либо иная связь, кроме компьютерной, в качестве временных паролей могут быть назначены другие слова (они изменяются при подсоединении пользователя к системе). Возможен общий пароль для новых пользователей, который дается всем бюджетам и который обычно нетрудно взломать. Но пароль может оказаться также весьма трудным для отгадывания и безопасным — вроде длинной строки случайных символов. Иногда приходится перехватывать электронную почту нового пользователя в поисках конверта с присвоенным этому пользователю паролем.
Программы — тоже люди
Иногда на компьютерных системах устанавливаются программы, имеющие свои собственные пользовательские имена и пароли, точно такие же, как и у любого другого пользователя системы. Если вы входите в систему под именем этой программы, программа начинает выполняться. Эти программы могут представлять собой руководства по сетям, информационные системы, базы данных, системы сообщений или какие-либо программные приложения. Некоторые системы имеют также входы с простыми командами в качестве пользовательского имени, такими как «time», «date» или «who» (эта команда сообщает о том, кто загрузился в систему). Это позволяет людям выполнять некоторые часто использующиеся функции, минуя хлопотный процесс входа в защищенную систему. Зачастую эти командные входы вообще не имеют паролей, что кажется идиотизмом, поскольку некоторым из них даны права доступа суперпользователя. Не исключено, что вам удастся войти в одну из этих программ-пользователей с помощью комбинации имя, пароль, состоящей из следующих слов: guest, demo, help, info, tutorial, tut, menu, data, base, intro, anonymous, database, visit, welcome, hello.
Так, например, «visit» или «visitor» может быть именем пользователя, a «tut» — паролем. Существует также возможность входа под именами «calendar», «cal», «sched», «schedule», «who.is», «ftp», «who», «Ipq», «archiv» и другими схожими именами команд. На многие системы устанавливаются программы общего пользования или даже общедоступные. Доступ можно получить, загрузившись под именем «info», как предложено выше, или другими способами.