Пароли и контроль над доступом
Глава 3. Пароли и контроль над доступом
ТОРЖЕСТВЕННЫЙ КОМПЛЕКТ
Незаменимое пособие для сочинения юбилейных статей, табельных фельетонов,
а также парадных стихотворений, од и тропарей Раздел 1. Словарь. Существительные.
1. Клики; 2. Трудящиеся; 3. Заря; 4. Жизнь; 5. Маяк; 6. Ошибки; 7. Стяг (флаг); 8. Ваал; 9. Молох; 10. Прислужник; 11. Час; 12. Враг; 13. Поступь;
14. Вал; 15. Пески; 16. Скок; 17. Конь; 18. Сердце; 19. Прошлое.
И. Ильф, Е. Петров. Золотой теленок
Для зашиты компьютерных установок на сегодняшний день имеются три основных класса контроля доступа. Это:
— контроль, основанный на знании (пароли);
— контроль, основанный на обладании (ключи);
—контроль, основанный на личных характеристиках (биометрические приборы).
В случае контроля, основанного на обладании, речь идет о предметах, принадлежащих пользователю, — физическом ключе, магнитной карте и т. д. Иногда используется металлическая пластинка причудливой формы, которую вставляют перед началом работы в шель распознавателя. “Ключом” может служить также идентификационный знак либо специальное письмо с подписью одного из высокопоставленных лиц компании.
Биометрические приборы анализируют специфические физические особенности пользователя (подпись, отпечатки пальцев или рисунок линий на ладони) и сравнивают их с теми, что наличествуют у них в памяти. Эти два вида компьютерной зашиты могут использоваться и для дистанционного управления доступом, хотя обычно к ним прибегают для ограничения доступа к тому месту, где находятся компьютеры, — компьютерному залу или отдельному кабинету.
Биометрические и физические ключи будут далее рассмотрены более подробно.
Первый вид контроля над доступом, наиболее распространенный, основан на обладании специфической информацией. Это означает, что правом доступа обладают лишь те лица, которые способны продемонстрировать свое знание определенного секрета, обычно пароля. Львиную долю работы хакера составляет именно поиск этого пароля. В этой главе и рассказывается обо всем, что вам необходимо знать о паролях: как они работают, где хранятся, и как их можно “взломать”.
пароли
Самый простой и дешевый путь зашиты любого типа компьютерной системы сводится к старому, испытанному способу: применению пароля. Даже те компьютеры, которые вовсе не нуждаются в средствах зашиты, зачастую снабжаются паролем просто потому, что пароль дает ощущение психологического комфорта и его использование не требует особенно много времени, сил и места в памяти. Более того, в системах, уже защищенных другими средствами — магнитными картами или иными программными методами, типа шифрования, нередко удваивают или утраивают заши-ту содержимого, прибегая к системе паролей. Таким
образом, практически все установки компьютеров включают в себя пароли того или иного вида.
Пароли, как правило, рассматриваются в качестве ключей для входа в систему, но они используются и для других целей: блокирование записи на дисковод, в командах на шифрование данных или на разархива-цию файлов — короче, во всех тех случаях, когда требуется твердая уверенность в том, что соответствующие действия будут производиться только законными владельцами или пользователями программного обеспечения.
Пароли подразделяются на семь основных групп:
— пароли, устанавливаемые пользователем;
— пароли, генерируемые системой;
— случайные коды доступа, генерируемые системой;
— полуслова;
— ключевые фразы;
— интерактивные последовательности типа “вопрос — ответ”;
— “строгие” пароли.
Если вы решились на взлом, вам, прежде всего, необходимо вычислить, какой из этих семи видов паролей используется в данной системе.
Первый является наиболее распространенным — обычно пользователи, движимые мелким тщеславием, просят придумать себе личный пароль.
Случайные пароли и коды, устанавливаемые системой, могут быть нескольких разновидностей. Системное программное обеспечение может применить полностью случайную последовательность символов — случайную вплоть до регистров, цифр, пунктуациии длины; или же в генерирующих процедурах могут быть использованы ограничения. Например, каждый код доступа согласуется с заранее подготовленным шаблоном (вроде oabc-12345-efghn, где буквы и цифры, на заданных позициях, генерируются случайным образом).
Создаваемые компьютером пароли могут также случайным образом извлекаться из списка обычных или ничего не значащих слов, созданных авторами программы, которые образуют пароли вроде onah.foopn, или ocar- back-treen. Полуслова частично создаются пользователем, а частично — каким-либо случайным процессом. Это значит, что если даже пользователь придумает легко угадываемый пароль, например, “секрет”, компьютер дополнит его какой-нибудь неразберихой, образовав более сложный пароль типа “секрет,5гh11”.
Ключевые фразы хороши тем, что они длинные и их трудно угадать, зато легко запомнить. Фразы могут быть осмысленными, типа “we were troubled by that”, или не иметь смысла — “fished up our nose”. Ключевые фразы применяются в тех организациях, где менеджер слегка помешан на защите. Следует заметить, что в программировании постепенно намечается тенденция к переходу на более широкое применение ключевых фраз.
К концепции ключевых фраз близка концепция кодового акронима, который эксперты по защите оценивают как короткую, но идеально безопасную форму пароля. В акрониме пользователь берет легко запоминающееся предложение, фразу, строчку из стихотворения и т. п., и использует первые буквы каждого слова в качестве пароля. Например, акронимами двух приведенных выше фраз являются “wwtbt” и “fuon”. Как видите, подобные нововведения в теории паролей значительно затрудняют занятия электронным шпионажем.
Шестой тип паролей — интерактивные последовательности “вопрос — ответ”, предлагают пользователю ответить на несколько вопросов, как правило, личного плана: “Девичья фамилия вашей супруги?”, “Ваш любимый цвет?”, и т. д. В компьютере хранятся ответы на множество таких вопросов. При входе пользователя в систему компьютер сравнивает полученные ответы с “правильными”. Сеансы вопросов и ответов могут оказаться лакомым кусочком для хакера, который хорошо знаком с пользователем, под чьим именем он пытается войти в систему. Системы с использованием вопросов — ответов склонны к тому же прерывать работу пользователя каждые десять минут, предлагая отвечать на вопросы, дабы подтвердить его право пользоваться системой.
Это очень раздражает, особенно если пользователь погружен в интересную игру. Ныне такие пароли почти не используются. Когда их придумали, идея казалась неплохой, но раздражающий фактор прерывания привел к тому, что данный метод практически исчез из обихода.
“Строгие” пароли обычно используются совместно с каким-нибудь внешним электронным или механическим устройством - “цербером”. В этом случае компьютер обычно с простодушным коварством предлагает несколько вариантов приглашений, а бе-долага-пользователь должен дать на них подходящие ответы. Этот вид паролей часто встречается в системах с одноразовыми кодами, а также в параноидаль-ных организациях.
Одноразовые коды — это пароли, которые срабатывают только один раз. К ним иногда прибегают, создавая временную копию для гостей, чтобы продемонстрировать потенциальным клиентам возможности системы. Они также порой применяются при первом вхождении пользователя в систему. Во время первого сеанса пользователь вводит свой собственный пароль и в дальнейшем входит в систему лишь через него. Одноразовые коды могут также применяться в системе, когда действительный пользователь входит в нее в первый раз; затем пользователю следует поменять свой пароль на более секретный персональный код. В случаях, когда системой пользуется группа людей, но при этом нельзя нарушать секретность, прибегают к списку одноразовых кодов. Тот или иной пользователь вводит код, соотвествуюший времени, дате или дню недели. Может быть, вам повезет и вы найдете такой список в одном из своих походов за мусором. Коды, конечно, вам уже не пригодятся, но зато вы уразумеете принцип зашиты данной системы.
пороли, устанавливаемые пользователем
Большинство паролей относятся к типу “выбери сам”. Большинство современных программ запрашивают не слишком короткий пароль, чтобы систему было “труднее взломать”. Обычно пароль содержит не менее четырех-пяти букв. Существуют также и другие меры, призванные не позволить пользователю создать неудачный пароль. Например, система может настаивать на том, чтобы пароль включал в себя строчные и заглавные буквы вперемешку с цифрами; заведомо очевидные пароли, например, “компьютер”, ею отвергаются.
В разных операционных системах существует немало программ, которые просматривают файлы, содержащие пароли, анализируют пароли пользователей и определяют, насколько они секретны. Неподходящие пароли заменяются. Вам необходимо досконально познакомиться с такими программами. Тогда вы будете иметь представление о том, какая из этих программ используется в избранной вами системе, и какие пароли данная программа не пропускает.
Не считая гениев и безнадежных тупиц, все люди, когда надо принимать быстрые решения, мыслят и действуют примерно одинаково. Людям требуется время, чтобы начать мыслить творчески. Начальные предположения и первые умозаключения в определенных группах людей оказываются одинаковыми. Когда человек впервые загружает компьютер, и тот запрашивает у него пароль, этот пароль окажется вариантом одной из общих и актуальных для всех тем — особенно если у пользователя не хватает времени или он находится в незнакомом месте. Представьте себе состояние человека, когда его просят придумать собственный секретный пароль. Возможно, каждая минута промедления оборачивается все новыми центами и долларами, либо его окружает группа технических работников, которые обучают этого человека работе с системой. Как бы то ни было, стоит запросу появиться на экране, и человека посещает мысль о том, что надо немедленно что-то предпринимать. Люди выдают первое, что приходит им в голову. А в голову приходит то, что они видят или слышат в данный момент, либо то, что собираются сделать сразу же после загрузки. Пароли создаются впопыхах, а последующая замена такого пароля на более надежный происходит достаточно редко. Таким образом, многие пароли извлекаются из мыслей, которые плавают на поверхности сознания — мыслей о работе, семье, возможных событиях, имуществе, оборудовании, увлечениях и интересах. Если вам удастся угадать или узнать одну из подобных характеристик полноправного системного пользователя, вероятность того, что вы угадаете верный пароль, значительно возрастет.
Возьмите каталоги компаний, занимающихся изготовлением наклеек-постеров, юмористических фотографий и прочей ерунды, которой пестрят стены офисов.
Сколько раз вам уже приходилось видеть растиражированную фразу “Вам необязательно быть кретином, чтобы работать здесь... Но стать им не помешает!”. Могу дать гарантию, что словечко “кретин” с этого плаката используется в качестве пароля ежедневно.
Не забывайте также о возрасте и образе жизни среднестатистического пользователя, под которого вы собираетесь маскироваться, чтобы войти и совершить взлом. В офисе какой-либо солидной корпорации, скорее всего, не приклеят постер с обнаженной натурой, но вот в студенческом городке это вполне возможно — там стоит опробовать пароли типа “playmate”, “victoria”, “body” или “month”.
Самый простой способ раздобыть пароль — самому войти в систему в качестве пользователя, или подсказать пароль пользователю, входящему в систему впервые. Можно разыграть перед новичком роль компьютерного гуру — рассказать ему об основах этого дела, обойдя молчанием аспект секретности, и постараться узнать их пароль при вводе. Новичок либо громко скажет вслух только что придуманный пароль, или же вы увидите, как загорятся его глаза при виде настенного календаря с заголовком: “surfboard”. (Порой они говорят: “Господи, какой бы пароль посекретнее придумать? О, знаю...”, и вслух сообщают вам свой пароль, набирая его на клавиатуре.)
Вышесказанное — приятная случайность. Обычно, особенно если к вашему появлению пароль уже введен, приходится изрядно повозиться, прибегая к методам тупого перебора, наблюдениям, социальному либо техническому методам узнавания пароля.
Пароли в большинстве своем являются литературными словами типа “subway”, “chocolate” и т. п. В самом деле, можете ли вы представить себе новичка, сидящего за компьютером и старательно вводящего в качестве пароля нечто вроде “fMm6Pe”? Ну, конечно же, нет! Правила правописания для паролей не применяются: при создании паролей разрешается использовать имена собственные, равно как и слова с орфографическими ошибками, аббревиатуры, бессмыслицы и иностранные термины. Так, любитель посмотреть по телевизору Star Trek может создать пароль “enterprize” вместо корректного “Enterprise”.
Возможно, он (или она) не знаком с правописанием, а может, ему так просто больше нравится, — неважно. Важно, чтобы вы знали: слова с ошибками — полноправные обитатели мира паролей. Можно найти букву “k” на месте “с” — “koka kola”, “х” вместо “ks” в “thanx” и другие фонетические заменители.
Некоторые хакеры просматривают каждое слово в английском языке, пока не найдут что-нибудь, работающее в качестве пароля. Если пароль, который они ищут, действительно обычное слово, но неправильно написанное, можно потерять кучу времени. Поиск паролей с помощью одной лишь тупого перебора слов, со словарем, нередко превращается в безрадостное и бесполезное занятие. Многие слова часто встречаются среди паролей. В то же время иные слова почти никогда не используются в качестве паролей. Разве найдется человек, способный ввести в качестве пароля наречие? Такие слова следует опробовать в последнюю очередь. Пароли, как правило, относятся либо к существительным, либо к глаголам (обычно общеупотребительным), а иногда — к прилагательным. Среди паролей популярны имена и прозвища друзей и подружек; вы узнаете их, проведя предварительные исследования.
Кроме литературных слов попадаются также имена родственников, домашних животных, названия улиц, спортивных команд и продуктов питания; важные даты и номера, такие, как номера страховок, дни рождения и другие памятные даты и т. д.
Встречаются также бессмысленные наборы знаков клавиатуры, (“jkjkjkjk”, “7u7u7u”, “QWER”, “ccccccc”, “0987654321”, “asdfgh” или “AZSXDC”.) Такие пароли обычно представляют собой простые наборы повторяющихся или расположенных рядом символов клавиатуры и т. п. Иногда кажется, что клавиатурные пароли совершенно невозможно разгадать, и в то же время в них присутствует своя логика — если знаешь, что происходит на другом конце телефонной линии. Например, сочетание “05AF” может показаться странным для выдуманного второпях пароля, но если вам известно, что данный компьютер снабжен специальной шестнадцатеричной малой клавиатурой, все сразу становится ясно.
Малая шестнадцатеричная клавиатура используется некоторыми программистами для ускорения ввода символов в шестнадцатеричном коде. Эта клавиатура — хорошая иллюстрация к принципу, которым пользуются находчивые хакеры: то, что вы видите на вашей стороне линии, может отличаться от того, что происходит на той.
Вот несколько реальных системных паролей, с которыми я сталкивался: “abcdf”, “qwerty”, “12345”, “хххххх”, “ороророрр”.Если минимальная длина пароля должна составлять шесть символов, не думайте, что клавиатурные пароли намного превысят эту длину. С другой стороны, нельзя же опробовать все сочетания клавиш: их бесконечно много. Но в любом случае отгадывание клавиатурных паролей скрасит вам часы отдыха.
ПОИСК ВОЗМОЖНОГО ПАРОЛЯ
Одним из пособий, которыми я пользовался при написании этой книги, являлось неофициальное руководство по популярному платному информационному сервису. На протяжении всей книги автор постоянно упоминала о своей любимой кошечке, о своей любви к мягким филадельфийским “pretzels”, о своей любимой футбольной команде, о своем муже, детях и недавно проснувшемся интересе к компьютерам. Подобные ссылки на ее личные пристрастия появлялись не только в тексте книги, они присутствовали даже в иллюстрациях к действию команды “Find”, в примерах сообщений и писем.
Имя автора, разумеется, я знал. Я знал также, что она входит в число пользователей одной системы, и знал, каков ее образ жизни. Вычислить ее системный код оказалось невероятно просто, а перебрав десятка два паролей я смог войти в систему, маскируясь под нее. После этого она, по моему совету, изменила свой пароль.
И этот пример вовсе не исключение! Мы с вами ежедневно читаем газетные статьи, журналы и книги, в которых авторы сообщают читателям свои компьютерные адреса, чтобы читатели могли им написать.
Вчера я слушал радиопередачу, в которой ведущий выдал свой адрес в CompuServe всем радиослушателям, которым не удалось дозвониться ему на радио! Мы имеем достаточно информации о многих из этих авторов, чтобы наши догадки насчет их паролей были обоснованы.
Даже в случаях, когда автор книги не распространяется насчет своей личной жизни, об этом обычно можно узнать, прочитав статью “Об авторе”.
Большую часть компьютерных книг пишут профессора колледжей; нетрудно узнать, в каком колледже они преподают, и у вас появится ниточка, ведущая к паролю.
Если в приведенных примерах программ попадается бейсбольный жаргон, это также может послужить вам подсказкой.
Я хочу, чтобы вы имели в виду — все вышесказанное приведено здесь исключительно в информативных целях. Эти заметки сделаны лишь для того, чтобы указать на некоторые очевидные недостатки существующей компьютерной безопасности. И выбросите из головы любые глупые идеи насчет взлома моих паролей!
Еще одна хитрость — просмотр выпусков “Кто есть кто”. Чуть ли не все промышленные отрасли ежегодно издают альманахи “Кто есть кто”. Большинство этих изданий выпускаются просто в угоду тщеславию:
люди тратят свои деньги, чтобы о них что-то напечатали. Эти альманахи содержат немало полезных данных. Если этого вам недостаточно, напечатайте свой собственный псевдоофиииальный образец анкеты “Кто есть кто” и пошлите по электронной почте нужным вам сотрудникам компании. Проверьте, соответствует ли форма анкеты той, что принята у них в компании; пообещайте, что данные сотрудники будут включены в книгу бесплатно и также бесплатно получат по одной копии книги. Это повысит вероятность того, что их анкеты будут заполнены, а вы получите ценную информацию, которая поможет вам вычислить их пароли.
Вот еще одна уловка — обзавестись друзьями из числа сотрудников компании. Позвоните в их офис и потолкуйте с секретаршей или с каким-либо другим лицом, которому всегда известны все слухи. Скажите, что вы из нового журнала, специализирующегося на достижениях в области бизнеса. Попросите сообщить вам имена людей, возглавляющих основные отделы, дабы вы могли послать им бесплатный талон на ознакомительную подписку. Затем поговорите с секретарями начальников этих отделов. Пусть они заполнят анкеты “маркетинговых исследований”, возможно, за некоторое вознаграждение — бесплатную подписку, рекламные часы с радио и т.
п.
Обычные рыночные анкеты для подписчиков торгового журнала включают вопросы об образовании, присвоенных степенях, производственных достижениях, членство в профсоюзных ассоциациях, военную службу, размер оклада и длительность работы в компании. По мере продолжения вашей беседы начинайте задавать вопросы об их хобби и занятиях в свободное от работы время, любимых видах спорта; узнайте имена их родственников и их домашние адреса. Все эти вопросы вполне может задать исследователь в области рынка, а ответы на них могут дать вам ключи к паролям. Можно сделать проще: позвоните и скажите, что вы являетесь помощником редактора в журнале о торговле и занимаетесь поиском интересных людей, работающих в данной отрасли. — Нет ли у вас кого-нибудь, кто совершил бы нечто совершенно потрясающее, или хотя бы имеет какие-то необычные хобби? — Ответ может оказаться отрицательным. Но не отчаивайтесь: может, у кого-нибудь есть какой-либо специфический талант? Музыкальный, например? Продолжайте в том же духе — в конце концов, вы на что-нибудь наткнетесь и сможете использовать приведенные выше методы, чтобы собрать о данной личности как можно больше сведений.
Узнавание чьих-то личных пристрастий называется созданием личностного профиля (у хакеров — “парольного профиля”). Эта техника применяется тогда, когда хакер хочет получить информацию о конкретном человеке, чьи компьютеры он собирается взломать. Если вы хотите собрать интересующую вас информацию о главном боссе какой-либо корпорации, вам следует поискать его (или ее) интервью для прессы, узнать, каковы его (или ее) пристрастия, и действовать, исходя из полученной информации.
Одну из популярных уловок упоминает в своей “Настольной книге” хакер Хьюго Корнуолл. Она основана на том факте, что зачастую главному лицу организации программное обеспечение преподносится на блюдечке в уже готовом виде — с введенным паролем, — чтобы, упаси Боже, начальство не перенапрягло мозги. Естественно, такой пароль легко угадать, исходя из личных интересов босса, — ведь пароль-то готовился желающими выслужиться подхалимами именно для него.
— Вы говорили, мистер Ларсен любит порыбачить? Так введите в качестве пароля слово “рыба”.)
Давайте предположим, что хобби или увлечения избранного вами лица уже известны. Как действовать дальше? Для начала можно пойти в библиотеку и взять там все имеющиеся в наличии книги по данному предмету. Затем создайте банк слов, взятых из словарей и каталогов. Людям нравятся большие и, как им кажется, сложные слова или названия из сферы их обожаемых хобби: им кажется, что эти слова больше никому и в голову не придут. Так, студенты-литературоведы используют в качестве паролей имена вроде “Еврипид”; в целом же студенты тяготеют к мешанине из длинных технических терминов. Создав списки слов, начинайте их пробовать вводить к качестве пароля. Если не одно из них не подойдет, можно переходить к другому типу пароля. Аоктор необязательно придумает пароль “перикард”. Жизнь человека многопланова, а профессиональная деятельность составляет лишь одну из ее сторон.
изучение паролеи
Если вы считаете, что все эти разговоры насчет легко отгадываемых паролей — пустая болтовня, поразмыслите хорошенько. Я потратил немало времени на формальное и неформальное изучение данного предмета, прежде чем выяснил, насколько в действительности безопасны создаваемые пользователями пароли. Вот результат одного из подобных экспериментов. Среди 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 < 65 Then Goto 110
130 Password = Password + Chr$(Char)
140 Next i
200 Print "Ваш новый пароль: "; Password
В данном случае шесть прописных букв выбираются независимо друг от друга и соединяются, образуя пароль. Буквы выбираются по случайному числу между 65 и 90 — в соответствии с ASCII-кодом для заглавных букв. Случайность выбранных кодов ASCII основана на использовании функции Rnd, возвращающей псевдослучайные числа, базирующиеся на показаниях компьютерного таймера. В принципе, для генерации случайных чисел может быть использовано все, что угодно — главное было бы аппаратное обеспечение. Во всех основных языках программирования имеется встроенная или библиотечная функция, возвращающая псевдослучайное число: либо в интервале от нуля до единицы, как в приведенном выше примере на языке Бейсик, либо в диапазоне, задаваемом программистом.
Впрочем, можно полностью избавиться от фактора случайности, а просто присваивать каждому новому пользователю один и тот же пароль, например — “EVbDCI8”. Но это я шучу. Проблема в том, что подобное вряд ли ускользнет от внимания системных администраторов.
Более логичный способ — заставить программу генерировать похожий на случайный пароль, основанный на некоторой информации о пользователе, которую можно почерпнуть из легко доступных источников (дата рождения, номер Социальной Безопасности и т. д.). После этого вы просто вставляете эти данные в копию программы на вашем домашнем компьютере и создаете новый пользовательский пароль.
Один неплохой шифровочный алгоритм работает следующим образом: берутся синусы ASCII-кодов первых шести или восьми букв имени пользователя, затем берутся две предпоследние цифры из синусов, изменяются до подходящего размера, и соединяются в соответствующие ASCII-кодам буквы, формируя “слово”. Таким образом, вы получаете похожий на случайный пароль, который изготавливается практически вручную. Если имя пользователя состоит менее чем из шести букв, оставшееся место можно заполнить условными символами.
В данном примере имя пользователя превращается в ничего не значащий пароль в соответствии с методом, приведенным в тексте. На первый взгляд получившийся пароль кажется случайным и безопасным, но хакер может его разгадать, прибегнув к общедоступной информации о пользователе (здесь это фамилия пользователя).
Это достаточно простой пример; в жизни вам придется в соответствии с требованиями вводить в пароль строчные и прописные буквы, укорачивать его или удлинять, либо вставлять в пароль цифры, если понадобится. Такое внедрение пароля может оказать вам услугу, если вы занимаетесь системой электронных сообщений или объявлений: пользователям могут так понравиться их новые безопасные пароли (а разве “rueavz” не кажется безопасным паролем?), что они начинают пользоваться ими и в других местах.
Еще одна возможность, также предполагающая, что вы можете изменить генератор паролей незаметно — заменить начальное число генератора случайных чисел постоянной величиной (наберите в начале программы: 5 Randomize 0, тем самым заставив программу производить одни и те же серии случайных чисел при каждом запуске (до тех пор, пока компьютер включен и программа не возвращена в первоначальное состояние).
Однако это довольно рискованно, и может привести к нежелательным побочным эффектам. Один из методов устранения недостатков генераторов псевдослучайных чисел был разработан одним из создателей UNIX, Денисом М. Ричи, и издан в 1986 году в информационном бюллетене о средствах зашиты под заголовком “On the Security of UNIX” (“О защите в системе UNIX”). Для повышения безопасности вычислительных установок администраторы решили создать безопасные, генерируемые компьютером пароли. Каждый пароль должен был представлять собой восьмизначную строку из строчных букв и цифр. Число таких паролей равняется 2,821,109,900,000. Как сказано у Ричи, у PDP-11,70 уйдет 112 лет на отгадывание этих паролей, перебирая их один за другим. Но один хакер знал, что генератор случайных чисел располагает лишь 32,768 начальными числами, значит, количество возможных результатов сокращается именно до этой величины. Представляете, этот негодяй создал генератор, проверил каждую из этих строк одну за другой и обнаружил все генерируемые системой пароли, потратив на это всего около, одной минуты машинного времени. Действительно, не жалко потратить шестьдесят секунд и немного попрограммировать ради того, чтобы получить доступ во все бюджеты системы!
Если вы не сможете ввести код для машинной генерации паролей, вам, наверно, удастся проанализировать их уже после создания. Для этого вам потребуется как минимум один пароль, а лучше два или более, из созданных системой. Если вы располагаете легальным входом в систему, один пароль у вас уже есть. Если вы взламываете локальную BBS, или еще какую-либо из тех систем, где возможны многочисленные анонимные входы, попробуйте перезагрузиться несколько раз и собрать несколько новых паролей под разными именами. Можно приобрести соответствующее программное обеспечение для работы с BBS или программу генерации паролей и работать с ними, собирая различные пароли.
Однажды я набрел на “свеженькую” BBS. Поразмыслив, я вошел в качестве нового пользователя и не обнаружил там ничего интересного — программа заводского супервизора для местных агентов, чтобы те могли заказывать товары по описи.
Для входа я использовал вымышленные имя и адрес: Roger Eichner, 13 Stem Court, North Coast, WA 64203. Система дала мне пароль oroghner24. Я был изумлен! Ведь программа явно попросту взяла первые три буквы моего имени, последние четыре буквы фамилии и добавила в конце номер! Но так ли это? Я загрузился еще раз, как новый пользователь под другим именем. На этот раз видимой взаимосвязи между паролем и именем, казалось, не было. Теперь я уже не просто изумился, но и смутился! Неужели тот, первый, пароль был просто случайностью? А второй? Может быть, это так запрограммировано, чтобы в качестве паролей только иногда использовались части имени пользователя? ^ Тогда я вошел в третий раз, и опять как новый пользователь. И снова пароль никак не был связан с именем, которое я ввел. Теперь я уже почти окончательно убедил себя в том, что первый пароль был всего лишь невероятным совпадением. Я послал системному оператору сообщение, чтобы тот уничтожил бюджеты тех трех новых пользователей (приложив к посланию их имена с адресами, чтобы он не подумал, что я шучу), и больше не входил в эту систему в течение нескольких недель. Несмотря на то, что последние два пароля никак не были связаны ни с введенными мной личными данными, ни друг с другом, я думал, что, возможно, я что-то пропустил в тот первый раз, и некоторые символы одного пароля повторились в следующем. Могли ли эти символы иметь отношение к скорости передачи моей информации в бодах, к типу компьютера, или какому-то другому параметру, который оставался бы неизменным от одной загрузки к другой? А не могла ли случайность паролей заключаться в том, какие данные программа избирала для создания паролей? В первом случае эти данные были взяты из моего имени, и один из элементов (связь которого с моими данными я не смог распознать) повторился в третьем пароле. Я вновь вошел в систему под тем же именем, адресом, с теми же терминальными характеристиками и т. д., что и в первый раз. К своему огорчению, я получил не созданный компьютером пароль, а следующее сообщение: “Уважаемый пользователь.
Мы сожалеем, что вам придется пройти через это еще раз, но за последние несколько дней у нас возникли некоторые проблемы. Я вынужден просить вас удовольствоваться предоставленным вам низким уровнем доступа до тех пор, пока у меня не появится возможность предоставить вам ваши права в полном объеме. Прошу обратить внимание на следующее: в ответ на запрос системы о пароле не вводите тот же самый пароль, который был введен раньше. Создайте новый пароль, полностью отличный от предыдущего. В случае возникновения затруднений обращайтесь за разъяснениями к системному администратору.
StRaPmAsTeR = = = wl1 LIE = = => (системный оператор).
Введите пароль = =>?”
“Разъяснение” гласило, что некий (относительно недавний) пользователь сей 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”, как предложено выше, или другими способами.
Вымышленный университет Вакка Ду может предложить войти в команду под именами: “wdu”, “wdu info”, “chellowdo”, “wdunews”, “wdumail”, “wel-comewdu”, или какой-то иной вариацией аббревиатуры университета.
Если вы избрали этот путь, вас прежде всего следует поздравить с успешным взломом; но что дальше? Если вы заинтересованы в получении более высокого уровня доступа или в выходе из программы, вас ожидает множество трудностей. В следующем разделе предлагаются способы загрузки в обход рамок того или иного уровня доступа.
методы перебора
Они обычно задают немало работы вашему компьютеру. Они просты, но занимают много времени, и заключаются во введении одного пароля за другим до тех пор, пока наконец, может быть, один из них не сработает, к вашему счастью.
Или до тех пор, пока у вас не лопнет терпение, и вы не обратите свои взоры к лучшим методам.
К методам перебора хакер обычно прибегает в начале и в конце своих попыток взломать систему. В первый раз он делает это, наполовину подчиняясь велению чувства. Как хорошо было бы угадать пароль сразу же, или хотя бы после семидесяти пяти или ста попыток! В случае неудачи хакер некоторое время использует другие, более изощренные способы. Если же ни один из них ни к чему не приводит, он вновь возвращается к перебору, стремясь достичь цели. В конце концов метол перебора обязательно срабатывает. Слово “обязательно” как раз и притягивает хакеров, а уточнение “в конце концов” сводит их с ума.
Эти методы требуют очень много времени, и почти ничего больше. Время уходит на исследования, испытания и ошибки, а также написание специальных программ для “бомбардировки” системы паролями.
Метод перебора — не самый элегантный способ взлома, но так как в конце концов он все же себя оправдывает, каждый хакер рано или поздно прибегает к нему в той или иной ситуации. Вы можете оказаться в такой ситуации, когда вам ничего не известно о пользователях конкретной системы; обычные имена и пароли не срабатывают, а уловки не действуют. В таких случаях вам придется прибегнуть к самому “лобовому” приему: написанию небольшой программки, которая станет периодически вступать в диалог с компьютерной системой и вводить новую комбинацию имя, пароль, до тех пор, пока какая-либо комбинация не сработает. Это может продолжаться бесконечно.
Некоторые хакеры используют словарный файл из своих текстовых процессоров или с информационных панелей. Идея неплоха, но только при правильном использовании. Следует отредактировать словарный файл так, чтобы тот включал в себя общеупотребительные названия, имена, все буквы алфавита, имена музыкантов и президентов, марки машин, числа, псевдонимы знаменитостей и тому подобный материал для наиболее употребительных паролей. Избавьтесь от слов вроде “perspectives” (“перспективы”)— они слишком вычурны для пароля.
Если вы хотите ускорить процесс своей работы, придерживайтесь тех же принципов и в отношении числовых паролей. Если вы живете в Нью-Йорке, следует начать свою атаку с нью-йоркских НКСС.
Существует много способов сократить число потенциальных паролей, которые вам необходимо проверить. Военные используют автоматическую систему TACACS для проверки законности пользования компьютерами их сети. Коды доступа TACACS выглядят как строки, состоящие из буквенно-цифровых символов — но эти строки никогда не содержат цифр О и 1, а также букв Q и Z. Основой для такого решения послужила теория о том, что когда пользователь читает свой код доступа на кодовой карте, он легко может спутать единицы, нули, Q и Z с другими цифрами и буквами.
Когда вы отредактируете свой словарь, оставив в нем только те пароли, которые кажутся вам наиболее подходящими, или определите, какие коды наиболее вероятны в данном случае, напишите маленькую программу на любом известном вам языке, чтобы та вступала в диалог с модемом, и раз по разу вводила слова, одно за другим, делая все новые и новые попытки. И еще. И еще... Такую программу нетрудно написать, но если у вас нет подобного опыта, вы можете найти множество похожих программ на BBS.
Вот что следует учитывать при написании программы. Сколько раз компьютерная система позволит вам вводить неверное имя, пароль, пока не отсоединит вас? Три? Восемь? Если она даст вам всего лишь три попытки, а потом распрощается, убедитесь, что ваша программа выдала именно три комбинации имя, пароль, прежде чем снова набрать номер. Дистанционные компьютеры часто принимают введенные символы еще до того, как на экране появляется приглашение. Если так происходит с системой, в которую вы пытаетесь проникнуть, вам необходимо вставить в вашу программу цикл задержки, дабы быть уверенным в том, что пароли не будут введены до того, как на экране возникнет курсор.
Что же произойдет, когда ваша программа наконец сумеет отыскать подходящие имя и пароль? Когда программа работает, а вы сидите за компьютером, глядя на экран, вам надо как-то узнать о том, что метод грубой силы сработал.
Иначе ваша программа продолжит выдавать пароли, а системные операторы, которые теперь уже почти наверняка заметили, что происходит, просто придут в ярость! Программа должна выдавать вам на экран приходящий из удаленного компьютера текст. Как только будет получено что-то дополнительное, кроме приглашений о вводе имени, пароля, пусть программа выведет эти данные на экран и подаст звуковой сигнал. Можно сделать и так, что программа введет команду выхода и выведет на экран найденную комбинацию, чтобы, проснувшись утром, вы сразу же увидели ее.
Если вам известно, что некий Joe User (абстрактный пользователь) работает на компанию X, можно создать программу для проверки всех комбинаций паролей с пользовательскими именами Joe, User, JUser и Joe User, исключив такие варианты как joe, JOE и joeuse. (Из ваших экспериментов и исследований вы будете иметь какое-то представление о том, какого формата должно быть имя данного пользователя, так что вам не придется перебирать слишком много вариантов). С другой стороны, если вы не знаете имени и фамилии ни одного из сотрудников компании, вам придется либо узнавать их (т. е. просматривать каталоги компании, ежегодные отчеты, газетные статьи, задавать вопросы по телефону, и т. д., и т. п.), либо подвергнуть проверке каждую комбинацию возможных имен. Если вам придется перебирать все имена, не забудьте о женских и иностранных именах. Можно прогуляться в библиотеку, чтобы выяснить, какие имена и фамилии наиболее популярны. Но не забудьте, что вам нужны не современные популярные имена, а те, что были популярными и распространенными двадцать-тридцать лет назад, когда родители давали их теперешним сотрудникам интересующей вас компании.
Разумеется, для проверки возможных паролей не обязательно писать специальную программу. Если у вас есть в запасе время и терпение, вы можете просто сесть за компьютер и сами вводить имена. Но учтите — это займет куда больше времени, чем нужно компьютеру для взлома с помощью метода перебора.
Должен заметить следующее: независимо от того, насколько тщательно вы подготовились, всегда проходит невероятно много времени, прежде чем метод перебора сработает.
Поэтому ввод паролей следует ускорить, насколько возможно. Если вам приходится после каждых трех попыток заново устанавливать автоматическую связь с модемом, сначала убедитесь, что данная телефонная линия не обладает возможностями “Touch Tone”.
И еще: прежде чем приступать к атаке с помощью грубой силы, обзаведитесь модемом с самой высокой скоростью передачи, какой вам только удастся найти, даже если для этого придется одолжить его у друзей. Разница всего в несколько бодов значительно увеличивает скорость передачи. отражение атаки
Однажды, когда я был еще подростком, мы всей семьей отправились ужинать в ресторанчик “Попробуйте все”. На самом деле я решил принять участие в походе, чтобы выяснить, сколько же я смогу съесть, но к третьему заказу нас начали утомлять удлиняющиеся периоды ожидания при неуклонно уменьшающихся порциях. Мой отец объяснил это следующим образом:
“Видишь ли, они делают так, чтобы ты не смог съесть слишком много. Ждать еды приходится все дольше и дольше, а самой еды становится все меньше и меньше.” Не знаю, прав ли он был, но немного погодя мы и вправду решили, что не стоит ждать сорок минут, чтобы получить еще одну тарелку с едой.
Для отражения силовых атак специалисты используют тот же самый принцип, что и вышеупомянутый ресторан. Как я уже говорил, при достаточной настойчивости угадать легальную комбинацию имя-пароль, или открыть ее случайно — всего лишь дело времени. Отсюда следует, что предотвратить успешное завершение такой атаки можно, построив системные приглашения так, чтобы хакер устал и бросил свое дело, не доведя его до конца.
Наиболее распространенный способ зашиты — прерывание связи после нескольких неудачных попыток пользователя войти в систему. После этого компьютер может не давать разрешения на повторную связь в течение определенного промежутка времени. Недостаток этого способа в том, что он может причинить неудобство легальным пользователям — хотя уж лучше подождать несколько минут, чем войти в систему и обнаружить, что твои файлы испортил какой-то кракер.
Впервые услышав о социальной инженерии, большинство людей бывают слегка шокированы. Во всяком случае, я был шокирован. При слове “хакер” люди обычно представляют себе страждущего очкарика, который упорно и неустанно просиживает ночами за своим компьютером, в надежде наконец-то найти то самое единственное слово, которое откроет перед ним все технические секреты вселенной. Именно так и обстояли дела в недавнем прошлом, но потом это стало непрактичным. Конечно, грубые методы, вроде метода угадывания паролей путем перебора, представляют собой определенную ценность — ведь они являются основной частью арсенала любого хорошо экипированного хакера. Но пароль можно получить и другими путями; например, с помощью социальной инженерии.
“Социальная инженерия” — это попытка выведать у легального пользователя системы информацию, необходимую для прохождения защитного барьера данной системы. Этот метод еще называют “заболтать оператора”. Социальная инженерия (СИ) может принимать различные формы и обличья. Здесь я приведу некоторые из них. Как вам вскоре станет ясно, для каждого способа существует уйма хитрых уловок и приемов. Некоторые приемы я подвергну рассмотрению, остальные можете додумывать самостоятельно.
благородный метод
Хакеры, которым совесть не позволяет вызнавать пароли с помощью хитростей, все же могут безболезненно прибегать к одному из методов социальной инженерии — вежливо просить: “Ну, пожалуйста...” Лично до меня ни разу не доходила достоверная информация о том, что этот метод сработал, хотя поговаривают о хакерах, которым якобы удавалось узнать пароли, просто попросив об этом системных пользователей. По слухам, в подобных случаях системный оператор обычно получает по телефону или по электронной почте сообщение типа: “Я — хакер. Дайте мне пароль для нижнего уровня доступа, и я постараюсь использовать все свое мастерство, чтобы указать вам на недостатки вашей системы. Тогда вы сможете их исправить и уже не бояться злоумышленников - кракеров”.
Другая разновидность этого метода — позвонить кому-нибудь (кому угодно, хотя бы той же секретарше в офисе), и просто спросить:
— Ой, а что вы набираете по утрам на компьютере, прежде чем приступить к работе?
Может ли это сработать? Что ж, вам потребуется определенная доля везения, чтобы напасть на такого (или такую), кто сыт по горло собственной работой и не особо осведомлен насчет правил безопасности. Минусы этого приема заключаются в том, что обман не всегда удается, а неудача может в дальнейшем осложнить вашу задачу. Лучше призвать на помощь свою актерскую жилку и попробовать разыграть по телефону роль кретина.
хакер в роли неофита
В данном случае вы играете роль нового пользователя. Допустим, вы пытаетесь проникнуть в компьютерную систему какой-либо компании. На часах 8.55 утра. Вы звоните в их компьютерный отдел (из дома, или откуда-нибудь еще) и беседуете с неким сотрудником, представившись ему новым пользователем из другого отдела той же компании.
ЧЕЛОВЕК НА ДРУГОМ KOHЦE ПРОВОДА: Хэлло;
компьютерный отдел, Ажек Чиппер у телефона.
ВЫ: Хэлло, Ажек, это Гари Харрис из отдела исследований. Не могли бы вы помочь мне с одной проблемой?
ДЖЕК: Не исключено... А в чем дело?
ВЫ: Ну, я здесь пока один, и никак не могу начать работу. Может, подскажете, что надо сделать?
ДЖЕК: Разумеется. Компьютер перед вами? ВЫ: Да.
ДЖЕК: 0'кей. Включите красный тумблер на полу. Видите его?
ВЫ: Аа, о'кей. Я вижу... 0'кей.
ДЖЕК: На загрузку уйдет несколько минут.
ВЫ: На что?
ДЖЕК: Ну, на загрузку. Я имею в виду, через одну-две минуты компьютер будет готов к работе.
ВЫ: Остановилось. ДЖЕК: Что вы видите?
ВЫ: То же, что и всегда. Он и раньше все время доходил до этого места, а потом переставал работать. Что мне делать дальше?
ДЖЕК: А что вы обычно набираете?
ВЫ: Не знаю. Я здесь первый день, к тому же временно. Мне сказали, что кто-нибудь все мне объяснит!
ДЖЕК: Хорошо. Нажмите на “ВВОД”. ВЫ: “ВВОД”... Хорошо... Есть. ДЖЕК: Теперь наберите “TEMP”, пробел, “PUPPY” ВЫ: Хорошо... Ну, вот! ДЖЕК: Получилось?
ВЫ: Спасибо, Джек! И почему это у меня раньше не выходило!
Теперь давайте коротко обсудим вышеприведенный разговор.
Приветствуйте своего собеседника в тех же выражениях, что употребил он сам. Это делается для того, чтобы компьютерщику было удобнее разговаривать с вами, а также, чтобы он понял, что вы не боитесь открыто сказать ему (или ей), как вас зовут и какую работу выполняете в компании. Если собеседник представится вам имяреком из компьютерного отдела, сообщите ему, что вы — из исследовательского отдела. Если у вас нет справочника компании, с которым можно свериться, вы не можете точно знать, какой термин употребляют сотрудники для названия своих отделений. Таким образом, лучше всего копировать термины того, кто находится на другом конце провода. Даже если вы сами скорее употребили бы термин “подразделение” вместо “отдел”, тот факт, что вы говорите на языке компании, заставит сотрудника компании отнестись к вам как к себе подобному. Просьба о помощи в том, что касается компьютеров, пробуждает в техниках чувство компьютерного благодушия. Добавьте также, что вам очень любопытно, что же могло случиться с его, компьютерщика, подопечной системой. Выражение “не могли бы вы” вызовет в нем некоторое раздражение — неужели вам неизвестно, как круто он умеет обращаться с компьютерами. Да он просто наизнанку вывернется, лишь бы показать вам все, на что он способен. Грамотным пользователям нравится демонстрировать свое умение (так же, как и вам, не так ли?), особенно техникам, чья работа как раз и заключается в том, чтобы помогать неосведомленным нормально работать. Не забудьте употребить слово “проблема”. Компьютерщики обожают решать проблемы. Стоит намекнуть, что проблемы возникли именно с его системой, и такой тип просто ума лишится: только успевай записывать пароли, которые из него посыпаются!
Помните, в начале я упомянул о времени разговора — 8.55? Не всегда удается позвонить до начала рабочего дня, но имеет смысл постараться сделать именно так. Это даст вам вескую причину для обращения к технику:
ведь вы могли прийти на работу первым, и вам не у кого больше спросить. Но техники редко приходят на работу раньше всех, и такая уловка не всегда срабатывает.
Следовательно, вы можете позвонить в конце рабочего дня. Тогда можно сказать, что все остальные в офисе уже выключили свои компьютеры и отправились по домам, а вот вы никак не можете закончить работу. Когда вы уже заставили собеседника почувствовать себя суперменом, можете смело приступать к сути проблемы, соблюдая все же определенную осторожность, дабы ваши неловкие замечания насчет процедур ввода не спугнули жертву. Ведь когда вы устанавливаете связь с компьютерной системой из дома, все происходит совсем не так, как если бы вы обращались непосредственно к системе. Лучше всего избегать основных вопросов, обрисовав собеседнику суть возникших у вас затруднений. Вопрос “Не могли бы вы объяснить мне, в чем дело” относится к тому, что техник автоматически проделывает каждый день. Вместе с тем, важно попросить собеседника сделать что-то специфическое (например, попросить его рассказать о процедурах установки?), но не настолько специфическое, чтобы оказаться в его глазах подозрительно осведомленным. К примеру, если вы скажете просто: “Не могли бы вы мне помочь?”, он может решить заглянуть в ваш офис, чтобы выручить вас. Так как на самом деле в офисе вас нет, ваш собеседник, само собой, выйдет из игры — к вашему огорчению. Вы должны мысленно представлять себе все те действия, которые вас попросят проделать, поскольку в офисе вас нет. Неплохо иметь под рукой настоящий компьютер, чтобы ваш собеседник (или собеседница) могли услышать, как вы включаете его и что-то набираете на клавиатуре.
ДЖЕК: На загрузку уйдет несколько минут. ВЫ: На что?
Ваш вопрос показывает вашу полную безграмотность в отношении компьютеров. Но не следует перегибать палку, пытаясь доказать, что последние тридцать лет вы провели в пещере. Вопрос вроде “А что такое клавиатура?” может вызвать недоверие, но никак не сочувствие к вашей наивности. Не забудьте, что вы ведете беседу с определенной целью — выведать у собеседника информацию, поэтому постарайтесь не упустить нужный момент. Фраза “Остановилось” поколеблет уверенность техника в нормальной работе компьютера.
Но прежде всего это поможет вам контролировать беседу, подводя ее к логическому завершению.
ДЖЕК: А что вы обычно набираете?
На этот вопрос можно дать ответ “Набираю свой пароль...”, но так недолго и ошибиться. Что, если компьютер, о котором идет речь, подключен только к локальной сети, и защищен не через пароль, а как-то по-другому? Вдруг речь идет всего лишь о приглашении DOS? В таком случае полезно изобразить из себя новичка. Обычно это неплохо срабатывает, разве что всем известно, что компания проводит массовые увольнения сотрудников или близка к банкротству.
Сообщение, что вы работаете временно, может пойти вам на пользу, а может и нет. Временные сотрудники обычно встречаются с местным супервизором, которому сдают отчеты и задают вопросы. Впрочем, техник может об этом и не знать; в любом случае, нетрудно сказать, что супервизор посоветовал вам обращаться за разъяснениями в компьютерный отдел.
ДЖЕК: Хорошо. Нажмите на “ВВОД.
ВЫ: “ВВОД”... Хорошо... Есть.
ДЖЕК: Теперь наберите “TEMP”, пробел, “PUPPY”
ВЫ: Хорошо... Ну, вот!
Ваше “Хорошо” показывает, что вы уже миллион раз проделывали то же самое, но все зря.
Горячо поблагодарите техника за помощь, еще раз дайте ему убедиться в том, что вы хотя и новичок, но все же полноправный сотрудник компании (сказав, что вы не знаете, почему у вас ничего не получалось).
Я привел этот пример, основываясь на сотнях разговоров, которые ведут с компьютерщиками настоящие пользователи, сталкиваясь с подобными проблемами. Меня самого пользователи не раз спрашивали, как произвести какие-то действия, никак не получавшиеся у них самих. Обычно все налаживается после перезагрузки. Как правило, после этого пользователь брюзжит: “Но я же делал то же самое! И ничего не работало!” Не говорите так с вашим техником, дабы не оставить о себе дурного впечатления — этот человек может вам еще пригодиться.
Вот еще один пример того, как хакер может сыграть роль полного простофили в области компьютеров, получив при этом нужную информацию. Когда в офисе инсталлируется новая компьютерная система, рядом с терминалами часто приклеивают телефонные номера технического отдела компании, чтобы пользователи могли связаться с техническим отделом компании и посоветоваться об обнаруженных недоделках в системе.
Карточка (или просто бумажка с телефонным номером) может также быть приклеена к стене, специально отведенной для важных сообщений, или спрятана за столом клерка либо под его стойкой. Постарайтесь вывернуть шею и прочесть, что там написано (или попросите кого-нибудь, не обязательно же делать все тайком!).
Допустим, занимаясь неким отделом страховой компании, вы решили позвонить некоему компьютерщику Фрэнку Смиту. Наберите номер и произнесите следующее: “Привет, это Лорин из страховой компании (...) .У нас тут начала твориться какая-то ерунда с компьютерами, мне пришлось их выключить, и теперь я не знаю, что делать...”. И вам все расскажут.
хождение во власть
Если у вас не та ситуация, чтобы заставить техника почувствовать себя Господом Богом, возможно, настало время вам самим превращаться в божество. В военных структурах, разыграв роль офицера высокого ранга, можно вселить страх в сердце любого из тех, кто рангом пониже. Наберите номер и сообщите, что вы либо сам генерал, либо его личный секретарь. Вы оба (генерал и секретарь, или наоборот) просто вне себя от ярости, оттого что ваш компьютер не работает как следует. Вам необходимо знать, почему в компьютере отсутствует ваш пароль и бюджет. Не следует жаловаться или что-то объяснять — просто гневно настаивайте. И результаты не заставят себя ждать. В компании иногда полезно представиться генеральным директором или президентом, либо секретарем одного из вышеозначенных лиц, особенно если глава данной организации славится своим вспыльчивым характером. Никому не хочется, чтобы его уволили или понизили в должности. Гневный тон полезен потому, что человек, снявший трубку, сделает все, лишь бы только избавиться от вас. Впрочем, президентам, начальникам, военным чинам и т. д. необязательно гневаться. Просто сообщите имя того, за кого вы там себя захотите выдать, и вам поверят (кто же осмелится выдавать себя за генерала Такого-то?). Но если вы разыгрываете из себя большую шишку и при этом не гневаетесь, не забудьте произвести предварительные исследования, дабы знать, что представляет собой этот босс.
Вот пример такого диалога:
ЧЕЛОВЕК НА ДРУГОМ KOHЦE ПРОВОДА: Добрый де...
ВЫ: “Говорит генерал Фроббс. Ваша бесцеремонность меня просто потрясает! Я отсутствовал в течение двух дней, а вернувшись, обнаружил, что меня нет в компьютере! Кто у вас отвечает за эти компьютеры? Что за наглость! Я настаиваю, чтобы мой бюджет был восстановлен! У меня там много важнейших документов!”
СОБЕСЕДНИК: А вы пробовали набрать “GROUP.1 ”, “SEC”? Это должно сработать.
ВЫ: К черту эти групповые коды! Верните мне мой личный бюджет! Что за наглость!
СОБЕСЕДНИК: К сожалению, я не смогу помочь вам с вашими личными кодами. Может быть, мне найти кого-нибудь, кто сумеет помочь вам?
Заметьте, в данном примере вам удается добыть комбинацию имя,пароль, которое дает вам хоть какое-то право доступа. Даже если ваш собеседник и не подумает искать генеральский пароль, у вас в руках уже есть доступ к системе, и не один, а несколько. Ведь если существует GROUP.1, то существует и GROUP.2, верно?
хакер в роли ПОМОЩНИКА
Этот вид разыгрывания роли подобен обратной социальной инженерии без диверсий. Вы делаете вид, что с компьютерами данной организации что-то случилось, а вы — техник, которого вызвали, чтобы устранить неполадку.
Допустим, вы хотите проникнуть в компьютеры, расположенные в офисе мэрии. Вы звоните секретарю мэра и сообщаете ей что-то вроде:
— Здравствуйте, это Джейк МакКоннел из отдела компьютерного обслуживания. Мы хотели бы знать, нет ли у вас проблем с компьютерной системой?
Естественно, хоть какие-то проблемы подобного рода у нее были — с компьютерами вечно возникают какие-то проблемы!
— Ну да! — отвечает секретарь. — Сначала случилось вот так, а потом — вот эдак...
— Именно! — говорите вы. — Вот это оно самое и есть! Вашей вины здесь нет — что-то произошло с компьютерами, и сейчас мы пытаемся установить причину неполадки. Когда вы включаете компьютер, что вы набираете на клавиатуре перед тем, как начать работу? Один из наших вчера пытался разобраться, что случилось, и решил, что, по-видимому, все дело именно в этом.
Секретарь ничего не заподозрит — в конце концов, ведь вы же назвали свое имя. А если и нет, что плохого в том, что она скажет по телефону пароль?
Секретарь, равно как и любой другой малооплачиваемый, загруженный работой неквалифицированный пользователь, является слабым звеном в цепочке компьютерной безопасности. Секретари не разбираются в компьютерах, и разбираться в них не желают. Они знают лишь одно: что-то не так, а вы собираетесь навести порядок. Этот план весьма эффективен.
Часы пик
Не используйте данный план ранним утром, или в околообеденное время — в эти часы он может не сработать должным образом. Приступайте к нему тогда, когда рабочий день достигнет своей точки кипения.
Если вы можете свободно попасть туда, где расположены компьютеры с интересующей вас системой, — это может быть библиотека, стоматологический кабинет, банк или школа, — проведите некоторые исследования, чтобы выяснить, когда наступает наилучшее время для вашего звонка.
В одной из библиотек, куда я захаживал, каждый день около трех часов пополудни компьютерная система внезапно начинала работать вполовину обычной скорости. Это вело, в свою очередь, к значительным затруднениям в работе библиотекарей. Возможно, в три часа дня число пользователей достигало критического уровня, или же в это время информация была вынуждена идти по альтернативному маршруту к мэйнфрэйму, расположенному в колледже на другом конце города. И если бы я решил заняться социальной инженерией в библиотеке, я начал бы именно в это время, когда скапливалось большое количество проблем. Те посетители библиотеки, которые не знали об этой особенности местных компьютеров, звонили в компьютерный зал колледжа и спрашивали, что случилось. Как вы думаете, неужели им не было бы приятно в один прекрасный день получить звонок из “компьютерного зала” (т. е., от меня или от вас), и услышать предложение о помоши? Конечно же, они бы с радостью рассказали бы вам о своих процедурах входа, лишь бы компьютеры заработали быстрее!
Компьютеры обычно работают медленнее всего в середине рабочего дня, когда в сети находится наибольшее количество пользователей.
Это особенно ощушается в университетах. Утром в систему загружается небольшое количество студентов и преподавателей, которые не отключаются в течение всего дня, независимо от того, работают они в системе, или нет. С другой стороны, многие системы начинают быстрее работать днем, так что предварительные исследования вам все-таки необходимы. Следует заранее знать о тенденциях к отклонениям скорости компьютеров там, где вы собираетесь заниматься социальной инженерией. Если' вам удастся обнаружить значительное отклонение скорости (как в той библиотеке), вы, естественно, захотите пустить в ход ваши способности в это самое время.
Это необязательно должны быть отклонения скорости компьютеров; если в определенный промежуток времени критически нарастает загруженность работой, уровень шума, число посетителей и т. п., такое время тоже хорошо подходит для социальной инженерии.
Чтобы обнаружить такие промежутки времени, посетите избранный вами офис несколько раз в течение дня, и посмотрите, когда сотрудники заняты больше всего. Если это библиотека, или туристическое агентство, сходите туда или сделайте несколько телефонных звонков. Спросите о чем-либо, и, если они испытывают некоторые затруднения при поиске нужной информации на компьютере, перезвоните туда уже как сотрудник компьютерного отдела.
Офисы обычно бывают перегружены после одного-двух нерабочих дней, так что имеет смысл начинать в понедельник. Но сотрудники не должны быть настолько заняты, чтобы вообще не отвечать на телефонные звонки.
Конечно, метод социальной инженерии годится для любой системы. Но бывает гораздо проще надуть юную кассиршу в банке, нежели администратора системы в местном колледже. Социальная инженерия с успехом использовалась для получения доступа к корпоративным сетям, научным, правительственным и другим системам. Это мощное оружие, но, прибегая к нему, надо быть хорошим актером.
дгугие советы
Если это возможно, вначале проведите исследования. Постарайтесь узнать как можно больше о часах пик и о том, какого рода проблемы возникают при использовании данной системы.
Если вашей целью является, например, библиотека, разузнайте, кто из сотрудников совсем не разбирается в компьютерах. Попытайтесь поговорить с ними по телефону. Убедитесь в том, что вы верно называете себя — такой-то из компьютерного отдела (или подразделения, или сектора; используйте терминологию собеседника). Придумайте заурядное, часто встречающееся имя и такую же фамилию. Если вам не удастся получить входную информацию с первого раза, попытайтесь еще раз — в другое время, в другой день. Но не звоните два раза одному и тому же человеку.
Однажды мой друг, Билл, позвонил на фирму по распространению электронного оборудования и случайно услышал, как женщина, принимавшая его заказ, пожаловалась на то, что компьютеры отказали и ей приходится все делать от руки, в то время как в других частях здания все было в порядке. Повесив трубку, Билл тут же снова позвонил туда, попав к другому оператору. Представившись Биллом Робинсо-
ном из компьютерного отдела, он посоветовал оператору включить неработающие компьютеры и набрать на клавиатуре “всю ту ерунду, что вы обычно набираете после включения”. Биллу удалось выведать у нее всю необходимую информацию. Когда оператор закончила “загрузку” (безрезультатно, разумеется), Билл со вздохом произнес: “Ну что ж, дело хуже, чем я предполагал. Пойду еще покопаюсь. Спасибо за по-мошь.” Таким образом, Билл узнал, как войти в компьютерную систему “Shark Radio Supplies”, и вдобавок завел там знакомство, которое могло пригодиться ему при дальнейших исследованиях.
примеры СИТУАЦИЙ, ВОЗНИКАЮЩИХ ПРИ СОЦИАЛЬНОЙ инженерии
Занимаясь социальной инженерией, вы нередко будете попадать впросак, особенно вначале. Ведь вы будете разговаривать с секретарями и другими членами компании, которые отлично знакомы с реалиями своей “конторы” и вполне способны заметить обман. Вам станут задавать вопросы, на которые вам будет непросто ответить немедленно. Вот несколько примеров такого рода.
СЕКРЕТАРЬ В ПРИЕМНОЙ: Так вы Чарльз Грин? Но в нашем компьютерном отделе нет никакого Грина.
ВАШ ОТВЕТ: Я работаю здесь всего несколько дней.
СЕКРЕТАРЬ: Интересно, почему же это я не видела вашей фотографии на доске объявлений о найме новых сотрудников?
ВАШ ОТВЕТ: Вы правы. Она... как ее там... еще не успела приклеить мою фотографию. Может быть, после обеда...
СЕКРЕТАРЬ: То есть как это — она? Этим всегда занимается Джек.
ВАШ ОТВЕТ: Ах да, правильно, Джек!
СЕКРЕТАРЬ: Я ничем не смогу вам помочь, пока вы не сообщите ваш идентификационный код сотрудника.
ВАШ ОТВЕТ: О, у меня его нет. Я здесь временно. Заменяю сотрудницу, ушедшую в декретный отпуск.
СЕКРЕТАРЬ: Просто прочтите код на вашем идентификационном значке.
ВАШ ОТВЕТ: У меня еще нет значка... тут произошла какая-то путаница, и супервизор сказал, что я, наверное, получу его завтра. Вы же знаете, у них там вечно какая-то ерунда происхо...
СЕКРЕТАРЬ: Кто ваш супервизор?
ВАШ ОТВЕТ: N. Вы знаете что-нибудь о нем (о ней)? (Если вы провели предварительные исследования, вы должны знать ответ на этот вопрос. Если ответа вы не знаете, а компания большая, вы можете выдумать общеупотребительное имя или прибегнуть к старой уловке: “Хм... Кажется, на 'Ш'—Шиндлер? Шиффер?”)
А вот другая ситуация:
СЕКРЕТАРЬ: Но у меня нет компьютера!
ВАШ ОТВЕТ: Простите, я, должно быть, ошибся. Могу я поговорить с N.? (N. — имя босса).
Если вам удастся незаметно собрать новости и слухи, циркулирующие в компании, используйте данную информацию в беседе, если, конечно, собеседник настроен дружелюбно. Это еще один способ завоевать доверие.
ВЫ: Кстати, вы не знаете, нет ли у N. сына в Лиге малышей? У моего сына есть друг по имени...
Но не забудьте — такие вопросы лучше задавать до того, как вы начнете расспрашивать о процедурах входа.
РАЗНООБРАЗНЫЕ советы по социальной ИНЖЕНЕРИИ
Вот еще несколько советов для обеспечения успешных занятий социальной инженерией.
Обращайте внимание на то, как собеседник реагирует на ваши вопросы. Если вы разговариваете с секретарем, или другим сотрудником, занимающим одну из нижних ступеней на лестнице зарплаты, он (или она) может не захотеть болтать с вами о компьютерах, если его (или ее) контролируют, либо если звонки прослушиваются боссом.
Зайдите в какое-либо доступное вам место с подключенными терминалами, и взгляните на стену, туда, где терминал подключается к телефонному щитку. Найдите на щитке четыре цифры и спишите их (это четыре последних цифры телефонной линии, к которой подключен терминал). Остальные три цифры можно узнать по соответствующему каталогу. Затем в течение нескольких дней набирайте этот номер по несколько раз в день, дабы убедиться, что линия всегда занята. При занятиях социальной инженерией такие “взятые напрокат” телефонные номера следует держать под рукой, чтобы давать тем людям, которые захотят вам перезвонить. Как правило, это операторы систем, которые подозревают в вас хакера и хотят убедиться, что вы без опаски можете дать им информацию о себе. Давать такие номера лучше, чем выдумывать, поскольку если телефон будет просто занят, это даст людям хоть какую-то уверенность в вашей честности. Уже одно то, что вы даете им свой номер, может рассеять их подозрения.
Когда человек дает вам свой пароль, ему надо мягко возразить: “А вы уверены, что вы действительно используете именно это?” У секретарей может быть два пароля: один — их собственный, который дает им доступ к групповому бюджету нижнего уровня, а другой — пароль более высокого уровня, принадлежащий боссу (секретарь знает этот пароль, так как секретари действительно знают об организации все). Разоблачающим тоном расспрашивая кого-либо о сообщенном вам пароле, вы можете заставить человека пойти на попятную, если он решил дать вам неверный пароль, и таким образом от вас отделаться. У него создастся впечатление, что вы и так знаете верный пароль, и хотите уличить его во лжи. Если при упоминании пароля более высокого уровня собеседник приходит в замешательство, скажите: “Неужели вам до сих пор не повысили уровень доступа? Только что куплена новая система, которая может работать в пятьдесят раз быстрее. Все ее так хвалят...”. Затем быстро перемените тему разговора.
Прежде чем сделать звонок, обзаведитесь соответствующей звуковой дорожкой, которая будет звучать на заднем плане.
Перед этим наведайтесь в компанию и запишите их обычный рабочий звуковой фон. Дайте прослушать пленку по телефону своему другу, и сами тоже прослушайте ее по телефону, чтобы определить нужную громкость звучания. Но помните, что если вы решили сыграть “нового пользователя, пришедшего на работу раньше всех”, пленка с записью болтовни и печатающего принтера вам не пригодится!
Беседуя с людьми, даже по телефону, старайтесь все время улыбаться; ведите разговор дружелюбно и непринужденно. Если собеседник снимает трубку со словами вроде: “Здравствуйте, это корпорация ..., Лу-лу у телефона”, скажите: “Привет, Лулу! Это...”, и начинайте вашу проникновенную речь. Теперь Лулу будет тщетно вспоминать, не встречались ли вы раньше, и, если вы продолжите беседу с ней в том же духе, она потихоньку начнет воспринимать вас как друга.
Можно почерпнуть какие-то идеи из пособий по подражению голосам. Линия, по которой поступил ваш звонок, тоже может повлиять на ваш успех. Во многих компаниях телефон сортирует звонки на внешние и внутренние. Если вы притворяетесь, будто звоните по внутренней линии, ваш звонок должен отразить это. Позвоните в другой отдел той же компании, скажите им, что ошиблись номером, и попросите соединить вас с нужным вам отделом. Например:
СОБЕСЕДНИК: Отдел рекламы. Чем могу быть полезен?
ВЫ: Извините, я, кажется, неверно набрал номер. Не могли бы вы соединить меня с 4358?
Теперь ваш звонок автоматически становится внутренним, а у вас появляется какой-никакой авторитет (а может быть, на телефоне даже зажигается специальный внутренний сигнал). Еще один способ смоделировать внутренний телефонный звонок — набрать не тот номер, что указан в каталоге, а другой, отличающийся от указанного на одну цифру. Почти любая организация с собственной телефонной линией обычно располагает блоком телефонных номеров. Так, если в каталоге указан номер 123-4567, попытайтесь набрать 123-4568, и т. д. Такие звонки, если они проходят, могут создать впечатление, что звонит кто-то из своих — посторонний набрал бы номер из каталога.
Следует учесть, что, если вы пытаетесь добраться до одного из начальников корпорации, вы можете так и не пройти дальше его секретарей и других подчиненных. Неплохо бывает позвонить в офис того же или более высокого уровня, что избранный вами, и попросить секретаря соединить вас с искомым. К примеру, я собираюсь опробовать свои методы социальной инженерии на мистере Палука — менеджере среднего уровня, занимающегося обувным отделом. Но мне никак не удается поговорить с ним лично. Тогда я звоню мистеру Колту, менеджеру того же или более высокого уровня, и прошу его секретаря соединить меня с мистером Колтом лично. Секретарь спрашивает, по какому поводу я хотел бы поговорить с Колтом, и я отвечаю: “Обувь!” Но мистер Колт занимается не обувью, а резинками для трусов. Поэтому секретарь отвечает: “Об этом вам следует поговорить с мистером Палука; соединить вас с ним?” И она передаст ваш звонок секретарю мистера Палука, которому вы скажете: “Здравствуйте. Это такой-то. В офисе мистера Колта посоветовали мне поговорить с мистером Палука насчет обуви.” Это уже рекомендация, исходящая от другого сотрудника компании. Теперь вам станет проще добраться до мистера Палука.
другие Роли
Основной частью социальной инженерии является получение групповых или личных паролей путем разыгрывания роли по придуманному вами сценарию в надежде на то, что ваш собеседник подыграет вам. Но целью социальной инженерии необязательно являются пароли, и переговоры могут вестись не по телефону, а лично, либо по электронной почте. Личные переговоры требуют сильных нервов и незаурядного актерского мастерства, электронная почта больше подходит для тех, кто испытывает трудности с СИ (социальной инженерией) по телефону.
непосредственная инженерия
Любое исполнение какой-либо роли является формой социальной инженерии. Это может быть перевоплощение во вполне конкретную личность (например, президента компании, который желает знать, почему не работает его пароль), или же абстрактную (техник имярек, который звонит, чтобы узнать, не возникло ли каких-нибудь проблем с компьютерами).
При этом, как правило, используется телефон — во-первых, потому, что он дает возможность хакеру вести переговоры с удаленными пунктами, не выходя из дома, а во-вторых, телефон создает защитный барьер между хакером и его собеседником. Если беседа идет не так, как планировалось, можно повесить трубку; но если вы теряете контроль над разговором, который ведете лицом к лицу, вам нелегко будет выпутаться из этой ситуации.
Для практических занятий непосредственной социальной инженерией (т. е. лицом к лицу) существует одно неплохое правило: всегда надевать приличный костюм, который хорошо на вас смотрится. Вы должны выглядеть так, словно только что вышли из модного ателье. На худой конец, наденьте рубашку и галстук. Для женщин подойдет любая одежда в деловом стиле.
Многие методы СИ, которые срабатывают по телефону, не годятся для личной беседы. Вы не сможете притвориться, что звоните из офиса, сидя рядом с компьютером. Поэтому информация, полученная таким образом, будет минимальной, либо малоценной. Возможно, у вас появится больше вспомогательных сведений, чем необходимой на данный момент информации. Делая вид, что ищете работу в фирме, совершая экскурсию, или даже просто проникая в здание и бродя по нему в одиночестве, можно получить много полезной информации о взаимоотношениях сотрудников. Чтобы проникнуть в компанию, хакеры также часто притворяются ремонтниками, малярами и другими рабочими. Сыграть роль охранника—тоже неплохая выдумка. Прототипом непосредственного “социального инженера” можно взять социолога, который делает опрос. Вы стоите у входа в здание с ручкой и анкетой, и просите проходящих мимо людей заполнить для вас одну ячейку. “Социолога” интересуют имена сотрудников, их жен и мужей, их хобби, домашние животные и их клички, и тому подобная информация. Придя домой, попробуйте ввести всю эту информацию в качестве паролей. Вы можете возразить, что за заполнение анкеты полагается какой-нибудь приз. Что ж, анкеты могут, к примеру, разыгрываться в лотерее, а выигравшие получат билеты на какое-нибудь местное шоу или бесплатный визит в близлежащий ресторан. (Примечание: не приставайте к людям с анкетами по утрам, когда они спешат на работу).
Заниматься социальной инженерией можно по электронной почте или с помощью других видов контакта с пользователями. Например, если вам не хочется целый день торчать с авторучкой у входа в здание, вы можете просто оставить бланки анкет рядом с письменным ящиком или указать на них адрес электронной почты, по которому их следует переслать. Но много ответов не ждите.
Другие уловки эпистолярной инженерии принимают вид рекламы. Наклейте в компьютерном зале объявление о найме добровольцев для работы над специальным проектом. “Требуются системные менеджеры с опытом работы!” Попросите желающих заполнить почтовые карточки с именем, адресом, желательным паролем, и, возможно, типом компьютера, с которым клиент предпочитает иметь дело. Создавая такую рекламу, вам захочется сказать себе “Т-с-с-с! Это слишком явная ложь!”. Но вы не поверите, сколько людей попадается на эту удочку. Напишите, чтобы они посылали свои почтовые карточки по адресу вроде: “Университет X, отдел компьютерной техники, кабинет Роджера Хэмма”, далее укажите свой адрес. Но если вы живете в тридцати милях от настоящего университета — забудьте об этом.
Однажды двое манхэттенских хакеров заметили, что в одном из журналов после рекламы популярной информационной системы с данными об играх осталось свободное место. Они набрали в библиотеках как можно больше журналов с этой рекламой и вставили в пустой промежуток, напечатав на принтере, следующее сообщение: “Региональные резиденты Манхэттена! Звоните (телефонный номер). Свободное членство в течение шести месяцев!” Затем журналы были возвращены в библиотеку. Когда люди звонили по указанному номеру, им включали следующую запись: “Добро пожаловать в программу свободного шестимесячного участия в сети X! Послушайте, какие потрясающие веши можно проделывать в нашей сети!..” После этого один из хакеров задавал звонившему несколько вопросов: “Где вы услышали о нашей программе?”, “Не присоединялись ли вы ранее к сети X?”, “Какими еще платными BBS или компьютерными сетями вы пользуетесь?”, “Под каким именем вы хотели бы входить в сеть X?”, “А каков будет ваш секретный пароль?”, “А вы уверены, что сможете запомнить такой пароль? Может быть, выберете другой?”.
Действуя по этой схеме, они получили десяток имен для входа в компьютеры, и парочку паролей. Если вы живете в небольшом городке, такого улова у вас не наберется, но попробовать все равно стоит.
Можно также вклеить напечатанную карточку с рекламой прямо в журнал или поместить рекламу на BBS. Подобная же уловка заключается в распространении вашего номера в качестве локального переключателя звонков. Это может весьма пригодиться, если в ваших краях пока отсутствует связь Telenet или Tymnet. При загрузке пользователи увидят обычный открывающийся экран, хотя на самом деле это будет ваша модель программы. Занимаясь хакерством, вы, видимо, узнали адреса различных сетей, и сможете программно смоделировать любой подходящий входной экран. В противном случае отвечайте сообщениями вроде: “Линия занята” либо “Не удается установить связь”. В этой ситуации важным бывает правильно установить таймерные задержки, соответствующие обычным задержкам в сети.
После “соединения” с компьютером или сетью моделирующая программа продолжает работать: она запрашивает у пользователя имя и пароль, а затем “вылетает” из-за помех на линии или какой-либо другой неприятности. Если пользователь пытается тут же вызвать ее снова, можно сделать для него сообщение, что, дескать, пути передачи данных подвергаются перепроверке, или любую подобную чепуху.
Требование информации
А теперь давайте вернемся к чистой социальной инженерии, проводимой по электронной почте... Не ленитесь просматривать все компьютерные газеты и журналы, даже самые никудышные, в поисках информации о недостатках программных продуктов и лазеек в их безопасности. Журналистский кодекс чести вообще-то запрещает публикацию опасных секретов, так что точного описания ошибок в обеспечении безопасности систем вы не найдете. Вам будут попадаться заметки типа: “Вчера были пойманы четыре хакера, нашедшие лазейку в программе Х на машине Y военной базы Z”. Или: “Компания Y опубликовала предупреждение о недостатках выпушенного ею элемента Z, который создавался для зашиты системы от проникновения в нее нелегальных пользователей...” Вы можете сделать следующее: отпечатайте некое псевдоофициальное заявление и отправьте его по электронной почте той самой компании, а ответ не заставит себя ждать.
Содержание может быть приблизительно таким:
Уважаемый м- р Абель Джонс! До меня дошли сведения о серьезных недостатках вашей продукции, а именно элемента Z. Я веду свои дела, полагаясь на то, что наши данные находятся в полной безопасности благодаря элементу Z.
Увидев, как мы обманывались в течение шести лет, я хотел бы получить от вас следующее: подробное описание изъянов, делающих ненадежным использование элемента Z, либо компенсацию за шестилетнюю эксплуатацию двенадцати непригодных элементов Z, что составит 14 000 $.
Жду вашего скорейшего ответа.
Заявление может также быть выполнено в духе “давайте поработаем вместе, чтобы улучшить этот мир”:
Уважаемый м-р Абель Джонс!
Я был весьма огорчен, увидев в номере “Computer Magazine” за пятницу информацию о дефектах, обнаруженных в вашем элементе Z.
На моем предприятии используется двенадцать таких устройств, и мне бы очень не хотелось потерять наши данные из-за их непригодности. Пожалуйста, вышлите в заклеенном конверте объяснение данной проблемы, чтобы мои техники могли устранить неполадки как можно скорее. Спасибо за помошь.
Искренне ваш...
Одно из этих посланий написано угрожающим тоном, другое — нет. С одной стороны, вам не хочется, чтобы ваше письмо посчитали липовым. С другой — данная компания наверняка получит множество писем подобного содержания, большинство которых будут отнюдь не подделками. Чтобы у вас не возникло проблем, напечатайте письмо на качественной бумаге, с настоящим или выдуманным бланком наверху.
Для пущего эффекта напечатайте адрес на конверте, а вместо того, чтобы наклеивать марку, пропустите конверт через почтовый счетчик. Можно дополнительно вложить визитку собственного сочинения — их можно недорого заказать. Если компания отказывается помогать вам без подтверждения сделанной у них покупки, — что ж, вы ничего не теряете. Вы всегда можете попытаться подвергнуть социальной инженерии техников данной компании, дабы выведать у них секреты безопасности. Вдобавок существует много ассоциаций и организаций по компьютерной безопасности, которым известны подробности допущенных ошибок.
Можно попытаться узнать детали, написав в тот журнал, который напечатал статью об “элементе Z”. Постарайтесь встретиться с автором этой статьи. Журналистов и газетчиков обычно на удивление просто поймать по телефону, но заполучить их для разговора — это другое дело!
послание свыше
Уважаемый пользователь! Я вынужден сообщить вам неприятную новость. Являясь директором PinkyLink, самой крупной информационной службы Америки, работающей в режиме онлайн, я был шокирован, узнав о том, что шестого июля сего года имело место незаконное хищение нескольких файлов с именами пользователей. После нелегального копирования оригиналы были уничтожены. Одна из записей содержала, помимо всего прочего, закрытые личные данные небольшого количества наших клиентов. Хотя, к счастью, вашего имени не оказалось на похищенных файлах, все же определенная опасность для вас существует. На данный момент мы не можем сказать, содержались ли в похищенных файлах данные о каких-либо пользователях с программистским уровнем доступа, или нет. Таким образом, мы предлагаем вам заполнить приложенную анкету и незамедлительно выслать обратно по почте конверте. Мы берем на себя все ваши почтовые издержки. Оплаченный конверт с нашим адресом прилагается.
Заполнив анкету, верните ее, пожалуйста, как можно скорее. При получении мы создадим вам новый секретный ID.
Спасибо за поддержку.
В качестве компенсации за причиненные неудобства мы вычтем 75% из вашего счета за август.
Имя ______________________
Адрес ______________________
Индекс
Рабочий телефон Домашний телефон Старый (непригодный) пароль Новый (измененный) пароль
PinkyLink, самая большая информационная служба Америки, гарантирует, что вновь присланные личные данные будут введены не позднее 19-го сентября сего года. Конфиденциальность гарантируется до и после означенного срока. Просьба сохранить для себя копию или оригинал данного сообщения.
Представьте себе абстрактного пользователя, получающего по электронной почте такое вот послание. Выглядит послание настоящим, имеет logo и бланк соответствующей службы, пришло в запечатанном конверте.
Но поверит ли пользователь, что послание сие ему действительно отправила служба PinkyLink? Складывается совершенно абсурдная ситуация! Любая настоящая компьютерная служба, у которой возникли
проблемы с паролями, станет осуществлять обновление всех паролей в режиме онлайн. Ведь это самый простой и дешевый способ обновить сотни или даже тысячи файлов с пользовательской информацией. Тем не менее, глядя на письмо, получивший его пользователь осознает, что он сам не находится в непосредственной опасности, в отличие от тех несчастных, чьи пароли были украдены; ему не придется получать по электронной почте громадные счета за кого-то, кто нелегально подключится к его, пользователя, бюджету. А как насчет упомянутых в конце 75%? Узнав про них, пользователь ответит на письмо в два раза быстрее. Он почувствует себя обязанным не только вновь сделать свой бюджет безопасным, но и обязанным перед базой данных: если уж они так любезно предупреждают его об опасности, да еще и платят, надо же хоть чем-то их отблагодарить. А оплаченный конверт с обратным адресом! Конечно, PinkyLink, скорее всего, меняет пароли пользователей и в режиме онлайн, но упоминать об этом в письме вовсе необязательно. Помните, что в посланиях подобного рода стиль имеет большее значение, нежели содержание. Прежде чем отправлять подобное письмо, потрудитесь взглянуть на экземпляры настоящей корреспонденции PinkyLink, чтобы получить представление о том, какую бумагу, шрифт и т. д. лучше использовать. На эту удочку обычно попадается довольно много народа, особенно если ваши адресаты — абсолютные новички. Позднее мы еще поговорим о том, как можно с пользой понаблюдать за BBS.
неприятности в раю
Ведя переговоры с крупной корпорацией, или заставляя людей посылать вам по электронной почте
свои пароли, вы можете нарваться на крупные неприятности. Почтовое министерство расценивает подобную деятельность как почтовое мошенничество, даже если вы всего-навсего собирались пошутить. Я привел здесь эти идеи лишь для того, чтобы стимулировать ваше воображению, вовсе не собираясь провоцировать вас на незаконные действия.
При занятиях социальной инженерией существует множество причин, по которым ваш собеседник может отказаться снабдить вас секретными данными. Он может:
• быть предупрежден об утечках информации;
• знать о тактике социальной инженерии;
• не поверить, что вы тот, за кого себя выдаете;
• знать, что вы не тот, за кого себя выдаете;
• не иметь причин помогать вам, и дать вам неверную или вводяшую в заблуждение информацию;
• доложить о вас менеджеру по безопасности. По любой из перечисленных причин человек, у которого вы пытаетесь выудить данные, может не суметь или не захотеть сообщить вам пароли и другую нужную вам информацию. А вы сами, прочитав все вышесказанное, стали бы выбалтывать секретные сведения неизвестному по телефону? Вот в чем проблема. Каково же ее решение?
обратная социалогия инженерия
Обратная социальная инженерия (или просто ОСИ, или даже ОИ) является довольно рискованным предприятием с переменной эффективностью и пригодностью в различных ситуациях. Впрочем, результаты, которые дает ОСИ, бывают настолько потрясающими, —
а порой столь же забавными — что данный способ ярко выделяется среди остальных методов взлома зашиты систем. Дело в том, что, хотя социальная инженерия представляет собой признанный и проверенный метод получения нужной информации, она имеет свои недостатки. Не бывает совершенных систем, и список в конце предыдущей главы наглядно показывает, что социальная инженерия срабатывает не всегда. ОСИ по многим критериям предпочтительнее СИ. Впрочем, применять обратную СИ можно лишь в некоторых ситуациях, после длительной подготовки и предварительных исследований. Вдобавок, настоящая обратная инженерия может с успехом применяться только самыми хитроумными (и легкими на подъем) хакерами. Не думайте, что эта техника станет вашим основным методом сразу, как только вы начнете знакомиться с миром компьютерных правонарушений. Обратная СИ в своих наиболее совершенных проявлениях требует информации, которой вы пока не располагаете, и уловок, с которыми вы пока что не знакомы.
Вот сравнительный список, показывающий некоторые “за” и “против” обоих методов.
Социальная инженерия: вы совершаете звонок, зависите от собеседника.
Обратная социальная инженерия: собеседник совершает звонок и находится в зависимости от вас.
Социальная инженерия: вы чувствуете себя в долгу перед ним, либо он может поверить в это и повести себя соответственно.
Обратная социальная инженерия: принимая вашу помошь и советы, он отблагодарит вас, если в будущем вам понадобится помошь.
Социальная инженерия: вы нуждаетесь в его помощи.
Другой способ заключается в постепенном замедлении времени ответа на каждую новую попытку входа. Начинающий хакер может обнаружить, что ответ от удаленного компьютера приходит к нему через тридцать секунд... затем через минуту... затем через две... Периоды ожидания начинают увеличиваться только после трех или четырех неудачных попыток входа. Компьютер говорит сам себе: “Черт возьми, ни один нормальный пользователь не смог бы ошибиться столько раз. Наверно, это хакер!”
Еще одна хитрость — ложное приглашение ко входу в систему. После определенного количества неудачных попыток входа система продолжает запрашивать входную информацию, но каждый раз возвращает сообщение об ошибке, независимо от того, верна данная информация, или нет.
Отсюда следует мораль: при написании программы для взлома паролей не забудьте о выводе результатов на экран по мере продвижения. Не следует запускать программу на всю ночь и ложиться спать, не убедившись сперва, что в данном случае не имеют места подобные меры безопасности. Ведь проснувшись утром, вы можете обнаружить, что время ответа компьютера на ваши попытки входа составляет сорок минут. Или же программа безуспешно переберет все возможные комбинации, отвечая на ложные приглашения.
заключение
Значительная часть данной главы повествует о различных “вероятных” паролях, которые перебираются по ходу грамотной силовой атаки перебором.
Наиболее часто встречающиеся пароли можно перечислять ао бесконечности — имена домашних питомцев, исторические даты, названия книг — не говоря уже о том, что все они могут быть написаны с пропущенными гласными, задом наперед и в виде различных анаграмм.
Порой и думать не приходится о со- крашении числа возможных паролей до нескольких, так как ваше “сокращенное” число окажется таким же бесконечным, как и то, которое вы пытались сократить. Кроме того, пароль может быть “легким” для угадывания и в то же время достаточно тайным, чтобы отбить у вас охоту его отгадывать. Пароль “Смит” не является особенно тайным, равно как и пароль “Ажонс”, но пароль “Смит@°Джонс” вполне отвечает требованиям секретности.
Сторонним наблюдателям кажется, что угадывание паролей как раз и является основным занятием хакеров, но на самом деле это лишь начальный этап взлома.
“Атаки перебором” лучше всего удаются компьютерам и к ним лучше всего прибегать тогда, когда для получения права доступа необходим компьютер (в качестве примера можно привести Роберта Морриса с его компьютерным “червем”).
Дело в том, что хакерское дело целиком зависит от знаний и мастерства. Метод перебора имеет мало общего и с тем, и с другим. Но никто не посмотрит сверху вниз на хакера, который грамотно проводит силовые атаки, особенно если у него есть на то веские причины. Но не надейтесь, что электронный мозг сделает за вас всю грязную работу: используйте лучше творческие возможности своего собственного мозга. О них-то и пойдет речь в следующей главе.