В западной прессе часто мелькают сообщения о том, что кто-то где-то что-то взломал. Немалая часть этих взломов как раз и была проведена с помощью СИ. В идеальных условиях у взломщика должны быть:
   • телефон, воспроизводящий шум офиса;
   • автоопределитель номера;
   • устройство для изменения голоса;
   • возможность использовать чужую телефонную линию.
   Все эти вещи необходимы для успешного применения теоретических знаний на практике, но в нашей стране получить сразу все не представляется возможным, так что потенциальным взломщикам приходится довольствоваться простыми подручными средствами. Первый инструмент заменяется обыкновенным шумом в комнате или магнитофонной записью. Второй не составит труда отыскать. Третий – самое сложное. Проблема в том, что качественный аппарат способен преобразовывать голос как угодно: в женский, в детский, в старческий… Такие устройства очень редки, поэтому полностью использовать возможности СИ вряд ли получится. Конечно, ничто не помешает постучать ложкой о тарелку и сделать вид, что люди в офисе обедают. Можно позвать тетю Машу, дать ей шоколадку и попросить позвонить… Об использовании чужой линии, наверное, и заикаться не стоит. Единственное, что сразу приходит в голову, – это телефонная трубка с номеронабирателем и ближайший телефон-автомат. Но тогда придется использовать еще и анти-АОН.

Классификация атак класса СИ

   Обычно атаки класса СИ представляют собой комбинацию некоторых средств, методов и «параметров окружения». Основные разновидности можно разделить на следующие категории.
   По средствам применения:
   • телефон;
   • электронная почта;
   • разговор по Internet в «реальном времени»;
   • обыкновенная почта;
   • личная встреча.
   В первом случае основную сложность представляет голос. Если объект знаком с тем, кем вы представились, то необходимо сделать так, чтобы ваш голос почти не отличался от его голоса. При использовании электронной почты проблема голоса отпадает, зато появляется стиль письма, которого нужно придерживаться от начала и до конца. То же самое утверждение можно отнести к третьему и четвертому пунктам данной классификации. В последнее время быстро развивается новый вид общения – ICQ, некая смесь электронной почты, разговора в реальном времени и организатора межсетевых взаимодействий между пользователями. Эта программа иногда позволяет в большей степени ввести в заблуждение пользователей, но об этом потом. Следующий вид контактов – личностный. Лично можно воздействовать только на тех людей, которые не смогут утверждать, что вы не тот, за кого себя выдаете. В этом случае необходимо иметь приятный голос и уметь нравиться людям. Конечно, при сложных комбинациях может быть использовано не одно средство, а, возможно, даже все, но человек, осуществляющий такую атаку, должен быть не просто хорошим, а отличным психологом.
   По уровню социального отношения к объекту:
   • официальный;
   • товарищеский;
   • дружеский.
   Разумеется, для того чтобы атака оказалась успешной, нужно выбрать соответствующий стиль общения для каждого случая. При официальном стиле общения недопустимы нотки пренебрежения или дружественности. Необходимо, чтобы все выглядело так, как должно. Если был выбран товарищеский тон, то предполагается, что вы знаете хотя бы имя человека, с которым собираетесь разговаривать. Последний, дружеский уровень дается с большими усилиями. Желательно не просто много знать о человеке, но и представлять, кем вы собираетесь выглядеть. Это самый сложный вид атаки, но после его успешного применения можно добиться самых высоких результатов.
   По степени доступа объекта к информационной системе:
   • администратор – высокая;
   • начальник – средняя;
   • пользователь – низкая;
   • знакомый администратора, начальника или пользователя – отсутствие доступа.
   Здесь предполагается разделение по результату атаки. Соответственно, в первом случае результат наибольший, а в последнем – наименьший. Но это – с точки зрения промежуточного результата (см. табл. 2.1). На практике работа с пользователем и знакомыми оказывается легче, чем с администратором и начальником: больше вероятность, что последние знают того, кем вы собираетесь представиться.
Таблица 2.1. Вероятность успешного проведения атаки в зависимости от навыков выполняющего (низкая-1, средняя-2 высокая-3)

