Что же произойдет, когда ваша программа наконец сумеет отыскать подходящие имя и пароль? Когда программа работает, а вы сидите за компьютером, глядя на экран, вам надо как-то узнать о том, что метод грубой силы сработал. Иначе ваша программа продолжит выдавать пароли, а системные операторы, которые теперь уже почти наверняка заметили, что происходит, просто придут в ярость! Программа должна выдавать вам на экран приходящий из удаленного компьютера текст. Как только будет получено что-то дополнительное, кроме приглашений о вводе имени, пароля, пусть программа выведет эти данные на экран и подаст звуковой сигнал. Можно сделать и так, что программа введет команду выхода и выведет на экран найденную комбинацию, чтобы, проснувшись утром, вы сразу же увидели ее.
   Если вам известно, что некий Joe User (абстрактный пользователь) работает на компанию X, можно создать программу для проверки всех комбинаций паролей с пользовательскими именами Joe, User, JUser и Joe User, исключив такие варианты как joe, JOE и joeuse. (Из ваших экспериментов и исследований вы будете иметь какое-то представление о том, какого формата должно быть имя данного пользователя, так что вам не придется перебирать слишком много вариантов). С другой стороны, если вы не знаете имени и фамилии ни одного из сотрудников компании, вам придется либо узнавать их (т. е. просматривать каталоги компании, ежегодные отчеты, газетные статьи, задавать вопросы по телефону, и т. д., и т. п.), либо подвергнуть проверке каждую комбинацию возможных имен. Если вам придется перебирать все имена, не забудьте о женских и иностранных именах. Можно прогуляться в библиотеку, чтобы выяснить, какие имена и фамилии наиболее популярны. Но не забудьте, что вам нужны не современные популярные имена, а те, что были популярными и распространенными двадцать-тридцать лет назад, когда родители давали их теперешним сотрудникам интересующей вас компании.
   Разумеется, для проверки возможных паролей не обязательно писать специальную программу. Если у вас есть в запасе время и терпение, вы можете просто сесть за компьютер и сами вводить имена. Но учтите - это займет куда больше времени, чем нужно компьютеру для взлома с помощью метода перебора.
   Должен заметить следующее: независимо от того, насколько тщательно вы подготовились, всегда проходит невероятно много времени, прежде чем метод перебора сработает. Поэтому ввод паролей следует ускорить, насколько возможно. Если вам приходится после каждых трех попыток заново устанавливать автоматическую связь с модемом, сначала убедитесь, что данная телефонная линия не обладает возможностями "Touch Tone".
   И еще: прежде чем приступать к атаке с помощью грубой силы, обзаведитесь модемом с самой высокой скоростью передачи, какой вам только удастся найти, даже если для этого придется одолжить его у друзей. Разница всего в несколько бодов значительно увеличивает скорость передачи. отражение атаки
   Однажды, когда я был еще подростком, мы всей семьей отправились ужинать в ресторанчик "Попробуйте все". На самом деле я решил принять участие в походе, чтобы выяснить, сколько же я смогу съесть, но к третьему заказу нас начали утомлять удлиняющиеся периоды ожидания при неуклонно уменьшающихся порциях. Мой отец объяснил это следующим образом:
   "Видишь ли, они делают так, чтобы ты не смог съесть слишком много. Ждать еды приходится все дольше и дольше, а самой еды становится все меньше и меньше." Не знаю, прав ли он был, но немного погодя мы и вправду решили, что не стоит ждать сорок минут, чтобы получить еще одну тарелку с едой.
   Для отражения силовых атак специалисты используют тот же самый принцип, что и вышеупомянутый ресторан. Как я уже говорил, при достаточной настойчивости угадать легальную комбинацию имя-пароль, или открыть ее случайно - всего лишь дело времени. Отсюда следует, что предотвратить успешное завершение такой атаки можно, построив системные приглашения так, чтобы хакер устал и бросил свое дело, не доведя его до конца.
   Наиболее распространенный способ зашиты - прерывание связи после нескольких неудачных попыток пользователя войти в систему. После этого компьютер может не давать разрешения на повторную связь в течение определенного промежутка времени. Недостаток этого способа в том, что он может причинить неудобство легальным пользователям - хотя уж лучше подождать несколько минут, чем войти в систему и обнаружить, что твои файлы испортил какой-то кракер.
   Впервые услышав о социальной инженерии, большинство людей бывают слегка шокированы. Во всяком случае, я был шокирован. При слове "хакер" люди обычно представляют себе страждущего очкарика, который упорно и неустанно просиживает ночами за своим компьютером, в надежде наконец-то найти то самое единственное слово, которое откроет перед ним все технические секреты вселенной. Именно так и обстояли дела в недавнем прошлом, но потом это стало непрактичным. Конечно, грубые методы, вроде метода угадывания паролей путем перебора, представляют собой определенную ценность - ведь они являются основной частью арсенала любого хорошо экипированного хакера. Но пароль можно получить и другими путями; например, с помощью социальной инженерии.
   "Социальная инженерия" - это попытка выведать у легального пользователя системы информацию, необходимую для прохождения защитного барьера данной системы. Этот метод еще называют "заболтать оператора". Социальная инженерия (СИ) может принимать различные формы и обличья. Здесь я приведу некоторые из них. Как вам вскоре станет ясно, для каждого способа существует уйма хитрых уловок и приемов. Некоторые приемы я подвергну рассмотрению, остальные можете додумывать самостоятельно.
   Благородный метод
   Хакеры, которым совесть не позволяет вызнавать пароли с помощью хитростей, все же могут безболезненно прибегать к одному из методов социальной инженерии - вежливо просить: "Ну, пожалуйста..." Лично до меня ни разу не доходила достоверная информация о том, что этот метод сработал, хотя поговаривают о хакерах, которым якобы удавалось узнать пароли, просто попросив об этом системных пользователей. По слухам, в подобных случаях системный оператор обычно получает по телефону или по электронной почте сообщение типа: "Я - хакер. Дайте мне пароль для нижнего уровня доступа, и я постараюсь использовать все свое мастерство, чтобы указать вам на недостатки вашей системы. Тогда вы сможете их исправить и уже не бояться злоумышленников - кракеров".
   Другая разновидность этого метода - позвонить кому-нибудь (кому угодно, хотя бы той же секретарше в офисе), и просто спросить:
   - Ой, а что вы набираете по утрам на компьютере, прежде чем приступить к работе?
   Может ли это сработать? Что ж, вам потребуется определенная доля везения, чтобы напасть на такого (или такую), кто сыт по горло собственной работой и не особо осведомлен насчет правил безопасности. Минусы этого приема заключаются в том, что обман не всегда удается, а неудача может в дальнейшем осложнить вашу задачу. Лучше призвать на помощь свою актерскую жилку и попробовать разыграть по телефону роль кретина.
   Хакер в роли неофита
   В данном случае вы играете роль нового пользователя. Допустим, вы пытаетесь проникнуть в компьютерную систему какой-либо компании. На часах 8.55 утра. Вы звоните в их компьютерный отдел (из дома, или откуда-нибудь еще) и беседуете с неким сотрудником, представившись ему новым пользователем из другого отдела той же компании.
   ЧЕЛОВЕК НА ДРУГОМ KOHЦE ПРОВОДА: Хэлло; компьютерный отдел, Ажек Чиппер у телефона.
   ВЫ: Хэлло, Ажек, это Гари Харрис из отдела исследований. Не могли бы вы помочь мне с одной проблемой?
   ДЖЕК: Не исключено... А в чем дело?
   ВЫ: Ну, я здесь пока один, и никак не могу начать работу. Может, подскажете, что надо сделать?
   ДЖЕК: Разумеется. Компьютер перед вами? ВЫ: Да.
   ДЖЕК: О'кей. Включите красный тумблер на полу. Видите его?
   ВЫ: Аа, о'кей. Я вижу... О'кей.
   ДЖЕК: На загрузку уйдет несколько минут.
   ВЫ: На что?
   ДЖЕК: Ну, на загрузку. Я имею в виду, через одну-две минуты компьютер будет готов к работе.
   ВЫ: Остановилось.
   ДЖЕК: Что вы видите?
   ВЫ: То же, что и всегда. Он и раньше все время доходил до этого места, а потом переставал работать. Что мне делать дальше?
   ДЖЕК: А что вы обычно набираете?
   ВЫ: Не знаю. Я здесь первый день, к тому же временно. Мне сказали, что кто-нибудь все мне объяснит!
   ДЖЕК: Хорошо. Нажмите на "ВВОД". ВЫ: "ВВОД"... Хорошо... Есть. ДЖЕК: Теперь наберите "TEMP", пробел, "PUPPY" ВЫ: Хорошо... Ну, вот!
   ДЖЕК: Получилось?
   ВЫ: Спасибо, Джек! И почему это у меня раньше не выходило!
   Теперь давайте коротко обсудим вышеприведенный разговор. Приветствуйте своего собеседника в тех же выражениях, что употребил он сам. Это делается для того, чтобы компьютерщику было удобнее разговаривать с вами, а также, чтобы он понял, что вы не боитесь открыто сказать ему (или ей), как вас зовут и какую работу выполняете в компании. Если собеседник представится вам имяреком из компьютерного отдела, сообщите ему, что вы - из исследовательского отдела. Если у вас нет справочника компании, с которым можно свериться, вы не можете точно знать, какой термин употребляют сотрудники для названия своих отделений. Таким образом, лучше всего копировать термины того, кто находится на другом конце провода. Даже если вы сами скорее употребили бы термин "подразделение" вместо "отдел", тот факт, что вы говорите на языке компании, заставит сотрудника компании отнестись к вам как к себе подобному. Просьба о помощи в том, что касается компьютеров, пробуждает в техниках чувство компьютерного благодушия. Добавьте также, что вам очень любопытно, что же могло случиться с его, компьютерщика, подопечной системой. Выражение "не могли бы вы" вызовет в нем некоторое раздражение неужели вам неизвестно, как круто он умеет обращаться с компьютерами. Да он просто наизнанку вывернется, лишь бы показать вам все, на что он способен. Грамотным пользователям нравится демонстрировать свое умение (так же, как и вам, не так ли?), особенно техникам, чья работа как раз и заключается в том, чтобы помогать неосведомленным нормально работать. Не забудьте употребить слово "проблема". Компьютерщики обожают решать проблемы. Стоит намекнуть, что проблемы возникли именно с его системой, и такой тип просто ума лишится: только успевай записывать пароли, которые из него посыпаются!
   Помните, в начале я упомянул о времени разговора - 8.55? Не всегда удается позвонить до начала рабочего дня, но имеет смысл постараться сделать именно так. Это даст вам вескую причину для обращения к технику: ведь вы могли прийти на работу первым, и вам не у кого больше спросить. Но техники редко приходят на работу раньше всех, и такая уловка не всегда срабатывает. Следовательно, вы можете позвонить в конце рабочего дня. Тогда можно сказать, что все остальные в офисе уже выключили свои компьютеры и отправились по домам, а вот вы никак не можете закончить работу. Когда вы уже заставили собеседника почувствовать себя суперменом, можете смело приступать к сути проблемы, соблюдая все же определенную осторожность, дабы ваши неловкие замечания насчет процедур ввода не спугнули жертву. Ведь когда вы устанавливаете связь с компьютерной системой из дома, все происходит совсем не так, как если бы вы обращались непосредственно к системе. Лучше всего избегать основных вопросов, обрисовав собеседнику суть возникших у вас затруднений. Вопрос "Не могли бы вы объяснить мне, в чем дело" относится к тому, что техник автоматически проделывает каждый день. Вместе с тем, важно попросить собеседника сделать что-то специфическое (например, попросить его рассказать о процедурах установки?), но не настолько специфическое, чтобы оказаться в его глазах подозрительно осведомленным. К примеру, если вы скажете просто: "Не могли бы вы мне помочь?", он может решить заглянуть в ваш офис, чтобы выручить вас. Так как на самом деле в офисе вас нет, ваш собеседник, само собой, выйдет из игры - к вашему огорчению. Вы должны мысленно представлять себе все те действия, которые вас попросят проделать, поскольку в офисе вас нет. Неплохо иметь под рукой настоящий компьютер, чтобы ваш собеседник (или собеседница) могли услышать, как вы включаете его и что-то набираете на клавиатуре.
   ДЖЕК: На загрузку уйдет несколько минут.
   ВЫ: На что?
   Ваш вопрос показывает вашу полную безграмотность в отношении компьютеров. Но не следует перегибать палку, пытаясь доказать, что последние тридцать лет вы провели в пещере. Вопрос вроде "А что такое клавиатура?" может вызвать недоверие, но никак не сочувствие к вашей наивности. Не забудьте, что вы ведете беседу с определенной целью - выведать у собеседника информацию, поэтому постарайтесь не упустить нужный момент. Фраза "Остановилось" поколеблет уверенность техника в нормальной работе компьютера. Но прежде всего это поможет вам контролировать беседу, подводя ее к логическому завершению.
   ДЖЕК: А что вы обычно набираете?
   На этот вопрос можно дать ответ "Набираю свой пароль...", но так недолго и ошибиться. Что, если компьютер, о котором идет речь, подключен только к локальной сети, и защищен не через пароль, а как-то по-другому? Вдруг речь идет всего лишь о приглашении DOS? В таком случае полезно изобразить из себя новичка. Обычно это неплохо срабатывает, разве что всем известно, что компания проводит массовые увольнения сотрудников или близка к банкротству.
   Сообщение, что вы работаете временно, может пойти вам на пользу, а может и нет. Временные сотрудники обычно встречаются с местным супервизором, которому сдают отчеты и задают вопросы. Впрочем, техник может об этом и не знать; в любом случае, нетрудно сказать, что супервизор посоветовал вам обращаться за разъяснениями в компьютерный отдел.
   ДЖЕК: Хорошо. Нажмите на "ВВОД.
   ВЫ: "ВВОД"... Хорошо... Есть.
   ДЖЕК: Теперь наберите "TEMP", пробел, "PUPPY"
   ВЫ: Хорошо... Ну, вот!
   Ваше "Хорошо" показывает, что вы уже миллион раз проделывали то же самое, но все зря.
   Горячо поблагодарите техника за помощь, еще раз дайте ему убедиться в том, что вы хотя и новичок, но все же полноправный сотрудник компании (сказав, что вы не знаете, почему у вас ничего не получалось).
   Я привел этот пример, основываясь на сотнях разговоров, которые ведут с компьютерщиками настоящие пользователи, сталкиваясь с подобными проблемами. Меня самого пользователи не раз спрашивали, как произвести какие-то действия, никак не получавшиеся у них самих. Обычно все налаживается после перезагрузки. Как правило, после этого пользователь брюзжит: "Но я же делал то же самое! И ничего не работало!" Не говорите так с вашим техником, дабы не оставить о себе дурного впечатления - этот человек может вам еще пригодиться.
   Вот еще один пример того, как хакер может сыграть роль полного простофили в области компьютеров, получив при этом нужную информацию. Когда в офисе инсталлируется новая компьютерная система, рядом с терминалами часто приклеивают телефонные номера технического отдела компании, чтобы пользователи могли связаться с техническим отделом компании и посоветоваться об обнаруженных недоделках в системе. Карточка (или просто бумажка с телефонным номером) может также быть приклеена к стене, специально отведенной для важных сообщений, или спрятана за столом клерка либо под его стойкой. Постарайтесь вывернуть шею и прочесть, что там написано (или попросите кого-нибудь, не обязательно же делать все тайком!).
   Допустим, занимаясь неким отделом страховой компании, вы решили позвонить некоему компьютерщику Фрэнку Смиту. Наберите номер и произнесите следующее: "Привет, это Лорин из страховой компании (...) .У нас тут начала твориться какая-то ерунда с компьютерами, мне пришлось их выключить, и теперь я не знаю, что делать...". И вам все расскажут.
   Хождение во власть
   Если у вас не та ситуация, чтобы заставить техника почувствовать себя Господом Богом, возможно, настало время вам самим превращаться в божество. В военных структурах, разыграв роль офицера высокого ранга, можно вселить страх в сердце любого из тех, кто рангом пониже. Наберите номер и сообщите, что вы либо сам генерал, либо его личный секретарь. Вы оба (генерал и секретарь, или наоборот) просто вне себя от ярости, оттого что ваш компьютер не работает как следует. Вам необходимо знать, почему в компьютере отсутствует ваш пароль и бюджет. Не следует жаловаться или что-то объяснять - просто гневно настаивайте. И результаты не заставят себя ждать. В компании иногда полезно представиться генеральным директором или президентом, либо секретарем одного из вышеозначенных лиц, особенно если глава данной организации славится своим вспыльчивым характером. Никому не хочется, чтобы его уволили или понизили в должности. Гневный тон полезен потому, что человек, снявший трубку, сделает все, лишь бы только избавиться от вас. Впрочем, президентам, начальникам, военным чинам и т. д. необязательно гневаться. Просто сообщите имя того, за кого вы там себя захотите выдать, и вам поверят (кто же осмелится выдавать себя за генерала Такого-то?). Но если вы разыгрываете из себя большую шишку и при этом не гневаетесь, не забудьте произвести предварительные исследования, дабы знать, что представляет собой этот босс. Вот пример такого диалога:
   ЧЕЛОВЕК НА ДРУГОМ KOHЦE ПРОВОДА: Добрый де...
   ВЫ: "Говорит генерал Фроббс. Ваша бесцеремонность меня просто потрясает! Я отсутствовал в течение двух дней, а вернувшись, обнаружил, что меня нет в компьютере! Кто у вас отвечает за эти компьютеры? Что за наглость! Я настаиваю, чтобы мой бюджет был восстановлен! У меня там много важнейших документов!"
   СОБЕСЕДНИК: А вы пробовали набрать "GROUP.1", "SEC"? Это должно сработать.
   ВЫ: К черту эти групповые коды! Верните мне мой личный бюджет! Что за наглость!
   СОБЕСЕДНИК: К сожалению, я не смогу помочь вам с вашими личными кодами. Может быть, мне найти кого-нибудь, кто сумеет помочь вам?
   Заметьте, в данном примере вам удается добыть комбинацию имя,пароль, которое дает вам хоть какое-то право доступа. Даже если ваш собеседник и не подумает искать генеральский пароль, у вас в руках уже есть доступ к системе, и не один, а несколько. Ведь если существует GROUP.1, то существует и GROUP.2, верно?
   Хакер в роли ПОМОЩНИКА
   Этот вид разыгрывания роли подобен обратной социальной инженерии без диверсий. Вы делаете вид, что с компьютерами данной организации что-то случилось, а вы - техник, которого вызвали, чтобы устранить неполадку.
   Допустим, вы хотите проникнуть в компьютеры, расположенные в офисе мэрии. Вы звоните секретарю мэра и сообщаете ей что-то вроде:
   - Здравствуйте, это Джейк МакКоннел из отдела компьютерного обслуживания. Мы хотели бы знать, нет ли у вас проблем с компьютерной системой?
   Естественно, хоть какие-то проблемы подобного рода у нее были - с компьютерами вечно возникают какие-то проблемы!
   - Ну да! - отвечает секретарь. - Сначала случилось вот так, а потом вот эдак...
   - Именно! - говорите вы. - Вот это оно самое и есть! Вашей вины здесь нет - что-то произошло с компьютерами, и сейчас мы пытаемся установить причину неполадки. Когда вы включаете компьютер, что вы набираете на клавиатуре перед тем, как начать работу? Один из наших вчера пытался разобраться, что случилось, и решил, что, по-видимому, все дело именно в этом. Секретарь ничего не заподозрит - в конце концов, ведь вы же назвали свое имя. А если и нет, что плохого в том, что она скажет по телефону пароль?
   Секретарь, равно как и любой другой малооплачиваемый, загруженный работой неквалифицированный пользователь, является слабым звеном в цепочке компьютерной безопасности. Секретари не разбираются в компьютерах, и разбираться в них не желают. Они знают лишь одно: что-то не так, а вы собираетесь навести порядок. Этот план весьма эффективен.
   Часы пик
   Не используйте данный план ранним утром, или в околообеденное время - в эти часы он может не сработать должным образом. Приступайте к нему тогда, когда рабочий день достигнет своей точки кипения.
   Если вы можете свободно попасть туда, где расположены компьютеры с интересующей вас системой, - это может быть библиотека, стоматологический кабинет, банк или школа, - проведите некоторые исследования, чтобы выяснить, когда наступает наилучшее время для вашего звонка.
   В одной из библиотек, куда я захаживал, каждый день около трех часов пополудни компьютерная система внезапно начинала работать вполовину обычной скорости. Это вело, в свою очередь, к значительным затруднениям в работе библиотекарей. Возможно, в три часа дня число пользователей достигало критического уровня, или же в это время информация была вынуждена идти по альтернативному маршруту к мэйнфрэйму, расположенному в колледже на другом конце города. И если бы я решил заняться социальной инженерией в библиотеке, я начал бы именно в это время, когда скапливалось большое количество проблем. Те посетители библиотеки, которые не знали об этой особенности местных компьютеров, звонили в компьютерный зал колледжа и спрашивали, что случилось. Как вы думаете, неужели им не было бы приятно в один прекрасный день получить звонок из "компьютерного зала" (т. е., от меня или от вас), и услышать предложение о помоши? Конечно же, они бы с радостью рассказали бы вам о своих процедурах входа, лишь бы компьютеры заработали быстрее!
   Компьютеры обычно работают медленнее всего в середине рабочего дня, когда в сети находится наибольшее количество пользователей. Это особенно ощушается в университетах. Утром в систему загружается небольшое количество студентов и преподавателей, которые не отключаются в течение всего дня, независимо от того, работают они в системе, или нет. С другой стороны, многие системы начинают быстрее работать днем, так что предварительные исследования вам все-таки необходимы. Следует заранее знать о тенденциях к отклонениям скорости компьютеров там, где вы собираетесь заниматься социальной инженерией. Если' вам удастся обнаружить значительное отклонение скорости (как в той библиотеке), вы, естественно, захотите пустить в ход ваши способности в это самое время.
   Это необязательно должны быть отклонения скорости компьютеров; если в определенный промежуток времени критически нарастает загруженность работой, уровень шума, число посетителей и т. п., такое время тоже хорошо подходит для социальной инженерии.
   Чтобы обнаружить такие промежутки времени, посетите избранный вами офис несколько раз в течение дня, и посмотрите, когда сотрудники заняты больше всего. Если это библиотека, или туристическое агентство, сходите туда или сделайте несколько телефонных звонков. Спросите о чем-либо, и, если они испытывают некоторые затруднения при поиске нужной информации на компьютере, перезвоните туда уже как сотрудник компьютерного отдела.
   Офисы обычно бывают перегружены после одного-двух нерабочих дней, так что имеет смысл начинать в понедельник. Но сотрудники не должны быть настолько заняты, чтобы вообще не отвечать на телефонные звонки.
   Конечно, метод социальной инженерии годится для любой системы. Но бывает гораздо проще надуть юную кассиршу в банке, нежели администратора системы в местном колледже. Социальная инженерия с успехом использовалась для получения доступа к корпоративным сетям, научным, правительственным и другим системам. Это мощное оружие, но, прибегая к нему, надо быть хорошим актером.
   Другие советы
   Если это возможно, вначале проведите исследования. Постарайтесь узнать как можно больше о часах пик и о том, какого рода проблемы возникают при использовании данной системы. Если вашей целью является, например, библиотека, разузнайте, кто из сотрудников совсем не разбирается в компьютерах. Попытайтесь поговорить с ними по телефону. Убедитесь в том, что вы верно называете себя - такой-то из компьютерного отдела (или подразделения, или сектора; используйте терминологию собеседника). Придумайте заурядное, часто встречающееся имя и такую же фамилию. Если вам не удастся получить входную информацию с первого раза, попытайтесь еще раз в другое время, в другой день. Но не звоните два раза одному и тому же человеку.
   Однажды мой друг, Билл, позвонил на фирму по распространению электронного оборудования и случайно услышал, как женщина, принимавшая его заказ, пожаловалась на то, что компьютеры отказали и ей приходится все делать от руки, в то время как в других частях здания все было в порядке. Повесив трубку, Билл тут же снова позвонил туда, попав к другому оператору. Представившись Биллом Робинсоном из компьютерного отдела, он посоветовал оператору включить неработающие компьютеры и набрать на клавиатуре "всю ту ерунду, что вы обычно набираете после включения". Биллу удалось выведать у нее всю необходимую информацию. Когда оператор закончила "загрузку" (безрезультатно, разумеется), Билл со вздохом произнес: "Ну что ж, дело хуже, чем я предполагал. Пойду еще покопаюсь. Спасибо за помошь". Таким образом, Билл узнал, как войти в компьютерную систему "Shark Radio Supplies", и вдобавок завел там знакомство, которое могло пригодиться ему при дальнейших исследованиях.
   Примеры СИТУАЦИЙ, ВОЗНИКАЮЩИХ ПРИ СОЦИАЛЬНОЙ инженерии