Краткое введение в психологию СИ

   «На свете есть только один способ побудить кого-либо что-то сделать. Задумывались ли вы когда-нибудь над этим? Да, только один способ. И он заключается в том, чтобы заставить другого человека захотеть это сделать. Помните – другого способа нет», – писал Дейл Карнеги.
   Знаете… а ведь он прав! Конечно, все это и так интуитивно понятно, но если разобраться глубже, то оказывается, что есть способы, позволяющие этого достичь. Один из наиболее видных психологов ХХ века, Зигмунд Фрейд, говорил, что в основе всех наших поступков лежат два мотива – сексуальное влечение и желание стать великим, причем последнее трактуется как «желание быть значительным» или «страстное стремление быть оцененным». В принципе это одно и то же. Дайте человеку понять, что вы его цените и уважаете! Мы не призываем вас при разговоре с администратором сети льстить и сыпать комплиментами, хотя «льстить – значит говорить человеку именно то, что он думает о себе». Конечно, умный человек это заметит, и такое отношение ему может не понравиться. Но если заранее постараться признать для себя достоинства того, с кем вы собираетесь разговаривать, то собеседник почувствует вашу искренность.
   Попробуйте произнести такие слова: «Я понимаю, что вы ужасно заняты, но не могли бы вы.» Обычно подобная фраза говорится с юмористическим оттенком или с тоном пренебрежения. Но если вы попробуете представить себе, что человек действительно занят и у него нет никакого желания с вами разговаривать, то ваш тон моментально изменится. Поверьте, такой прием подействует, только если говорить искренне!

Примеры проникновения в систему

   Наверняка все в детстве баловались с телефонами. Ну кто не знает таких шуток, как: «Алло, это зоопарк?» – «Нет». – «А почему обезьяна у телефона?». Совершенно безобидный пример издевательства над людьми. А вот еще один подобный пример, но с элементами СИ:
 
   Шутник: Алло! Вас беспокоят с телефонной станции. Измерьте, пожалуйста, длину шнура от трубки к телефону.
   Жертва: Метр.
   Ш.: Хорошо, для того, чтобы повеситься, хватит.
 
   Следующий звонок.
   Ш.: Алло! Это милиция. Вам сейчас хулиганы не звонили?
   Ж.: Да, да! Звонили! Разберитесь с ними, пожалуйста!
   Ш.: Про трубку и провод спрашивали?
   Ж.: Да!
   Ш.: И он у вас метр?
   Ж.: Да!
   Ш.: А почему до сих пор не висим?
 
   Это было лирическое отступление на тему того, как методы СИ используются детьми на бессознательном уровне, в качестве шутки. Рассмотрим простейший пример СИ для проникновения в систему.
 
   Звонок администратору системы.
   Взломщик: Здравствуйте, вы администратор?
   Администратор: Да.
   В.: Я понимаю, что вы ужасно заняты, извините, что отрываю вас от дел, но я не могу войти в сеть.
   A.: (Про себя: ЁПРСТ!!! Поработать не дают!) А что компьютер говорит по этому поводу?
   B.: Как это – «говорит»???
   A.: (Ха!) Ну, что там написано?
   B.: Написано «вронг пассворд».
   A.: (Ну-ну, еще бы…) А-а-а-а… А вы пароль правильно набираете?
   B.: Не знаю, я его не совсем помню.
   A.: Какое имя пользователя?
   B.: anatoly.
   A.: Ладно, ставлю вам пароль… мммм… art25. Запомнили? (Если опять не войдет – убью!)
   B.: Постараюсь. Спасибо. (Вот дурак-то!)
   Конец разговора. Все!
 
   На самом деле это упрощение ситуации, но в некоторых случаях такое может сработать. Какие ошибки допустил администратор? С его точки зрения – никаких. В подобных случаях редко спрашиваются имя, фамилия, должность звонящего, особенно если звонит девушка с приятным голосом (для этого и используются преобразователи голоса). Администраторы часто сталкиваются с забывчивостью пользователей, особенно если сотрудники редко «входят» в систему. В таких случаях ответственное лицо старается побыстрее положить трубку, и ему хватает того, что пользователь знает свое имя входа в систему. Однако в этом случае взломщик уже знал некоторые сведения о своей цели. Рассмотрим пример с первоначальными нулевыми знаниями.
   1. Выберем цель по телефонной книге – организацию, где есть телефон секретаря.
   2. Звоним секретарю и узнаем имя персоны, с кем можно проконсультироваться по поводу некоторых проблем с работой системы.
   3. Звоним любому другому человеку, чей номер телефона имеется в книге, предполагая, что он имеет доступ к системе.
   4. Представляемся (разумеется, вымышленным именем) как помощник той персоны, имя которой мы узнали из первого звонка. Говорим, что в связи с перестановкой системы администратор дал задание поменять пароли всем пользователям.
   5. Узнаем имя входа, прежний пароль, говорим новый пароль. Все!
   6. В том случае, если доступ к системе происходит посредством телефонных линий, звоним секретарю, говорим, что не получается дозвониться до системы, и просим назвать правильный номер телефона.
   В принципе этот пример немногим отличается от предыдущего, но есть большая вероятность получения доступа в систему вследствие оперирования в разговоре конкретными именами и должностями.
   После того как взломщик получает доступ к системе в виде простого пользователя, ему не составляет большого труда получить полное право на нее с помощью тех способов, которые описаны в главе 9. Но можно и дальше развить СИ для получения привилегий администратора. Вот пример на UNIX-системе.
   Пусть каким-либо образом взломщик узнал, что у администратора в переменную окружения PATH включена «.» (это значит выполнение программ из текущего каталога, многие так делают для удобства работы).
 
   Звонок администратору.
   Хакер: Здравствуйте, вы администратор?
   Администратор: Да.
   Х.: Извините, что отвлекаю. Не могли бы вы мне помочь?
   А.: (Ну что еще ему надо?) Да, конечно.
   Х.: Я не могу в своем каталоге выполнить команду ls.
   А.: (Как будто ему это надо!) В каком каталоге?
   Х.: /home/anatoly.
   А.: (Вот ведь глупый юзер!) Сейчас посмотрю. (Заходит в этот каталог и набирает команду ls, которая успешно выполняется и показывает наличие нормальных прав на каталог.)
   А.: Все у вас должно работать!
   Х.: Хммм… Подождите. О! А теперь работает. Странно…
   А.: (Рррррр!!!) Да? Хорошо!
   Х.: Спасибо огромное. Еще раз извиняюсь, что помешал.
   А.: (Ну наконец!) Да не за что. (Отстань, противный!) До свидания.
   Конец разговора.
 
   Заметили криминал? Вроде бы ничего особенного. Даже с точки зрения опытного администратора. Что же произошло на самом деле? В каталоге /home/anatoly среди множества других файлов лежал измененный вариант программы ls. Как раз его-то администратор и запустил. Все дело в том, что при выполнении этого файла у запускающего (администратора) имелись все права на систему, и, соответственно, все программы, которые он запускает, могут делать с системой практически все, что угодно. Что было в этом файле, кроме возможности показывать список файлов в каталоге, теперь только взломщику и известно.
   Разумеется, эти случаи годятся для организации со средним уровнем защиты. В банках или военных учреждениях наверняка так просто ничего не получится. Там могут спросить имя звонящего, его адрес, номер паспорта или предложат оставить номер телефона для последующего уведомления о смене пароля (для этого и нужна возможность использовать чужую линию, чего позволяют добиться офисные мини-АТС, которыми можно оперировать с удаленного терминала или из сети Internet). В таком случае взломщики обычно заранее собирают информацию о потенциальных жертвах. Как это делается? Пожалуйста, еще один пример из телефонных шуток.
 
   Звонок на совершенно незнакомый номер.
   Взломщик: Алло, извините, вас беспокоят с телефонной станции. Это номер такой-то?
   Жертва: Да.
   В.: У нас идет перерегистрация абонентов, не могли бы вы сообщить, на кого у вас зарегистрирован телефон? Имя, фамилию и отчество, пожалуйста.
   Ж.: (Говорит информацию.)
   В.: Спасибо! Так. секундочку. Хорошо, ничего не изменилось. А место работы?
   Ж.: (С некоторым сомнением называет, а если человек очень подозрительный, то спрашивает, зачем.)
   В.: Это сведения для новой телефонной книги. По вашему желанию можем внести не одно имя, а всех, кого можно найти по этому телефону.
   Ж.: (Тут с радостью называются имена всех членов семьи с их положением в ней, хотя это и не требовалось.)
 
   Информации уже достаточно для попытки взлома. Таким же образом становятся известными номера паспортов и т. д. После такого разговора можно звонить сотрудникам хозяина телефона от имени его родственников и получать дальнейшую информацию.
 
   Еще один пример.
   Взломщик: Алло, это приемная?
   Жертва: Да.
   В.: Это администрация сети. Мы сейчас меняли сетевую систему защиты. Необходимо проверить, все ли у вас нормально работает. Как вы обычно регистрируетесь в системе?
   Ж.: Ввожу свои имя и пароль.
   В.: Хорошо… Так… (Пауза) Какое имя?
   Ж.: anna.
   В.: Анна… (Пауза) Так… какой у вас раньше был пароль?
   Ж.: ienb48.
   В.: Та-а-а-ак… Хорошо. Попробуйте сейчас перерегистрироваться.
   Ж.: (Пауза) Все нормально. Работает.
   В.: Отлично. Спасибо!
 
   Разумеется, в маленьких организациях, где все знают администратора, это не сработает, зато в больших есть пространство для применения своих способностей.
   Вот как использовали СИ такие люди, как Кевин Митник и Роско:
   «И Роско, и Кевин гордились своим умением общаться с людьми. На их взгляд, в любом разговоре можно было подчинить себе собеседника, если говорить авторитетным тоном знатока, даже если в этой области ты ничего не смыслишь. Время от времени они названивали в отдел дистанционной связи какой-нибудь компании и недовольным начальственным голосом требовали объяснить, почему тот или иной номер АТС не удается набрать из города. И напуганный оператор объяснял им, как набрать интересующий их номер.
   Обычно в таких случаях Кевин предпочитал импровизировать, полагаясь на свою интуицию, а Роско возвел свое умение разговаривать с людьми чуть ли не в ранг искусства. Он вел специальную записную книжку, куда вписывал имена и должности телефонисток и операторов разных фирм и их начальников. Там же он помечал, новички они или опытные работники, насколько хорошо информированы, расположены к разговорам или нет. Заносил он в книжку и сведения, так сказать, личного характера, добытые в течение долгих часов разговоров по телефону: увлечения, имена детей, любимые виды спорта и места, где они любят бывать в отпуске и по выходным» [5].
   В некоторых источниках предлагается ходить с видеокамерой, изображая репортера, и почаще наводить ее на клавиатуру пользователей. Здесь сработает предположение, что людям наверняка захочется увидеть себя по телевизору. Можно даже попросить человека сделать вид, что он только что пришел на работу и садится за компьютер. Ну и, разумеется, попросить включить его и начать работу.

Социальная инженерия посредством сети Internet

Беседы через Internet

   Для выявления паролей через IRC злоумышленники используют два или более одновременно открытых клиента IRC. Желательно иметь права оператора канала, но необязательно. Один из клиентов представляет собой bot (робот-исполнитель), а другой – это сам злоумышленник (например, BOB). Как происходит СИ:
   BOB: Для получения прав оператора просто пошли сообщение роботу канала, но сначала необходимо проидентифицировать свой DNS. Если ты не знаешь, как это сделать, напиши /msg bot identify твой_пароль. Робот должен запомнить имя, DNS и впоследствии аутентифицировать тебя по набранному паролю.
   После чего действительному оператору канала желательно сказать, что нет времени, и необходимо убегать. Все это для того, чтобы не появилось подозрения в соучастии.
   Как только «пациент» посылает роботу такое сообщение, для создания полной иллюзии необходимо ответить от имени робота что-нибудь вроде такой фразы:
   Имя_пациента: Клиент аутентифицирован. Установка прав оператора. Теперь злоумышленник имеет пароль пользователя. Конечно, совсем необязательно, что это пароль применялся еще где-либо, но люди, не искушенные в безопасности, по привычке пишут везде один и тот же пароль.

Электронная почта

   Работа с помощью электронной почты почти не отличается от работы с телефоном, но есть некоторые особенности:
   • в случаях переписки с незнакомыми людьми письма должны иметь соответствующий вид. Например, подпись в конце письма должна быть стандартной для больших компаний: следует указать имя, фамилию, должность, название организации, адрес и телефон;
   • при переписке со «знакомыми» людьми необходимо выдерживать дружеский стиль;
   • желательно не посылать письмо напрямую, а использовать поддельный адрес и/или скрывать IP-адрес, откуда пришло письмо.
   Введем маленькое отступление для объяснения того, каким образом можно послать письмо с поддельным обратным адресом и что это значит. В любом передаваемом электронном письме существует header (заголовок), содержащий служебную информацию, такую как дата отправки, IP-адрес машины, с которой отправили письмо, название отправляющей программы, обратный адрес отправителя и т. д.
   Эту информацию обычно можно просмотреть либо в программе, работающей с вашей почтой, либо в «сыром» виде, с помощью любого текстового редактора.
   Вот, что можно увидеть в этом заголовке:
 
   From Nikolay@imagine.msk.ru Wed Jan 9 17:50:40 1999
   Received: from mail1.relcom.ru (mail1.relcom.ru [193.125.152.4]) by info.tsu.ru (8.8.5/
   8.8.2) with ESMTP id RAA01375 for <eugene@tsu.ru>; Wed, 9 Jan 1999 17:15:22 +0800 (TSD)
   Received: from gw.imagine.msk.ru (root@localhost) by mail1.relcom.ru (8.7/8.7/akolb/
   960402) with SMTP id HAA07617 for <eugene@tsu.ru>; Fri, 9 Jan 1997 07:13:46 GMT
   Received: from nick (nick.imagine.msk.ru [123.123.123.123]) by gw.imagine.msk.ru with
   SMTP id FAA06917 for <eugene@tsu.ru>; Fri, 8 Jan 1999 11:18:55 +0300
   Message-Id: <s3b3a19f.011@gw.imagine.msk.ru>
   X-Mailer: Mozilla 4.01 [en] (Win95; I)
   Date: Fri, 8 Jan 1999 11:18:20 +0300
   X-UIDL: 867984288.012
   From: Nikolay <Nikolay@imagine.msk.ru>
   To: eugene@tsu.ru
   Subject: For you information
   Status: RO
 
   Что здесь может заинтересовать вас или получателя вашего письма?
   Прежде всего, это поля «Received:», где содержится информация о маршруте, который прошло письмо. Как правило, последнее поле «Received:» показывает адрес машины, с которой это сообщение было отправлено. В самом простом случае, как здесь, будет написан IP-адрес. Тогда получатель письма точно сможет узнать, пришло ли оно от его знакомого.
   Существует несколько способов сделать так, чтобы эти адреса не записывались или чтобы туда записалась ложная информация.
   Во-первых, можно использовать широко распространенные в Internet программы, позволяющие заполнить поля From, To и Host – адрес сервера, через который будет отправлена почта. Желательно выбирать сервер, не записывающий, откуда пришло письмо. Идеальный вариант, если этот сервер является еще и почтовым сервером реального отправителя.
   Во-вторых, можно просто перенастроить ваш почтовый клиент (Netscape, Outlook Express, The Bat) на другое имя отправителя и другой адрес почтового сервера.
   В третьих, можно использовать серверы, переправляющие почту, но стирающие всю информацию о пути прохождения сообщения, – так называемые remailers. Этот способ не очень эффективен, так как соответствующая информация все равно отразится в заголовке.
   Мало того, что вы подмените адрес, в некоторых случаях придется поменять и имя программы-отправителя «X-Mailer:». Ну знаю я, что мой друг питает отвращение к Outlook Express, а тут вдруг пользуется им… Может быть, придется изменить даже дату отсылки сообщения! Если отправитель находится в противоположной точке земного шара и разница во времени составляет 12 часов (дата отправки обычно показывается всеми почтовыми программами), то отправление письма в 5 утра может насторожить получателя. Вопрос с датами в любом случае нужно прорабатывать подробнее, так как некоторые серверы ее изменяют, некоторые пишут ее относительно GMT и т. д.
   Есть еще один вариант отправки – с помощью программы telnet. 25-й SMTP-порт – стандартный для приемки писем; к почтовому серверу можно подсоединиться на этот порт и самому набрать все поля.
   Для получения информации об интерфейсе общения можно набрать команду HELP. Обычно требуется ввод следующих полей:
   • «rcpt to:» – кому отсылается письмо;
   • «mail from:» – от кого пришло письмо;
   • «data» – тело письма.
   В тех случаях, когда сервер не записывает IP-адрес отправителя, этот метод тоже может помочь. Не будем останавливаться на деталях процесса, добавим только, что обычно проверкой подлинности письма никто не занимается, да и осуществить такую процедуру сможет далеко не каждый. Поэтому при «работе» с обыкновенными пользователями об этом, как правило, не задумываются, но иногда все же стоит перестраховаться.

Программа-пейджер

   Вот, наконец, добрались и до ICQ (I seek you). Как мы уже упоминали, ICQ – это некоторое подобие электронной почты, а значит, с ней можно делать почти все, что и с e-mail. Кроме того, ICQ похожа на IRC, соответственно – те же комментарии. Чем же это средство общения отличается от описанных выше, и как его можно реально использовать в социальной инженерии?
   Для тех, кто пока еще не знаком с ICQ, кратко объясним ее суть. В то время, когда вы работаете, она постоянно загружена на вашем компьютере, причем обычно показывается рабочая панель, на которой вы можете увидеть предварительно внесенные имена своих друзей и знакомых. Те из них, у кого в данный момент запущена эта программа, будут показаны вам в самом верху с различными иконками статуса (доступен, недоступен, временно ушел и т. д.). Для общения можно выбрать тип разговора – либо просто послать письмо, либо поговорить в режиме реального времени (больше похоже на программу talk (UNIX), чем на IRC).
   Программа разработана не так давно, но уже широко используется, несмотря на множество ее недостатков. В последнее время в Internet стали появляться программы, которые способны тем или иным образом нарушить работу ICQ. Что же можно сделать с их помощью? Послать сообщение от чужого имени, дать возможность постороннему лицу увидеть список друзей, узнать пароль пользователя или просто удаленно вывести программу из строя. Не надо обладать особой проницательностью, чтобы придумать, как применить все это на практике. Да и отличить подделанное сообщение в ICQ значительно труднее, чем в e-mail. Для того чтобы исправить эти недостатки, фирма Mirabilis, разработчик ICQ, время от времени выпускает новые версии.
   Все приведенные выше примеры не выдуманы, а взяты из реальной жизни. Они показывают, что наибольшую опасность для организаций представляют люди, а не слабая защита операционных систем. Далее рассмотрим, каким образом можно оградить себя от подобных методов несанкционированного проникновения.

Возможности защиты от социальной инженерии

Тесты на проникновение

   Тестирование системы защиты – это метод выявления недостатков безопасности с точки зрения постороннего человека (взломщика). Он позволяет протестировать схему действий, которая раскрывает и предотвращает внутренние и внешние попытки проникновения и сообщает о них. Используя этот метод, можно обнаружить даже те недостатки защиты, которые не были учтены в самом начале, при разработке политики безопасности. Тест должен разрешить два основных вопроса:
   • все ли пункты политики безопасности достигают своих целей и используются так, как это было задумано;
   • существует ли что-либо, не отраженное в политике безопасности, что может быть использовано для осуществления целей злоумышленника.
   Все попытки должны контролироваться обеими сторонами – как взломщиком, так и «клиентом». Это поможет протестировать систему гораздо эффективнее. Необходимо также свести к минимуму количество людей, знающих о проведении эксперимента. При тестировании могут быть затронуты деликатные вопросы частной жизни сотрудников и безопасности организации, поэтому желательно получить предварительное разрешение на проведение такой акции. Ваше непосредственное начальство обязательно должно быть в курсе происходящего.
   Профессионалам в области безопасности при проведении теста необходимо иметь такое же положение, как и у потенциального злоумышленника: в их распоряжении должны быть время, терпение и максимальное количество технических средств, которые могут быть использованы взломщиком. Более того, проверяющим следует расценить это как вызов своему профессионализму, а значит, проявить столько же рвения, сколько и взломщик, иначе тесты могут не достичь необходимого результата.
   Требования, предъявляемые к человеку, проводящему тесты: