Czytaj tylko na Litres

Książki nie można pobrać jako pliku, ale można ją czytać w naszej aplikacji lub online na stronie.

Czytaj książkę: «Атака на Internet»

Czcionka:

Предисловие

Предыдущая книга «Атака через Internet» вызвала широкий отклик у наших читателей. За прошедшие два года с момента ее выхода постоянно меняющийся мир Internet преподнес всем нам много нового в такой интересной и чрезвычайно динамичной области, как информационная безопасность вычислительных сетей. Мы не могли остаться в стороне от этого процесса – удивительный мир информационных воздействий сильно притягивает к себе, а однажды вступив на этот путь, уже невозможно остановиться, так как очень интересно узнать, что же там, за горизонтом…

Прошло два года – до горизонта все еще далеко, следовательно, у нашей науки есть настоящее и будущее: «Я мыслю – значит, я существую». Мы не оговорились, безопасность сетей – это именно наука, только она столь тесно переплетена с практикой, что многие об этом иногда забывают. Надеемся, что созданный нами в этой книге «сплав» науки и практики не оставит равнодушными наших читателей, и они смогут почерпнуть для себя много нового и интересного.

О чем эта книга

О безопасности сети Internet, а если точнее – о той опасности, которая угрожает всем пользователям Сети. Главная цель авторов – показать, что Internet как величайшее информационное достижение человечества помимо очевидных достоинств обладает рядом существенных недостатков в системе безопасности. Основываясь на своих практических исследованиях безопасности Сети и анализе доступной информации, мы попытались как можно более подробно и точно описать те возможные удаленные информационные разрушающие воздействия (удаленные атаки), о которых ходят слухи и мифы в среде пользователей Internet и которые в любой момент могут пожаловать к вам в качестве незваных гостей. А для того, чтобы оказать им достойную встречу, необходимо знать основные типы возможных атак и понимать механизмы их реализации. Авторам хотелось бы надеяться, что наша цель – повышение уровня информированности специалистов и пользователей Internet о тех угрозах информационной безопасности, которые таит в себе Сеть, – все-таки будет достигнута!

Отличия этой книги от других изданий по безопасности Internet

Неординарность подхода состоит в том, что его основу составляет анализ алгоритмических и технических особенностей реализации Internet, используемых нарушителями безопасности Сети.

Именно с этой точки зрения авторы, подробно изучив механизмы реализации удаленных атак, рассматривают возможные способы защиты от них.

По нашему мнению, предлагаемый подход позволяет указать на причины недостатков Сети и, тем самым, сосредоточиться на мерах, которые должны быть приняты в первую очередь, чтобы обеспечить опережающие действия для блокирования возможной атаки, а не устранения ее последствий.

Опережая возможные упреки в опасности раскрытия механизмов атак, мы считаем необходимым отметить следующее:

1. Знание механизмов атак позволяет в большинстве случаев предотвратить их путем правильного администрирования. Принцип «кто предупрежден – тот вооружен» оправдывает себя в данной ситуации и лишает нападающую сторону преимуществ внезапности и скрытности.

2. Информация об атаках в Сети основывается исключительно на открытых источниках. Правда об Internet, сопровождаемая понятными специалистам доводами, важнее для пользователя, чем неясные слухи о «страшных вторжениях в каждый компьютер» или рекламная информация о «достаточной мере защиты». Реальная оценка позволит точно установить риск использования Сети и требования к режиму ее использования.

Вопросы, оставшиеся за пределами данной книги

Осветить проблему безопасности сети Internet в целом не входило в наши планы. Мы не рассматривали безопасность электронной почты (программу PGP и т. п.), проблемы с безопасностью, возникающие при переходе на новый стандарт IPv6, почти не затронуты средства криптографической защиты (типа Kerberos). Кроме того, мы не стремились подробно описывать такие хорошо известные и, видимо, порядком уже поднадоевшие читателям методы и средства защиты в сети Internet, как Firewall, SSL, SKIP, S-HTTP.

Чем настоящее издание отличается от предыдущего «Атака через Internet»

Мы надеемся, что уважаемый читатель уже имел возможность познакомиться с предыдущей книгой «Атака через Internet». Тогда попробуем предвосхитить вопрос читателей об отличиях двух изданий и в этом разделе о них рассказать.

Во-первых, изменился состав авторов: вместо В. Платонова, написавшего в предыдущем издании вторую главу, появился новый автор – Д. Леонов, который написал десятую главу. Также в создании книги принимал участие Е. Ильченко – автор второй главы.

Во-вторых, существенно изменилось наполнение книги. Ее объем увеличен нами более чем в полтора раза за счет новых глав, посвященных Web-безопасности, социальной инженерии, методам сканирования, и отдельного раздела, написанного, по многочисленным пожеланиям наших читателей, о безопасности Windows NT. Кроме того, на основе проведенных нами исследований безопасности различных систем за два года, прошедших с момента выхода первой книги, существенно доработаны старые главы.

В-третьих, исправлены некоторые досадные технические ошибки и опечатки, присущие предыдущему изданию.

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

В завершение мы желаем всем нашим читателям обращать должное внимание на проблемы информационной безопасности и надеемся помочь вам как этой книгой, так и, возможно, лично в качестве независимых экспертов.

Специалистам понятна сложность в изложении столь деликатного вопроса, как безопасность сети, поэтому авторы будут благодарны читателям за отзывы.

Авторский коллектив:

Илья Медведовский – руководитель отдела информационной безопасности Notes Development, ведущий раздела «Информационная безопасность» журнала BYTE/Россия, ilya@blader.com;

Павел Семьянов – старший преподаватель кафедры информационной безопасности компьютерных систем СПбГТУ, psw@ssl.stu.neva.ru;

Дмитрий Леонов – главный редактор журнала «HackZone – территория взлома» и создатель одноименного сайта, web@hackzone.ru.

Часть I
Хакеры и кракеры

Глава 1
О хакерах и не только…

Но сначала нам надо с тобой договориться, как именно мы определим, о чем мы советуемся, дабы не выходило, что я разумею одно, ты же – другое…

Платон. Диалоги

В последние полтора-два года книжные прилавки стали заполняться всевозможными книгами и журналами, в названиях которых присутствует слово «Internet». Это свидетельство того, что Internet пришел в Россию. Появились пользователи и провайдеры, с каждым днем растет количество всевозможных сайтов, начали формироваться свои службы, да и престиж заставляет некоторых людей подключаться к Сети. Появился и спрос на специальную литературу.

Практически в каждой такой книге имеется глава, раздел или параграф, посвященный безопасности. Однако анализ этого материала показывает, что главные вопросы – безопасна ли глобальная сеть и как защитить свой компьютер, подключенный к ней, – так и остаются без ответа.

Предлагаемая читателю книга целиком посвящена проблеме безопасности Internet. В отличие от других подобных изданий, она построена по принципу анализа возможных и существующих уязвимостей Сети, которые реализуются или могут быть реализованы в Internet. В книге рассматривается практически все, что грозит пользователю при работе с Internet, что поджидает каждого в этом удивительно интересном, но, подчеркиваем, опасном путешествии по Сети.

Основные понятия компьютерной безопасности

Для того чтобы рассматривать в дальнейшем вопросы защиты в Internet, необходимо напомнить основные понятия, которыми оперирует теория компьютерной безопасности. Вообще говоря, их всего три: это угрозы, уязвимости и атаки. Хотя искушенному читателю смысл их и так хорошо ясен, постараемся пояснить его.

Итак, угроза безопасности компьютерной системы – это потенциально возможное происшествие, неважно, преднамеренное или нет, которое может оказать нежелательное воздействие на саму систему, а также на информацию, хранящуюся в ней. Иначе говоря, угроза – это нечто плохое, что когда-нибудь может произойти.

Уязвимость компьютерной системы – это некая ее неудачная характеристика, которая делает возможным возникновение угрозы. Другими словами, именно из-за наличия уязвимостей в системе происходят нежелательные события.

Наконец, атака на компьютерную систему – это действие, предпринимаемое злоумышленником, которое заключается в поиске и использовании той или иной уязвимости. Таким образом, атака – это реализация угрозы. Заметим, что такое толкование атаки (с участием человека, имеющего злой умысел) исключает присутствующий в определении угрозы элемент случайности, но, как показывает опыт, различить преднамеренные и случайные действия бывает невозможно и хорошая система защиты должна адекватно реагировать на любое из них.

Исследователи обычно выделяют три основных вида угроз безопасности – это угрозы раскрытия, целостности и отказа в обслуживании.

Угроза раскрытия заключается том, что информация становится известной тому, кому не следовало бы ее знать. В терминах компьютерной безопасности угроза раскрытия имеет место всякий раз, когда получен доступ к некоторой конфиденциальной информации, хранящейся в вычислительной системе или передаваемой от одной системы к другой. Иногда вместо слова «раскрытие» используются термины «кража» или «утечка».

Угроза целостности включает в себя любое умышленное изменение (модификацию или даже удаление) данных, хранящихся в вычислительной системе или передаваемых из одной системы в другую. Обычно считается, что угрозе раскрытия подвержены в большей степени государственные структуры, а угрозе целостности – деловые или коммерческие.

Угроза отказа в обслуживании возникает всякий раз, когда в результате определенных действий блокируется доступ к некоторому ресурсу вычислительной системы. Реально блокирование может быть постоянным, так чтобы запрашиваемый ресурс никогда не был получен, или может вызвать только задержку, достаточно долгую для того, чтобы он стал бесполезным. В таких случаях говорят, что ресурс исчерпан. В локальных вычислительных системах (ВС) наиболее частыми являются угрозы раскрытия и целостности, а в глобальных, как будет показано далее, – на первое место выходит угроза отказа в обслуживании.

Особенности безопасности компьютерных сетей

Основной особенностью любой сетевой системы является то, что ее компоненты распределены в пространстве, а связь между ними осуществляется физически, при помощи сетевых соединений (коаксиальный кабель, витая пара, оптоволокно и т. п.), и программно, при помощи механизма сообщений. При этом все управляющие сообщения и данные, пересылаемые между объектами распределенной вычислительной системы, передаются по сетевым соединениям в виде пакетов обмена.

К сетевым системам, наряду с обычными (локальными) атаками, осуществляемыми в пределах одной компьютерной системы, применим специфический вид атак, обусловленный распределенностью ресурсов и информации в пространстве, – так называемые сетевые (или удаленные) атаки (remote или network attacks). Они характеризуются, во-первых, тем, что злоумышленник может находиться за тысячи километров от атакуемого объекта, и, во-вторых, тем, что нападению может подвергаться не конкретный компьютер, а информация, передающаяся по сетевым соединениям. С развитием локальных и глобальных сетей именно удаленные атаки становятся лидирующими как по количеству попыток, так и по успешности их применения, и, соответственно, обеспечение безопасности ВС с точки зрения противостояния сетевым атакам приобретает первостепенное значение.

Под удаленной атакой обычно понимается информационное разрушающее воздействие на распределенную ВС, программно осуществляемое по каналам связи. Такое определение охватывает обе особенности сетевых систем – распределенность компьютеров и распределенность информации. Поэтому далее будут рассмотрены два подвида таких атак – это удаленные атаки на инфраструктуру и протоколы сети и удаленные атаки на операционные системы и приложения. При этом под инфраструктурой сети мы понимаем сложившуюся систему организации отношений между объектами сети и используемые в сети сервисные службы, а под операционными системами и приложениями – все программное обеспечение, работающее на удаленном компьютере, которое тем или иным образом обеспечивает сетевое взаимодействие.

Что такое хорошо и что такое плохо

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

Принципиальное различие между хакерами и кракерами состоит в целях, которые они преследуют. Основная задача хакера в том, чтобы, исследуя вычислительную систему, обнаружить слабые места (уязвимости) в ее системе безопасности и информировать пользователей и разработчиков системы с целью последующего устранения найденных уязвимостей. Другая задача хакера – проанализировав существующую безопасность вычислительной системы, сформулировать необходимые требования и условия повышения уровня ее защищенности.

С другой стороны, основная задача кракера состоит в непосредственном осуществлении взлома системы с целью получения несанкционированного доступа к чужой информации – иначе говоря, для ее кражи, подмены или для объявления факта взлома. Кракер, по своей сути, ничем не отличается от обычного вора, взламывающего чужие квартиры и крадущего вещи. Он взламывает вычислительные системы и крадет чужую информацию. Итак, кардинальное различие между хакерами и кракерами в том, что первые – исследователи компьютерной безопасности, а вторые – просто воры или вандалы. Хакер в данной терминологии – это специалист. В качестве доказательства приведем определение из словаря Guy L. Steele.

HACKER, сущ. 1. Индивидуум, который получает удовольствие от изучения деталей функционирования компьютерных систем и от расширения их возможностей, в отличие от большинства пользователей компьютеров, которые предпочитают знать только необходимый минимум. 2. Энтузиаст программирования; индивидуум, получающий удовольствие от самого процесса программирования, а не от теоретизирования по этому поводу.

Данная трактовка термина «хакер» отличается от принятой в средствах массовой информации, которые, собственно, и привели к подмене понятий. В последнее время многие специалисты по компьютерной безопасности (особенно на Западе) стали аккуратнее относиться к этим терминам, и мы в подобной трактовке терминов уже не одиноки.

Низменность мотивов кракеров и отсутствие стремления к профессиональному росту приводят к тому, что 90 % из них являются «чайниками», которые взламывают плохо администрируемые системы, в основном используя чужие программы (обычно такая программа называется exploit). Причем это мнение тех самых 10 % профессиональных кракеров – бывших хакеров, ставших на путь нарушения закона. Их, в отличие от кракеров-«чайников», остановить действительно очень сложно, но, как показывает практика, отнюдь не невозможно (см. противоборство Митника и Шимомуры в главе 4). Очевидно, что для предотвращения возможного взлома или устранения его последствий требуется пригласить квалифицированного специалиста по информационной безопасности – профессионального хакера.

Однако было бы несправедливо смешать в одну кучу всех кракеров, однозначно назвав их ворами. По нашему мнению, кракеров можно разделить на три следующих класса в зависимости от цели, с которой осуществляется взлом: вандалы, «шутники» и профессиональные взломщики.

Вандалы – самая известная (во многом благодаря широкому распространению вирусов, а также творениям некоторых журналистов) и, надо сказать, самая малочисленная (к счастью) часть кракеров. Их основная цель – взломать систему для ее дальнейшего разрушения. К ним можно отнести, во-первых, любителей команд типа rm – f – d *, del *.*, format c:/U и т. д. и, во-вторых, специалистов в написании вирусов или «троянских» коней. Совершенно естественно, что весь компьютерный мир ненавидит кракеров-вандалов лютой ненавистью. Эта стадия кракерства характерна для новичков и быстро проходит, если кракер продолжает совершенствоваться (ведь довольно скучно осознавать свое превосходство над беззащитными пользователями). Кракеров, которые даже с течением времени не миновали эту стадию, а только все более оттачивали свои навыки разрушения, иначе, чем социальными психопатами, не назовешь.

«Шутники» – наиболее безобидная часть кракеров (конечно, в зависимости от того, насколько злые они предпочитают шутки), основная цель которых – известность, достигаемая путем взлома компьютерных систем и внесения туда различных эффектов, выражающих их неудовлетворенное чувство юмора. К «шутникам» также можно отнести создателей вирусов с различными визуально-звуковыми эффектами (музыка, дрожание или переворачивание экрана, рисование всевозможных картинок и т. п.). «Шутники», как правило, не наносят существенного ущерба компьютерным системам и их администраторам (разве что моральный). На сегодняшний день в Internet это наиболее распространенный класс кракеров, обычно осуществляющих взлом Web-серверов, чтобы оставить там упоминание о себе. Все это либо невинные шалости начинающих, либо рекламные акции профессионалов.

Взломщики – профессиональные кракеры, пользующиеся наибольшим почетом и уважением в кракерской среде. Их основная задача – взлом компьютерной системы с серьезными целями, например с целью кражи или подмены хранящейся там информации. Как правило, для того чтобы осуществить взлом, необходимо пройти три основные стадии: исследование вычислительной системы с выявлением в ней изъянов (уязвимостей), разработка программной реализации атаки и непосредственное ее осуществление. Естественно, настоящим профессионалом можно считать только того кракера, который для достижения своей цели проходит все три стадии. С небольшой натяжкой профессионалом можно также считать того кракера, который, используя добытую третьим лицом информацию об уязвимости в системе, пишет ее программную реализацию (exploit). Осуществить третью стадию, используя чужие разработки, очевидно, может практически каждый.

Если абстрагироваться от предмета кражи, то работа взломщиков – это обычное воровство. К сожалению, в России все не так просто. Конечно, взлом компьютерных систем ни в коем случае нельзя назвать достойным делом, но в стране, где большая часть находящегося у пользователей программного обеспечения является пиратским (хотя ситуация, наконец, меняется в лучшую сторону – становится модным использовать легальное ПО), то есть украденным не без помощи тех же взломщиков, почти никто не имеет морального права «бросить в них камень».

В этой книге мы ограничимся рассмотрением хакеров-кракеров с позиций распределенных систем, однако не нужно забывать, что самая многочисленная категория кракеров занимается более обыденными вещами, а именно: снятием защиты с коммерческих версий программных продуктов, изготовлением регистрационных ключей (registration key) для условно бесплатных программ (shareware) и т. п.

Цели кракера

Итак, какие же цели преследует кракер, атакующий извне ваш компьютер? Очевидно, их может быть несколько:

• получить доступ к важной информации, хранящейся у вас. Вероятно, вы крупная компьютерная шишка, и за вами серьезно охотятся (если, конечно, этой информацией не является несколько гигабайт изображений высокого разрешения);

• получить доступ к ресурсам вашей системы. Это может быть как процессорное время (особенно, если вы обладаете суперкомпьютером), так и дисковое пространство (например, для организации пиратского ftp-сайта). В этом случае вы не только ничего не потеряете, но и, возможно, приобретете честно украденное программное обеспечение стоимостью много тысяч долларов;

• нарушить работоспособность вашего хоста без реализации угрозы раскрытия. Это бывает опасно, если ваш хост должен обеспечивать бесперебойное обслуживание клиентов;

• иметь плацдарм для осуществления вышеназванных целей, но для атаки на другой компьютер – тогда в журналах атакованного компьютера будет значиться, что атака осуществлялась с вашего адреса. Вы, конечно, будете доказывать, что вы тут ни при чем, и, вероятно, докажете это, но инцидент доставит вам несколько неприятных минут и вы услышите обидные слова об уровне защиты вашего хоста;

• запустить пробный шар, отладить механизмы атак на другие системы. Не расстраивайтесь, ведь это доказательство того, что вы не так уж бесполезны в сети, в отличие от других хостов, на которые никогда никто не нападал и которые остро ощущают свою ненужность.

Сетевая информационная безопасность: мифы и реальность

Всемогущество хакеров

Глубокое непонимание большинством обывателей проблем, связанных с информационной безопасностью в вычислительных системах, с течением времени сформировало определенный миф о всемогуществе хакеров и повсеместной беззащитности компьютерных систем. Действительно, современные вычислительные системы и сети общего назначения имеют серьезнейшие проблемы с безопасностью. Но, подчеркнем, именно вычисли тельные системы общего назначения. Там же, где требуется обработка критической информации и обеспечение высшего уровня защиты и секретности (например, в военной области, в атомной энергетике и т. п.), используются специализированные защищенные ВС, которые (и это чрезвычайно важно!) в основном изолированы от сетей общего назначения (от сети Internet, например). Поэтому необходимо развеять первый миф, исключительно популярный в художественной литературе, кино, а также в средствах массовой информации: кракер не может проникнуть извне в вычислительную систему стратегического назначения (например, в ВС атомной станции или пункта управления стратегическими вооружениями).

Новую жизнь в этот миф вдохнул последний военный конфликт в Югославии. Согласно сообщениям российских СМИ, складывалось ощущение, что военные сети НАТО полностью беззащитны и полный контроль над ними имеют «отважные хакеры». Естественно, что если такие перлы попадали в электронные эхо-конференции, то только в разделы юмора.

Тем не менее мы говорим лишь о невозможности получения несанкционированного удаленного доступа именно извне. В том случае, если нанести ущерб системе вознамерится кракер из состава персонала защищенной ВС, то сложно абстрактно судить, насколько успешны будут его попытки.

В качестве примера напомним случай на Игналинской АЭС, когда местный системный программист внедрил в ВС программную закладку («троянского» коня), которая чуть не привела к аварии на станции. Однако, как утверждает статистика, нарушения безопасности системы собственным персоналом составляют около 90 % от общего числа нарушений. Итак, критические вычислительные системы нельзя назвать неуязвимыми, но реализовать на них успешную удаленную атаку практически невозможно.

Прочитав этот раздел, недоверчивый читатель может заметить, что он лично встречал заметки о том, как «кракеры проникли в компьютер Пентагона или НАСА». Все дело в том, что любая уважающая себя организация, будь то ЦРУ, АНБ или НАСА, имеет свои WWW– или ftp-серверы, находящиеся в открытой сети и доступные всем. И кракеры в этом случае проникали именно в них (а ни в коем случае не в секретные или закрытые сети), используя, может быть, один из механизмов, описанных в нашей книге.

Защита банковских систем

Другим и, пожалуй, наиболее устойчивым мифом является миф о всеобщей беззащитности банковских вычислительных систем. Да, действительно, в отличие от ВС стратегического назначения, банки из-за конкурентной борьбы между собой вынуждены для обеспечения удобства и быстродействия работы с клиентами предоставлять им возможность удаленного доступа из сетей общего пользования к своим банковским вычислительным системам. Однако, во-первых, для связи в этом случае используются защищенные криптопротоколы и разнообразные системы сетевой защиты (например, Firewall), и, во-вторых, предоставление клиенту возможности удаленного доступа отнюдь не означает, что клиент может получить доступ непосредственно к внутренней банковской сети. По мнению специалистов, зарубежные банковские ВС (про отечественные мы не говорим, пока еще не достигнут соответствующий уровень автоматизации расчетов) являются наиболее защищенными после ВС стратегического назначения.

Однако в последние годы некоторым журналистам, в том числе и отечественным, в погоне за сенсацией удалось (и не без успеха, особенно на основе реально имевшего место дела Левина) придумать миф о всеобщей беззащитности банковских систем. Яркий пример подобных творений – статья г-на А. Какоткина «Компьютерные взломщики», опубликованная в еженедельнике «Аргументы и Факты» в феврале 1997 года. Вывод из этой статьи, перефразируя слова ее автора, можно сделать следующий: «Каждому хакеру – по бронежилету и запасному процессору». Не нужно быть крупным специалистом по компьютерной безопасности, чтобы, прочитав эту статью, понять, что она неправдоподобна от начала и до конца (особенно смешно читать «подробности» взлома банковской сети). Возможно, впрочем, что недостаточно просвещенного в этой области журналиста некие люди ввели в заблуждение (или, что неудивительно, он просто чего-то не понял).

Более интересным, на наш взгляд, вопросом является то, насколько надежно на самом деле защищены банковские сети, особенно в том случае, если к ним предусмотрен удаленный доступ из сети Internet. К сожалению, мы не можем дать точного ответа, пока специализированные системы безопасности банковских ВС (естественно, под такими системами не имеются в виду операционные системы типа Novell NetWare, Windows NT или 95, UNIX, которые хоть и часто применяются в банковской среде, но специализированными уж никак не являются) не будут сертифицированы. Единственное, что можно гарантировать, – то, что с вероятностью около 99,9 % подобные системы будут подвергаться угрозе отказа в обслуживании, которая рассмотрена далее.

Сетевые кракеры

Недоверие к описанным в средствах массовой информации способам того, как кракеры осуществляют взлом, и того, к каким результатам это приводит, побудило нас подробнее рассмотреть вопрос: а реальны ли вообще такие взломы?

Так вот, ни одного подтвержденного факта осуществления целенаправленного взлома с помощью программных средств (а не с помощью подкупа и т. п.) нам не удалось найти ни в России, ни за рубежом.

Да, почти каждый день вскрываются WWW-серверы каких-то компаний. Но здесь жертва выбирается не целенаправленно, а большей частью случайно: «повезет – не повезет». Более того, подмена некоторых WWW-страниц часто вовсе не означает, как будет показано в следующих главах, полного контроля над атакованным хостом, злоумышленник может вообще не иметь к нему никакого доступа, а просто подменять эти страницыс помощью перемаршрутизации. Собственно, взлом WWW-серверов и составляет 90 % всех проявлений якобы всемогущих кракеров, обсуждаемых в сетевой и несетевой прессе.

Легендарный Кевин Митник был по большей части именно легендарным. Его самая известная (и, возможно, единственная реальная) атака обсуждается в четвертой главе этой книги. Даже если принять эту атаку так, как она преподносится (обратите внимание на наши сомнения по поводу квалификации Митника!), очевиден тот факт, что она была придумана не им и осуществлена в то время, когда в Internet меньше всего беспокоились о безопасности.

Можно вспомнить еще дело Левина. Очень туманное дело. Если Левин (или кто-то еще) действительно вскрыл CityBank, пользуясь только своей головой и руками, то мы готовы взять свои слова обратно. Но на сегодняшний день наиболее убедительной является версия, что у него все же были сообщники в этом банке, которые предоставили ему входное имя и пароль. Косвенным подтверждением этого служит факт, что «гениальный взломщик банков» почему-то был гениален только в самом процессе взлома и вел себя, скажем, не очень умно при сокрытии своих следов и противоборстве с правоохранительными органами.

Все это позволяет нам предположить, что проблема сетевых кракеров в том виде, как она обычно преподносится СМИ, на самом деле отсутствует. Да, много сил должно уделяться защите компьютерных систем от «псевдохакеров», которые считают себя профессионалами, умея запускать различные «нюки» (nuke) или подбирать пароли типа «guest». Они способны нанести этим определенный урон. Существуют, безусловно, и более квалифицированные группы кракеров, занимающиеся, например, взломом WWW-серверов для «увековечивания» собственного имени. Но у нас вызывает большое сомнение существование профессионалов, а тем более налаженной индустрии, которая допускает взлом любого более-менее защищенного хоста «на заказ». По собственному опыту мы можем предположить, что цена такого взлома должна быть в несколько раз больше, чем ценность находящейся там информации, поэтому в ход идут старые проверенные методы типа вербовки или подкупа.

Резюмируя, мы считаем, что никаких сетевых кракеров, специализирующихся на вскрытии хостов за деньги или с целью использования полученной информации для собственного обогащения, не существует. Их квалификация должна быть настолько высока, что во всем мире таких людей можно без труда пересчитать, и они наверняка являются хакерами, а не кракерами.

Межсетевые экраны Firewall как панацея от всех угроз

И последний миф – это миф о системах Firewall, как о «единственном надежном средстве обеспечения безопасности» сегмента IP-сети. Да, сама суть методики Firewall является абсолютно непогрешимой и логичной. Основной ее постулат заключается в создании bastion host (выделенный бастион), обеспечивающего контроль за безопасностью в защищаемом сегменте сети и осуществляющего связь данного сегмента с внешним миром. Но это все действует пока только в теории. На практике же все известные нам сегодня системы Firewall неспособны к отражению большинства из описанных удаленных атак как на протоколы и инфраструктуру сети, так и на операционные системы и приложения.

Это, конечно, отнюдь не означает, что отразить данные удаленные атаки принципиально невозможно, – именно в направлении обнаружения и отражения сетевых атак сейчас наиболее активно развивается современная наука. По-видимому, все дело в том, что большинство разработчиков систем Firewall, как это часто случается с разработчиками систем защиты ВС, никогда не были хакерами и, следовательно, смотрели на проблему защиты IP-сетей не с точки зрения взломщика, а с точки зрения пользователя.

Статьи Уголовного кодекса Российской Федерации, связанные с преступлениями в сфере компьютерной информации

Для тех, кто хочет посмотреть на проблему безопасности с другой стороны, со стороны кракера, напоминаем, что с 1997 года начали действовать новые статьи УК РФ, где, к сожалению, довольно расплывчато и нечетко описывается возможная уголовная ответственность за «преступления в сфере компьютерной информации» (глава 28 УК РФ):

Статья 272. Неправомерный доступ к компьютерной информации.

1. Неправомерный доступ к охраняемой законом компьютерной информации, то есть информации на машинном носителе, в электронно-вычислительной машине (ЭВМ), системе ЭВМ или их сети, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование информации, нарушение работы ЭВМ, системы ЭВМ или их сети, – наказывается штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период от двух до пяти месяцев, либо исправительными работами на срок от шести месяцев до одного года, либо лишением свободы на срок до двух лет.

2. То же деяние, совершенное группой лиц по предварительному сговору или организованной группой, либо лицом с использованием своего служебного положения, а равно имеющим доступ к ЭВМ, системе ЭВМ или их сети, – наказывается штрафом в размере от пятисот до восьмисот минимальных размеров оплаты труда или в размере заработной платы, или иного дохода осужденного за период от пяти до восьми месяцев, либо исправительными работами на срок от одного года до двух лет, либо арестом на срок от трех до шести месяцев, либо лишением свободы на срок до пяти лет.

Статья 273. Создание, использование и распространение вредоносных программ для ЭВМ.

1. Создание программ для ЭВМ или внесение изменений в существующие программы, заведомо приводящих к несанкционированному уничтожению, блокированию, модификации либо копированию информации, нарушению работы ЭВМ, системы ЭВМ или их сети, а равно использование либо распространение таких программ или машинных носителей с такими программами, – наказываются лишением свободы на срок до трех лет со штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период от двух до пяти месяцев.

2. Те же деяния, повлекшие по неосторожности тяжкие последствия, – наказываются лишением свободы на срок от трех до семи лет.

Статья 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети.

1. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети лицом, имеющим доступ к ЭВМ, системе ЭВМ или их сети, повлекшее уничтожение, блокирование или модификацию охраняемой законом информации ЭВМ, если это деяние причинило существенный вред, – наказывается лишением права занимать определенные должности или заниматься определенной деятельностью на срок до пяти лет, либо обязательными работами на срок от ста восьмидесяти до двухсот сорока часов, либо ограничением свободы на срок до двух лет.

2. То же деяние, повлекшее по неосторожности тяжкие последствия, – наказывается лишением свободы на срок до четырех лет.

По своей сути данный закон должен быть направлен именно на кракеров, однако такое правонарушение, как взлом программного обеспечения, даже не упоминается. С другой стороны, расплывчатость формулировок статей закона, в случае их формальной трактовки, позволяет привлечьк уголовной ответственности практически любого программиста или системного администратора (например, допустившего ошибку, которая повлекла за собой причинение определенного законом ущерба). Так что программы теперь лучше вообще не писать.

Если же говорить серьезно, то применение на практике приведенных статей Уголовного кодекса чрезвычайно затруднено. Это связано, во-первых, со сложной доказуемостью подобных дел (судя по зарубежному опыту) и, во-вторых, с естественным отсутствием у следователей высокой квалификации в данной области. Поэтому, видимо, пройдет еще не один год, пока мы дождемся успешного уголовного процесса над преступникамив сфере компьютерной информации.

Проблема 2000года в свете информационной безопасности

Новое издание нашей книги выходит в 1999 году, и вполне естественным нашим желанием является обратить внимание читателей на проблему 2000 года (Y2K), которую мы рассматриваем в несколько менее традиционном аспекте – как с точки зрения информационной безопасности проблема Y2K повлияет на киберпространство.

Большинство исследований, посвященных этой проблеме, в основном содержат анализ причин возможных отказов в работе прикладного или системного программного обеспечения, потери от таких отказов и меры по предотвращению сбоев в работе программного обеспечения. Однако нельзя забывать о целом классе программных средств, основная задача которых – обеспечение информационной безопасности (ПСОИБ – программные средства обеспечения информационной безопасности). В этом разделе мы рассмотрим виды ПСОИБ, потенциально наиболее уязвимые по отношению к проблеме Y2K (программные средства, которые обрабатывают данные, связанные с системной датой), выделим различные модули ПСОИБ и рассмотрим возможные причины, по которым проблема Y2K может иметь к ним непосредственное отношение.

Возможные проблемы в модулях ПСОИБ

1. Проблемы с системами шифрования/цифровой подписи.

При шифровании/дешифрировании сообщений, формировании или проверке электронной подписи, при проверке подлинности сертификата, подтверждающего личность пользователя, программные реализации криптосистем могут некорректно обрабатывать год создания сообщений, тем самым приводя к их частичной или полной потере. Это может привестик нарушению функциональности криптосистем, вплоть до полной невозможности отправлять или читать шифрограммы.

Рассмотрим подробнее сущность данной проблемы. Любая криптосистема содержит в своей основе систему анализа, хранения и распределения ключевой информации (сертификатов), предназначенной для шифрования сообщений и идентификации/аутентификации пользователей. Все сообщения, передаваемые криптосистемой, так или иначе шифруются с использованием данного сертификата, который, как правило, выдается на определенный срок и, следовательно, с течением времени устаревает. Как следствие, системы шифрования обязательно обладают встроенными модулями «временного» анализа, задача которых – сопоставлять дату сертификата с текущей, указанной в шифрограмме, для того чтобы отфильтровать устаревшие или повторные сообщения. Например, известная атака на криптосистемы связана с повторной передачей ранее перехваченных зашифрованных сообщений. В случае успеха атаки, если данное сообщение будет воспринято системой, можно вызвать повторную реакцию криптосистемы на данное сообщение, что приведет, например, к переполнениюи сбою системы (в случае направленного шторма повторными сообщениями). В связи с этим криптосистемы обычно имеют встроенную защиту от подобных атак и, анализируя дату приходящих сообщений, не допускают прием повторных сообщений или сообщений, зашифрованных с использованием устаревших ключей. В том случае, если в системе модуль «временного» анализа разработан без учета проблемы Y2K, криптосистема в целом может дать сбой, что приведет к приему повторных сообщений или полному выходу системы из строя.

2. Проблемы с модулями автоматизированного контроля безопасности системы.

Одной из стандартных функций ПСОИБ является автоматизированный контроль за безопасностью системы. Обычно данные модули осуществляют динамический контроль за состоянием АС, что вынуждает их использовать и протоколировать в log file (журнал аудита) время и дату обнаруженного контролируемого события. В стандартную поставку данных систем входят модули анализа журнала аудита. Сбои в этих модулях при попытке автоматизированного анализа базы данных, содержащей журнал аудита, могут привести к неверной реакции системы обеспечения информационной безопасности. Примером в данном случае являются системы Firewall, одна из задач которых – постоянное ведение журнала аудита, в который, помимо информации о попытках создания сетевых соединений, заносится информацияо времени создания соединения. Использование средств автоматизированного анализа журнала аудита, разработанных без учета Y2K, может вызвать их сбой и привести как к аварийному завершению процесса, осуществляющего анализ, так и к аварийному завершению работы всей системы в целом.

3. Проблемы с модулями реализации авторизованного доступа к ресурсам системы.

Одним из модулей, который присутствует практически в любой системе обеспечения компьютерной безопасности, является модуль контроля и предоставления авторизованного доступа к ресурсам системы. Данный модуль обеспечивает/запрещает доступ в систему в зависимости от даты и времени его осуществления. Например, функциями Account Expires и Logon Hours в Windows NT 4.0 можно разрешить пользователю доступ в систему с (или до) определенной даты или в определенные часы. Соответственно, в том случае, если в данном модуле о проблеме Y2K разработчики «забыли» (отметим, что эти службы приведены просто для примера), то такая забывчивость может привести к невозможности получения авторизованного доступа в систему в лучшем случае только для пользователя с установленным Account Expires, а в худшем – для всех пользователей системы, если сбой при входе в систему одного пользователя повлечет за собой сбой в работе модуля в целом.

4. Проблемы с модулями автоматизированного анализа безопасности и поиска вирусных сигнатур.

Другой разновидностью ПСОИБ являются средства автоматизированного анализа безопасности, основная задача которых состоит в анализе системы на предмет наличия в ней известных уязвимостей (сетевые сканеры безопасности, например SATAN, Internet Security Scanner и т. д.) или вирусов (антивирусов). Эти средства сетевого анализа широко применяются администраторами безопасности крупных корпоративных сетей с постоянно видоизменяемой инфраструктурой, что позволяет им выявлять внесение в ВС новых объектов, содержащих уязвимости или вирусы. Одной из стандартных функций ПСОИБ данного вида является возможность ихзапуска в определенное время. В связи с этим данный тип программного обеспечения (ПО) также становится уязвимым из-за проблемы Y2K, что приведет к невозможности анализа безопасности системы и проникновению в нее кракеров или заражению ее вирусами.

5. Проблемы со встроенными системами на основе License Key (защита от нелегального использования).

Одной из особенностей ПСОИБ является практически повсеместное применение в них систем защиты от нелегального использования, обычно основанных на временных лицензиях. Те средства, которые в качестве «привязки» используют данные о системной дате в компьютере, могут быть подвержены сбоям, связанным с неправильной интерпретацией «нулевой» даты при достижении 2000 года.

Например, лицензия (сертификат) на работу данного программного средства рассчитана на 1 год и дается с 05.05.1999 по 05.05.2000. Следовательно, после наступления 2000 года система защиты от нелегального использования может дать сбой, и ПСОИБ откажутся далее функционировать вплоть до устранения проблемы.

6. Проблемы с операционными системами, в которых функционируют ПСОИБ.

Подавляющее большинство программных средств защиты функционируют под управлением различных операционных систем. Поэтому сбой операционной системы, в которой функционируют ПСОИБ, может косвенно повлиять на функционирование самой системы защиты и привести к ее дальнейшей некорректной работе или полному выходу из строя вплоть до устранения проблемы, связанной с управляющей операционной системой. Например, сбой в сервере ntp (network time protocol), в случае использования данного сервера, может привести к сбою системы защиты в целом.

7. Проблемы с аппаратными средствами защиты.

Общепризнанным является тот факт, что в сфере информационной безопасности используются комплексные решения, включающие в себя не только программные средства обеспечения безопасности, но также и аппаратные средства.

Существующие аппаратные средства защиты, разграничивающие доступ в систему на основе различной идентифицирующей информации (сетчатка глаза, отпечатки пальцев, электронные ключи и т. д.), могут дать аппаратный сбой, связанный с неверной обработкой системной даты при идентификации пользователя. Например, сбой электронного идентификатора «Touch Memory» может сделать невозможной идентификацию/аутентификацию пользователя, и дальнейший вход в контролируемую систему будет запрещен или разрешен в зависимости от реакции системы на данный сбой.

Возможные последствия проблемы Y2K

Оценим на основе вышеизложенного возможные последствия нарушения работоспособности автоматизированных систем обеспечения информационной безопасности в связи с проблемой Y2K. Данная оценка приводитсяс учетом основных функций ПСОИБ, заключающихся в предоставлении авторизованного доступа к ресурсам системы, в шифровании/дешифрировании конфиденциальной информации, в контроле за безопасностью системы, в анализе безопасности системы.

Итак, автоматизированным системам, использующим ПСОИБ, угрожают следующие опасности:

1. Невозможность получения доступа в систему для авторизованных пользователей.

2. Предоставление доступа неавторизованным пользователям.

3. Нарушение работоспособности АС, использующей ПСОИБ.

4. Невозможность в создании/передаче/чтении конфиденциальной информации, зашифрованной ПСОИБ.

5. Невозможность контроля за безопасностью системы оставит незамеченными как предварительный анализ атакующим ресурсов системы, так и возможные успешные попытки получения неавторизованного доступа к ресурсам контролируемой АС.

6. Невозможность выявления имеющихся недостатков в системе обеспечения безопасности, а также вирусов в ПО, что может в дальнейшем повлечь за собой нарушение безопасности системы или заражение ее компьютерными вирусами.

Возможные пути решения обозначенных проблем

1. Самостоятельное тестирование ПСОИБ путем установки новой системной даты.

Это, очевидно, наиболее простой способ самостоятельной проверки, однако использовать его нужно с определенной осторожностью. Дело в том, что выданные сертификаты (лицензии), подтверждающие легальную работу ПСОИБ или личность пользователя, после изменения системной даты и запуска ПСОИБ могут оказаться просроченными и в дальнейшем (даже после восстановления текущей даты) потерять свою силу. Данный факт серьезно затрудняет тестирование систем, однако проблема решается путем хранения эталонных сертификатов на отдельных носителях (если это возможно) и тестирования только макетов АС, а ни в коем случае не реально действующих систем.

2. Обращение к производителям ПСОИБ.

Пользователям, обладающим средствами ПСОИБ, имеет смысл обратиться к фирмам-производителям за получением в связи с проблемой Y2K соответствующих рекомендаций, разъяснений и патчей к программным средствам.

Информационная безопасность России и проблема Y2K

В российских условиях проблема Y2K с точки зрения информационной безопасности, на первый взгляд, выглядит несколько неактуальной в связи с относительно слабым развитием систем телекоммуникаций, особенно по сравнению со странами с более развитой экономической структурой. Но это только на первый взгляд! В наших условиях с точки зрения безопасности на первый план выходят не современные автоматизированные системы, о которых имеется достаточно информации, а всевозможные устаревшие программы, разработанные более десяти лет назад, отвечающие за обеспечение надежной работы систем управления и доступ к объектам стратегического назначения, таким как атомные станции, военные системы управления ракетами и т. д. Об их безопасности в связи с проблемой Y2K в данном случае судить достаточно сложно, но можно предположить, что программы, созданные в прошедших десятилетиях, содержат немало ошибок, связанных с неправильной обработкой системной даты. К каким последствиям это может привести – ответ очевиден. Примером сбоя ПО стратегического назначения служит известная авария французского ракетоносителя Ariane 5, произошедшая 4 июня 1996 года из-за тривиальной ошибки переполнения переменной и принесшая только прямых убытков на 500 миллионов долларов.

Глава 2
Социальная инженерия и ее применение

Все-таки желательно, гражданин артист, чтобы вы незамедлительно разоблачили бы перед зрителями технику ваших фокусов.

М. Булгаков. Мастер и Маргарита

В процессе написания этой части возник вопрос, как можно корректно перевести Social Engineering… В электронном переводчике Socrat мы нашли, что это – «общественное проектирование». Наверное, корректнее сказать «социальное исследование» или «социальная проработка», но оба термина совершенно неблагозвучны. Пожалуй, оставим так – «социальная инженерия» (СИ). Дело в том, что до сих пор этой проблеме в отечественной прессе не уделялось внимания, и потому соответствующего термина не существует.

Итак, что такое социальная инженерия в контексте информационной безопасности? Словарь хакерского жаргона сообщает: «Социальная инженерия – термин, использующийся взломщиками и хакерами для обозначения несанкционированного доступа к информации иначе, чем взлом программного обеспечения; цель – обхитрить людей для получения паролей к системе или иной информации, которая поможет нарушить безопасность системы. Классическое мошенничество включает звонки по телефону в организацию для выявления тех, кто имеет необходимую информацию, и затем звонок администратору, эмулируя служащего с неотложной проблемой доступа к системе».

Да, действительно, самое простое средство проведения СИ – телефон. Все исследование основывается на одной маленькой детали: в крупных компаниях лица, ответственные за систему, не знают всех сотрудников, поэтому появляется возможность манипулировать действиями администраторов. Телефон облегчает эту задачу, так как администратор не видит абонента, который может звонить даже из другого города или страны.

В западной прессе часто мелькают сообщения о том, что кто-то где-то что-то взломал. Немалая часть этих взломов как раз и была проведена с помощью СИ. В идеальных условиях у взломщика должны быть:

• телефон, воспроизводящий шум офиса;

• автоопределитель номера;

• устройство для изменения голоса;

• возможность использовать чужую телефонную линию.

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

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

Обычно атаки класса СИ представляют собой комбинацию некоторых средств, методов и «параметров окружения». Основные разновидности можно разделить на следующие категории.

По средствам применения:

• телефон;

• электронная почта;

• разговор по 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, время от времени выпускает новые версии.

Все приведенные выше примеры не выдуманы, а взяты из реальной жизни. Они показывают, что наибольшую опасность для организаций представляют люди, а не слабая защита операционных систем. Далее рассмотрим, каким образом можно оградить себя от подобных методов несанкционированного проникновения.

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

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

Тестирование системы защиты – это метод выявления недостатков безопасности с точки зрения постороннего человека (взломщика). Он позволяет протестировать схему действий, которая раскрывает и предотвращает внутренние и внешние попытки проникновения и сообщает о них. Используя этот метод, можно обнаружить даже те недостатки защиты, которые не были учтены в самом начале, при разработке политики безопасности. Тест должен разрешить два основных вопроса:

• все ли пункты политики безопасности достигают своих целей и используются так, как это было задумано;

• существует ли что-либо, не отраженное в политике безопасности, что может быть использовано для осуществления целей злоумышленника.

Все попытки должны контролироваться обеими сторонами – как взломщиком, так и «клиентом». Это поможет протестировать систему гораздо эффективнее. Необходимо также свести к минимуму количество людей, знающих о проведении эксперимента. При тестировании могут быть затронуты деликатные вопросы частной жизни сотрудников и безопасности организации, поэтому желательно получить предварительное разрешение на проведение такой акции. Ваше непосредственное начальство обязательно должно быть в курсе происходящего.

Профессионалам в области безопасности при проведении теста необходимо иметь такое же положение, как и у потенциального злоумышленника: в их распоряжении должны быть время, терпение и максимальное количество технических средств, которые могут быть использованы взломщиком. Более того, проверяющим следует расценить это как вызов своему профессионализму, а значит, проявить столько же рвения, сколько и взломщик, иначе тесты могут не достичь необходимого результата.

Требования, предъявляемые к человеку, проводящему тесты:

1. Необходимо быть дружелюбным, легко располагающим к себе и вызывать симпатию.

2. Иметь хорошие технические знания.

Вот пример подобного тестирования, описанный И. Винклер (National Computer Security Association). Эксперимент провели с разрешения компании, о его ходе было проинформировано только «высокое» начальство.

«В самом начале атакующие выполнили поиск в Internet для получения представления об организации. Изучение дополнительных баз данных позволило установить имена большого числа сотрудников организации и ее руководства. Поиск в телефонном справочнике дал телефонный номер офиса компании поблизости от атакующих. Звонок в офис позволил получить копию ежегодного отчета компании, а также бесплатный телефонный номер компании. Для получения этой информации не потребовалось ничего объяснять.

Объединив данные ежегодного отчета с данными, полученными из Internet, атакующие получили имена и должности многих лиц из руководства вместе с информацией о проектах, над которыми они работают. Следующим шагом было получение телефонного справочника компании, что позволило установить имена еще ряда сотрудников и получить полное представление об организационной структуре компании.

С бесплатного телефонного номера был сделан звонок по основному номеру компании для контакта со службой рассылки. Звонивший сказал, что он новый сотрудник и хочет узнать, какую информацию требуется указать для пересылки по почте в США и за границу. В результате атакующие узнали, что требуется только два числа – личный номер сотрудника и номер торгового центра. Звонок в отдел графики подтвердил важность этих двух чисел.

Используя телефонный справочник, атакующие стали звонить десяткам служащих в разных отделах для получения личных номеров служащих, которые могли быть использованы для последующих атак. Номера обычно узнавались так: проверяющий выдавал себя за сотрудника отдела кадров, который по ошибке звонил не тому сотруднику и спрашивал номер для того, чтобы понять, что он ошибся.

Затем атакующие определили, что они могут попытаться получить имена новых сотрудников, которые, скорее всего, наименее осведомлены об угрозах компании. Используя информацию первой фазы атаки, были установлены имена нескольких руководителей компании. Телефонный справочник позволил установить имя служащего, который, скорее всего, и является руководителем. На этот момент времени было установлено, что самым лучшим методом получения имен новых служащих будет заявление, что руководитель хочет сам познакомиться с новыми служащими компании. Проверяющие собрались заявить, что выполняют поручение руководителя, а затем, что руководитель был расстроен, так как полученная информация уже устарела.

Удача сопутствовала им, и на звонок в отдел по работе с новыми сотрудниками ответил автосекретарь. Сообщение позволило установить: 1) отдел переехал; 2) имя человека, за которым закреплен телефонный номер; 3) новый телефонный номер. Имя человека было важно, так как знание конкретного имени увеличивает правдоподобность вопросов звонившего. Было уже поздно, и этот человек уже ушел. Это позволило атакующему заметить в разговоре, что отсутствующий человек обычно предоставляет информацию. Атакующий также заявил, что очень большой начальник был сильно расстроен. Его «пожалуйста» побудило человека, отвечавшего по телефону, дать запрошенную информацию. Были получены имена всех сотрудников, начавших работать в течение этой недели, и для многих стали известны отделы, в которых они работают.

Затем было установлено, что атакующим следует избегать контакта с сотрудниками отдела информационных систем, так как те, скорее всего, знают о важности защиты паролей. При звонках новым сотрудникам атакующие выдавали себя за сотрудников отдела информационных систем и проводили с ними по телефону краткий инструктаж по компьютерной безопасности. В ходе этого инструктажа атакующий получал базовую информацию, включая типы используемых компьютерных систем, используемые приложения, номер сотрудника, идентификатор пользователя и пароль. В одном случае атакующий предложил новому сотруднику сменить пароль, так как пароль легко угадать.

Demon Dialer (программа, выясняющая наличие модемов на противоположном конце линии) и звонок в справочную службу отдела информационных систем дали телефонные номера модемов компании. Эти номера позволили атакующим использовать скомпрометированные идентификаторы. Получение информации о модемах позволило обойти очень сложную систему брандмауэра и сделать ее бесполезной. В ходе дальнейших атак аналогичные методы использовались для того, чтобы получить свой собственный идентификатор в компьютерах компании. После этого атакующие заставили служащих компании послать им коммуникационную математику, которая организует безопасное соединение».

Осведомленность

Осведомленность играет ведущую роль в защите организации от проникновения в информационные системы с помощью СИ, так как СИ основана на использовании таких сторон человеческой природы, как неосторожность и беззаботность. Осведомленность является ключевым моментом и вследствие того, что это предварительная, предупреждающая мера, нацеленная на усвоение самими служащими основных принципов и необходимых правил защиты. Разумеется, этот аспект требует обучения и тестирования сотрудников.

Основные шаги для усиления безопасности компьютерных систем компании:

1. Привлечение внимания людей к вопросам безопасности.

2. Осознание сотрудниками всей серьезности проблемы и принятие политики безопасности организации.

3. Изучение и внедрение необходимых методов и действий для повышения защиты информационного обеспечения.

Осведомленность должна быть включена во все уровни организации, начиная с самого верхнего, где и принимается политика безопасности. На основе этой политики и распределения ответственности можно создавать модель защиты. После разбора вышеописанного примера И. Винклер дает советы по разработке и внедрению политики безопасности, позволяющей защититься от СИ:

Не полагайтесь на систему внутренней идентификации

Атакующих иногда просят аутентифицироваться с помощью указания их личного номера сотрудника. К радости взломщиков, такие номера часто используются и могут быть легко получены от реальных сотрудников. У атакующего обычно имеется список номеров сотрудников, и он готов к любому вопросу. Многие компании полагаются на похожие системы идентификации. Компаниям следует иметь отдельный идентификатор для работ, связанных с поддержкой информационных систем. Наличие такого идентификатора позволит отделить функции технического сопровождения от других и обеспечит дополнительную безопасность как для работ по сопровождению, так и для взаимодействия сотрудников в организации.

Реализуйте систему проверки с помощью встречного звонка, когда сообщаете защищенную информацию

От многих атак можно было бы защититься, если бы служащие компании проверяли личность звонившего, набрав его телефонноый номер, который указан в телефонном справочнике компании. Эта процедура не очень удобна в повседневной работе, однако при сопоставлении с возможными потерями неудобства будут оправданы. Если от сотрудников потребовать делать встречные звонки любому, кто просит сообщить персональную или конфиденциальную информацию, риск утечки информации будет сведен к минимуму. Использование АОН также может пригодиться для этой цели.

Реализуйте программу обучения пользователей в области безопасности

Хотя предоставление своего пароля постороннему может показаться глупым для читателей данной книги, многие компьютерные пользователи не увидят в этом ничего плохого. Компании тратят огромные суммы, закупая самое современное оборудование и программы, но необходимость обучать пользователей игнорируется. Компьютерные профессионалы должны понимать: то, что для них естественно, может быть неизвестно остальным. Хорошая программа обучения пользователей может быть реализована с минимальными затратами и сохранить компании миллионы.

Назначьте ответственных за техническую поддержку

Каждый сотрудник компании обязан лично познакомиться с ответственным за техническую поддержку и обращаться исключительно к нему. При этом на 60 пользователей достаточно одного ответственного. Пользователи должны немедленно связываться с аналитиком, если к ним обращается некто, заявляющий, что он сотрудник службы технической поддержки.

Создайте систему оповещения об угрозах

Атакующие знают, что, даже если их обнаружат, у служащего нет возможности предупредить других сотрудников об атаках. В результате атака может быть продолжена с минимальными изменениями и после компрометации. По существу, компрометация только улучшит атаку, так как атакующие узнают, что именно не срабатывает.

Социальная инженерия для проверки политики безопасности

Социальная инженерия является единственным подходящим методом проверки эффективности политики безопасности. Хотя многие тесты проверяют физические и электронные уязвимые места, но лишь некоторые анализы безопасности исследуют бреши, создаваемые людьми. Следует, однако, отметить, что тесты такого типа должны проводить только квалифицированные и надежные люди.

Методы социальной инженерии, применяемые злоумышленником, представляют серьезную угрозу информационной безопасности для любой организации. Нужно создать и разработать различные варианты политики безопасности, определить правила корректного использования телефонов, компьютеров и т. д. Необходимо учитывать и неосведомленность в области безопасности, так как любые средства технического контроля (независимо от их эффективности) могут быть использованы людьми ненадлежащим образом. В итоге тестирование системы безопасности должно обеспечить вам защиту от проникновения.

Часть II
Протоколы

Глава 3
Удаленные атаки на распределенные вычислительные системы

Непостижимо все, что в мире есть,

К тому ж изъянов в том, что есть, не счесть.

О. Хайям. Рубаи

Основной особенностью любой распределенной системы, как уже отмечалось, является то, что ее компоненты рассредоточены в пространстве и связь между ними физически осуществляется при помощи сетевых соединений, а программно – при помощи механизма сообщений. При этом все управляющие сообщения и данные, пересылаемые между объектами распределенной ВС (РВС), передаются по сетевым соединениям в виде пакетов обмена. Данная особенность и является основной для рассматриваемых в этой главе удаленных атак на инфраструктуру и протоколы распределенных ВС.

Классификация угроз безопасности распределенных вычислительных систем

Еще в конце 80-х – начале 90-х годов такого понятия и научного направления, как сетевая безопасность, по сути, не существовало. В те годы только зарождалось направление, связанное с компьютерной безопасностью вообще (особенно это относится к России), поэтому в научных исследованиях, посвященных анализу угроз безопасности ВС, не проводилось разделения между угрозами, специфичными для распределенных и локальных вычислительных систем. В одном исследовании, проделанном отечественными авторами [1], была предложена систематизация информационных разрушающих воздействий на ВС и рассмотрены их основные типы, в том числе описывались и классифицировались воздействия, присущие только распределенным ВС. Такой обобщенный подход к систематизации является правомочным, но, к сожалению, он не позволяет точно охарактеризовать и классифицировать воздействия, присущие именно РВС. Это связано с тем, что распределенные вычислительные системы обладают серьезными отличиями от локальных ВС. Поэтому в последующих научных работах [25, 31] применялся подход к систематизации угроз, когда из всего множества A угроз ВС (A = {a. | i = 1..N}, где a. – i-я угроза ВС) рассматривалось подмножество угроз B, присущих только распределенным ВС (B = {h | i = 1..M}, где h – i-я угроза РВС). Соответственно для данного множества угроз B предлагалась своя классификация. Однако и такой подход к систематизации не был лишен недостатков, так как все угрозы из множества B в зависимости от объекта, подвергающегося воздействию, можно разделить на следующие два подмножества:

• удаленные атаки на инфраструктуру (под инфраструктурой сети мы будем понимать сложившуюся систему организации отношений между объектами сети и используемые в сети сервисные службы) и протоколы сети (множество B1);

• удаленные атаки на телекоммуникационные службы или серверы предоставления удаленного сервиса (множество B2).

Первые используют уязвимости в сетевых протоколах и в инфраструктуре сети, а вторые – уязвимости в телекоммуникационных службах («дыры», программные закладки, программные ошибки).

Проведенный анализ причин успеха реальных воздействий (из множества B1) на различные распределенные вычислительные системы позволил выделить основные причины, по которым возможна реализация данных угроз:

• использование широковещательной среды передачи (например, Ethernet);

• применение нестойких алгоритмов идентификации удаленных субъектов и объектов РВС;

• использование протоколов динамического изменения маршрутизации с нестойкими алгоритмами идентификации;

• применение алгоритмов удаленного поиска с использованием широковещательных и направленных поисковых запросов;

• возможность анонимного захвата одним субъектом РВС множества физических или логических каналов связи.

Иными словами, возможный успех атак из множества B1 обусловлен наличием в распределенной системе одной (или нескольких) из вышеназванных причин. Систематизация основных причин успеха угроз безопасности РВС позволила ввести понятие типовой угрозы безопасности РВС (из множества B1), инвариантной к типу РВС, и создать систематизацию типовых угроз безопасности РВС из множества B1, которая рассмотрена далее.

Итак, перейдем к классификации угроз из выделенного множества B1. Основная цель любой классификации состоит в том, чтобы предложить такие отличительные признаки, используя которые, можно наиболее точно описать характеризуемые явления или объекты. Поскольку ни в одном из известных авторам научных исследований не проводилось различия между локальными и удаленными информационными воздействиями на ВС, применение уже известных обобщенных классификаций для описания удаленных воздействий не позволяет более или менее точно раскрыть их сущность и описать механизмы и условия их осуществления. Для более точного описания угроз безопасности РВС (из множества B1) предлагается следующая классификация (см. рис. 3.1).

Рис. 3.1. Классификация угроз безопасности РВС


1. По характеру воздействия:

• пассивное (класс 1.1);

• активное (класс 1.2).

Пассивным воздействием на распределенную вычислительную систему можно назвать воздействие, которое не оказывает непосредственного влияния на работу системы, но способно нарушать ее политику безопасности. Именно отсутствие непосредственного влияния на работу распределенной ВС приводит к тому, что пассивное удаленное воздействие практически невозможно обнаружить. Примером типового пассивного удаленного воздействия в РВС служит прослушивание канала связи в сети. При пассивном воздействии, в отличие от активного, не остается никаких следов (от того, что атакующий просмотрит чужое сообщение в системе, ничего не изменится).

Под активным воздействием на распределенную ВС понимается воздействие, оказывающее непосредственное влияние на работу системы (изменение конфигурации РВС, нарушение работоспособности и т. д.) и нарушающее принятую в ней политику безопасности. Практически все типы удаленных атак являются активными воздействиями. Это связано с тем, что в самой природе разрушающего воздействия заложено активное начало. Очевидным отличием активного воздействия от пассивного является принципиальная возможность его обнаружения (естественно, с большими или меньшими усилиями), так как в результате его осуществления в системе происходят определенные изменения.

2. По цели воздействия:

• нарушение конфиденциальности информации либо ресурсов системы (класс 2.1);

• нарушение целостности информации (класс 2.2);

• нарушение работоспособности (доступности) системы (класс 2.3).

Этот классификационный признак является прямой проекцией трех основных типов угроз: раскрытия, целостности и отказа в обслуживании.

Цель большинства атак – получить несанкционированный доступ к информации. Существуют две принципиальные возможности такого доступа: перехват и искажение. Перехват – это получение информации без возможности ее искажения. Примером перехвата может служить прослушивание канала в сети. Такая атака является пассивным воздействием и ведет к нарушению конфиденциальности информации.

Искажение информации означает полный контроль над информационным потоком между объектами системы или возможность передачи сообщений от имени другого объекта. Очевидно, что искажение информации ведет к нарушению ее целостности, то есть представляет собой активное воздействие. Примером удаленной атаки, цель которой – нарушение целостности информации, может служить типовая удаленная атака (УА) «ложный объект РВС».

Принципиально иной целью атаки является нарушение работоспособности системы. В этом случае основная цель взломщика – добиться, чтобы операционная система на атакованном объекте вышла из строя и, следовательно, для всех остальных объектов системы доступ к ресурсам данного объекта был бы невозможен. Примером удаленной атаки, целью которой является нарушение работоспособности системы, может служить типовая атака «отказ в обслуживании».

3. По условию начала осуществления воздействия.

Удаленное воздействие, как и любое другое, может начать осуществляться только при определенных условиях. В распределенных ВС существуют три вида таких условий:

• атака после запроса от атакуемого объекта (класс 3.1);

• атака после наступления ожидаемого события на атакуемом объекте (класс 3.2);

• безусловная атака (класс 3.3).

В первом случае взломщик ожидает передачи от потенциальной цели атаки запроса определенного типа, который и будет условием начала осуществления воздействия. Примером подобных сообщений в ОС Novell NetWare может служить запрос SAP (атака описана в [11]), а в Internet – запросы DNS и ARP. Удаленные атаки класса 3.1 на объекты сети рассмотрены далее в главе 4. Следует отметить, что такой тип удаленных атак наиболее характерен для распределенных ВС.

При осуществлении атаки класса 3.2 атакующий осуществляет постоянное наблюдение за состоянием операционной системы объекта атаки и при возникновении определенного события в этой системе начинает воздействие. Как и в предыдущем случае, инициатором начала атаки выступает сам атакуемый объект. Примером такого события может быть прерывание сеанса работы пользователя с сервером в ОС Novell NetWare без выдачи команды LOGOUT [11].

При безусловной атаке ее начало не зависит от состояния системы атакуемого объекта, то есть воздействие осуществляется немедленно. Следовательно, в этом случае его инициатором является атакующий. Пример воздействия данного вида рассмотрен в главе 4.

4. По наличию обратной связи с атакуемым объектом:

• с обратной связью (класс 4.1);

• без обратной связи, или однонаправленная атака (класс 4.2).

Если взломщику требуется получить ответ на некоторые запросы, переданные на объект воздействия, то есть между атакующим и целью атаки существует обратная связь, которая позволяет ему адекватно реагировать при изменении ситуации, то такое воздействие можно отнести к классу 4.1. Подобные удаленные атаки наиболее характерны для распределенных ВС.

Инициатор удаленной атаки без обратной связи, напротив, не реагирует ни на какие изменения, происходящие на атакуемом объекте. Воздействие данного вида обычно осуществляется передачей на атакуемый объект одиночных запросов, ответы на которые атакующему не нужны. Примером подобных атак – их можно назвать однонаправленными – является типовая атака «отказ в обслуживании», а также атаки, рассмотренные в главе 4.

5. По расположению субъекта атаки относительно атакуемого объекта:

• внутрисегментное (класс 5.1);

• межсегментное (класс 5.2).

Рассмотрим ряд определений.

Субъект атаки, или источник атаки – это атакующая программа или оператор, непосредственно осуществляющие воздействие.

Хост (host) – сетевой компьютер.

Маршрутизатор, или роутер (router) – устройство, обеспечивающее маршрутизацию пакетов обмена в глобальной сети.

Подсеть (subnetwork в терминологии Internet) – логическое объединение, совокупность хостов, являющихся частью глобальной сети, для которых маршрутизатором выделен одинаковый номер. Хосты внутри одной подсети могут взаимодействовать непосредственно, минуя маршрутизатор.

Сегмент сети (segment) – физическое объединение хостов. Например, сегменты сети образуются совокупностью хостов, подключенных к серверу по схеме «общая шина». При такой схеме подключения каждый хост имеет возможность подвергать анализу любой пакет в своем сегменте.

Для осуществления удаленного воздействия чрезвычайно важно, как по отношению друг к другу располагаются субъект и объект атаки, то есть в одном или в разных сегментах они находятся. В случае внутрисегментной атаки, как следует из названия, субъект и объект атаки находятся в одном сегменте, а при межсегментной – в разных.

Данный классификационный признак позволяет судить о так называемой степени удаленности атаки. Далее показано, что на практике межсегментное воздействие осуществить значительно труднее, чем внутрисегментное, но и опасность оно представляет гораздо большую. В таком случае объект и субъект атаки могут находиться на расстоянии многих тысяч километров друг от друга, что существенно усложняет возможность непосредственного обнаружения атакующего и адекватной реакции на атаку.

6. По уровню эталонной модели ISO/OSI, на котором осуществляется воздействие:

• физический (класс 6.1);

• канальный (класс 6.2);

• сетевой (класс 6.3);

• транспортный (класс 6.4);

• сеансовый (класс 6.5);

• представительный (класс 6.6);

• прикладной (класс 6.7).

Международная организация по стандартизации (ISO) приняла стандарт ISO 7498, описывающий взаимодействие открытых систем (OSI), к которым относятся и распределенные ВС. Любой сетевой протокол обмена, как и любую сетевую программу, можно с той или иной степенью точности спроецировать на эталонную многоуровневую модель OSI. Такая проекция позволит описать в терминах модели OSI функции, заложенные в сетевой протокол или программу. Поскольку удаленная атака также является сетевой программой, представляется логичным рассматривать такие воздействия на распределенные ВС, проецируя их на эталонную модель ISO/OSI.

Модели механизмов реализации типовых угроз безопасности РВС

Понятие типовой угрозы безопасности

Исследования информационной безопасности различных распределенных ВС, проводимые нами в течение последних лет, показали, что, независимо от используемых сетевых протоколов, топологии и инфраструктуры исследуемых распределенных ВС, механизмы реализации удаленных воздействий на РВС инвариантны по отношению к особенностям конкретной системы. Это объясняется тем, что распределенные ВС проектируются на основе одних и тех же принципов, а следовательно, имеют практически одинаковые проблемы безопасности. Поэтому и оказывается, что причины успеха удаленных атак на различные РВС одинаковы (подробнее см. в главе 6). Таким образом, появляется возможность ввести понятие типовой угрозы безопасности РВС. Типовая угроза безопасности – это удаленное информационное разрушающее воздействие, программно осуществляемое по каналам связи и характерное для любой распределенной ВС. Соответственно типовая удаленная атака – это реализация типовой угрозы безопасности РВС.

Классификация типовых удаленных атак на РВС приведена в табл. 3.1.

Таблица 3.1. Классификация типовых удаленных атак на распределенные ВС

Рассмотрим модель типовых угроз безопасности РВС из множества угроз, направленных на инфраструктуру и протоколы РВС. Эта модель включает в себя:

• описание угрозы;

• описание механизмов реализации угрозы;

• классификацию угрозы;

• графовую модель взаимодействия объектов РВС в проекции на физический (или канальный) и сетевой уровни модели OSI;

• графовую модель взаимодействия объектов РВС при реализации данной угрозы в проекции на физический (или канальный) и сетевой уровни модели OSI.

Графовая модель взаимодействия объектов РВС

Рассмотрим предлагаемую графовую модель взаимодействия объектов РВС в проекции на физический, канальный и сетевой уровни модели OSI. На входе у модели находится адрес объекта, с которого передается сообщение и на который необходимо доставить сообщение; на выходе – итоговый результат (доставлено ли сообщение). Основная задача данной модели РВС состоит в формировании на графе пути между заданными входными параметрами модели (между двумя объектами).

Модель в проекции на физический уровень OSI определяет, как физически связаны и сообщаются между собой объекты РВС; в проекции на канальный уровень OSI устанавливает взаимодействие объектов на уровне аппаратных адресов сетевых адаптеров; а в проекции на сетевой уровень OSI определяет связь объектов на уровне логических адресов, например адресов IP.

Пусть имеется РВС, включающая в себя N связанных между собой KS (линиями связи на физическом и канальном уровне) и LS (линиями связи на сетевом уровне OSI) объектов (M хостов xi и N(M + 1) и роутеров gi, где i = 1..M и J = M + 1..N; M < N). Так как модель РВС в проекции на физический уровень ничем не отличается от той же модели в проекции на канальный уровень, то ограничимся введением универсальной линии связи KS, под которой будем понимать линию связи либо физического, либо канального уровня OSI.

На физическом уровне под объектом понимается сетевой адаптер хоста или роутера, на канальном – аппаратный адрес сетевого адаптера. На этих уровнях модели выделим из всего множества хостов N – (M + 1) подмножество Xk, где k = 1..N – (M + 1), по числу роутеров в РВС, каждое из которых связано на физическом и канальном уровнях только с одним ближайшим роутером и представляет собой сетевой сегмент. Соответственно все объекты внутри данного подмножества Xk взаимодействуют между собой при помощи двунаправленных линий связи физического или канального уровня ksij, соединяющих i-объект с j-объектом; также каждый объект из подмножества Xk связан с соответствующим роутером Gm+k, через который и только через который объект из данного множества (сегмента) может сообщаться с объектом из другого множества (сегмента). Это правило будет введено для упрощения модели, так как при моделировании механизмов атак связь объекта сразу с несколькими роутерами не играет роли. Таким образом, на канальном и физическом уровнях модели из вершины Xk попасть в вершину Xk-p (p < k) можно только в том случае, если они находятся в одном подмножестве или путь проходит через последовательность узлов из множества G, следовательно, путь между любыми двумя объектами из множества X не может проходить через другой, отличный от них транзитный объект из того же множества.

На сетевом уровне под объектом понимается сетевой адрес хоста или роутера. На этом уровне каждый объект может взаимодействовать с любым другим объектом РВС при помощи однонаправленной или двунаправленной линии связи сетевого уровня lsij, соединяющей i-объект с j-объектом.

Введем два правила.

Во-первых, все объекты внутри одного подмножества Xk (сегмента) всегда связаны между собой физически, но не всегда соединены канальными линиями связи, а следовательно, на данном уровне все объекты потенциально могут быть связаны друг с другом линией канального уровня, но могут быть и не связаны.

Во-вторых, путь на K-ом уровне модели OSI между двумя объектами РВС существует тогда и только тогда, когда он существует на всех уровнях от 1 до K – 1, где 1 < K ≤ 7. Исключением является случай, когда между двумя объектами из одного подмножества (сегмента) Xk нет пути на канальном уровне, но существует путь на сетевом (широковещательный сетевой запрос (например, ARP), который получат все объекты в данном сегменте).

Согласно предлагаемой модели:

X = {xi | i = 1..M} – множество хостов;

G = {gj | j = M + 1..N} – множество роутеров;

KS = {kskL | k = 1..N, L = 1..N } – множество линий связи объектов на физическом или канальном уровне OSI; kskL – линия связи k-го объекта с объектом L;

LS = {lskL | k = 1..N, L = 1..N} – множество линий связи объектов на сетевом уровне OSI; lskL – линия связи k-го объекта с объектом L;

Xk = {xp | p = 1..M} – подмножество хостов внутри одного сегмента;

KSk = {kskL | k = 1..M, L = 1..M} – подмножество линий связи объектов на физическом или канальном уровнях внутри одного сегмента;

SEG = {Xk, Gm+k, KSk | k = 1..N – (M + 1), m = 1..M} – множество сетевых сегментов с линиями связи физического или канального уровня.

Объединение множеств RVSk = Xk ∪ KSk ∪ G ≡ SEG образует модель взаимодействия объектов распределенной ВС в проекции на физический или канальный уровень модели OSI (рис. 3.2).

Рис. 3.2. Графовая модель взаимодействия объектов РВС в проекции на физический или канальный уровень модели OSI


Объединение множеств RVSs = X ∪ G ∪ LS образует модель взаимодействия объектов распределенной ВС в проекции на сетевой уровень модели OSI (рис. 3.3).

Рис. 3.3. Графовая модель взаимодействия объектов РВС в проекции на сетевой уровень


Объединение множеств RVS = RVSk ∪ RVSs образует модель взаимодействия объектов распределенной ВС в проекции на физический (или канальный) и сетевой уровни модели OSI (рис. 3.4).

Рис. 3.4. Графовая модель взаимодействия объектов РВС в проекции на физический и сетевой уровни модели OSI

Моделирование механизмов реализации типовых угроз безопасности РВС

1. Анализ сетевого трафика

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

Реализация угрозы «сетевой анализ» позволяет, во-первых, изучить логику работы распределенной ВС, то есть получить взаимно однозначное соответствие событий, происходящих в системе, и команд, пересылаемых друг другу ее объектами, в момент появления этих событий. Это достигается путем перехвата и анализа пакетов обмена на канальном уровне. Знание логики работы распределенной ВС позволяет на практике моделировать и осуществлять типовые удаленные атаки, рассмотренные ниже, на примере конкретных РВС.

Во-вторых, такая удаленная атака позволяет непосредственно перехватить поток данных, которыми обмениваются объекты распределенной ВС. То есть удаленная атака этого типа заключается в получении несанкционированного доступа к информации, которой обмениваются два сетевых абонента. Отметим, что при реализации угрозы нельзя модифицировать трафик, а сам анализ возможен только внутри одного сегмента сети. Примером информации, перехваченной при помощи такой типовой атаки, могут служить имя и пароль пользователя, пересылаемые в незашифрованном виде по сети.

По характеру воздействия анализ сетевого трафика является пассивным воздействием (класс 1.1). Осуществление данной атаки без обратной связи (класс 4.2) ведет к нарушению конфиденциальности информации (класс 2.1) внутри одного сегмента сети (класс 5.1) на канальном уровне OSI (класс 6.2). При этом начало осуществления атаки безусловно по отношению к ее цели (класс 3.3).

Для моделирования реализации данной угрозы воспользуемся разработанной графовой моделью взаимодействия объектов РВС в проекции на физический уровень модели OSI. На рис. 3.5 показана модель РВС при реализации данной угрозы. Реализация типового воздействия «сетевой анализ», как видно из графа на том же рисунке, характеризуется появлением на графе нового узла XN+1 и нового ребра ksMN+1, а соответственно на множестве RVSk – нового объекта XN+1 и новых линий связи KSMN+1 и ksNN+1.

Рис. 3.5. Графовая модель взаимодействия объектов РВС в проекции на физический уровень OSI при реализации типовой угрозы «сетевой анализ»


2. Подмена доверенного объекта или субъекта распределенной ВС

Одна из основных проблем безопасности распределенной ВС заключается в осуществлении однозначной идентификации сообщений, передаваемых между субъектами и объектами (абонентами) взаимодействия. Обычно в РВС эта проблема решается следующим образом: в процессе создания виртуального канала объекты обмениваются определенной информацией, уникально идентифицирующей данный канал. Такой обмен называется handshake (рукопожатие). Однако отметим, что не всегда для связи двух удаленных объектов в РВС создается виртуальный канал. Практика показывает, что зачастую, как это ни странно, именно для служебных сообщений (например, от роутеров) используется передача одиночных сообщений, не требующих подтверждения.

Как известно, для адресации сообщений в распределенных ВС используется сетевой адрес, уникальный для каждого объекта системы (на канальном уровне модели OSI – это аппаратный адрес сетевого адаптера, на сетевом уровне адрес определяется в зависимости от используемого протокола сетевого уровня, например адрес IP). Сетевой адрес также может использоваться для идентификации объектов РВС, однако это средство распознавания не должно быть единственным, так как довольно просто подделывается. Если в распределенной ВС применяются нестойкие алгоритмы идентификации удаленных объектов, то возможно типовое удаленное воздействие, реализация которого заключается в передаче по каналам связи сообщений от имени любого объекта или субъекта РВС. При этом существуют две разновидности данной типовой атаки:

• атака при установленном виртуальном канале;

• атака без установленного виртуального канала.

В случае установленного виртуального соединения атака будет заключаться в передаче пакетов обмена с хоста кракера на объект атаки от имени доверенного субъекта взаимодействия (при этом переданные сообщения будут восприняты системой как корректные). Для осуществления такой атаки необходимо преодолеть систему идентификации и аутентификации сообщений, которая может использовать контрольную сумму, вычисляемую с помощью открытого ключа, динамически выработанного при установлении канала, случайные многобитные счетчики пакетов, сетевые адреса станций и т. д. Однако на практике, например в ОС Novell NetWare 3.12-4.1, для идентификации пакетов обмена используются два 8-битных счетчика: номер канала и номер пакета [11]; в протоколе TCP/IP для идентификации используются два 32-битных счетчика.

Как было отмечено ранее, для служебных сообщений в распределенных ВС часто используется передача одиночных запросов, не требующих подтверждения, а следовательно, создание виртуального соединения является необязательным. Атака без создания такого соединения заключается в передаче служебных сообщений от имени сетевых управляющих устройств, например от имени маршрутизаторов. Очевидно, что в этом случае для идентификации пакетов могут использоваться только определенные заранее статические ключи, что довольно неудобно и требует сложной системы управления ключами. Однако в противном случае идентификация таких пакетов без установленного виртуального канала возможна лишь по сетевому адресу отправителя, который, как уже отмечалось, легко подделать. Посылка ложных управляющих сообщений может привести к серьезным нарушениям работы распределенной ВС, например к изменению ее конфигурации.

Подмена доверенного объекта РВС является активным воздействием (класс 1.2), совершаемым с целью нарушения конфиденциальности (класс

2.1) и целостности (класс 2.2) информации по наступлении на атакуемом объекте определенного события (класс 3.2). Данная удаленная атака может являться как внутрисегментной (класс 5.1), так и межсегментной (класс

5.2), иметь обратную связь с атакуемым объектом (класс 4.1) или не иметь ее (класс 4.2), осуществляясь на канальном (класс 6.2), сетевом (класс 6.3) и транспортном (класс 6.4) уровнях модели OSI.

Для моделирования реализации данной угрозы воспользуемся разработанной графовой моделью взаимодействия объектов РВС в проекции на физический и сетевой уровни эталонной модели OSI. На рис. 3.6 показана модель РВС при реализации данной угрозы. Поясним ее.

Рис. 3.6. Графовая модель взаимодействия объектов РВС при реализации типовой угрозы «подмена доверенного объекта или субъекта РВС» в проекции на физический и сетевой уровни


Пусть объект X2 взаимодействует с объектом XM. На графе это взаимодействие на сетевом уровне показано двунаправленным ребром ls2M, которое располагается между вершинами X2 и XM. Пусть с объекта X1 осуществляется реализация данной угрозы: предположим, объект X1 на сетевом уровне выдает себя за объект X2 при взаимодействии с объектом XM. Тогда, согласно введенному правилу образования ребер графа в модели РВС в проекции на сетевой уровень, на графе появляется еще одно однонаправленное ребро ls2M, которое соединяет вершины X1 и XM (если объект X1 при связи с объектом XM выдает себя за объект X2, то между вершинами X1 и XM появляется не ребро ls1M, а ребро ls2M). Таким образом, объект XM, получив сообщение от имени X2, отправленное объектом X1, посылает ответное сообщение на X2 (двунаправленное ребро ls2M или однонаправленное ребро lsM2).

Двунаправленному ребру ls2M между вершинами X2 и XM на физическом уровне соответствует путь ks2M (путь ks2M образуется из последовательности ребер, которые нужно пройти между узлами X2 и XM на физическом уровне, то есть ребер ks2M+1, ksM+1N, ksNM, и по закону транзитивности совокупность этих ребер образует ребро ks2M). А однонаправленному ребру ls2M между вершинами X1 и XM на физическом уровне соответствует путь ks1M, что неверно, так как нумерация пути между узлами на физическом и сетевом уровнях должна совпадать (например, между узлами M и N пути ksMN и lsMN), и данному ребру на физическом уровне будет соответствовать путь ks2M. Следовательно, реализацию данной угрозы можно определить по изменившемуся на физическом уровне пути при взаимодействии объектов X2 и XM.

Отсюда следует, что реализация типовой угрозы «подмена доверенного объекта или субъекта РВС» характеризуется появлением на графе однонаправленного ребра ls2M, которому на физическом уровне соответствует путь ks1M.

3. Ложный объект распределенной ВС

Если в распределенной ВС не решены проблемы идентификации сетевых управляющих устройств (например, маршрутизаторов), возникающие при взаимодействии этих устройств с объектами системы, то подобная РВС может подвергнуться типовой удаленной атаке, связанной с изменением маршрутизации и внедрением в систему ложного объекта. Внедрить такой объект можно и в том случае, если инфраструктура предусматривает использование алгоритмов удаленного поиска. Итак, существуют две принципиально разные причины, обусловливающие появление типовой угрозы «ложный объект РВС»:

• внедрение в распределенную ВС ложного объекта путем навязывания ложного маршрута;

• внедрение в распределенную ВС ложного объекта путем использования недостатков алгоритмов удаленного поиска.

Современные глобальные сети представляют собой совокупность сегментов, связанных между собой через сетевые узлы. При этом под маршрутом понимается последовательность узлов сети, по которой данные передаются от источника к приемнику, а под маршрутизацией – выбор маршрута. Все роутеры (маршрутизаторы) имеют специальную таблицу, называемую таблицей маршрутизации, в которой для каждого адресата указывается оптимальная последовательность узлов. Отметим, что такие таблицы существуют не только у маршрутизаторов, но и у любых хостов в глобальной сети. Для обеспечения эффективной маршрутизации в распределенных ВС применяются специальные управляющие протоколы, позволяющие роутерам обмениваться информацией друг с другом, – RIP (Routing Internet Protocol), OSPF (Open Shortest Path First); уведомлять хосты о новом маршруте, – ICMP (Internet Control Message Protocol); удаленно управлять маршрутизаторами, – SNMP (Simple Network Management Protocol). Все эти протоколы позволяют удаленно изменять маршрутизацию в Internet, то есть являются протоколами управления сетью.

Очевидно, что маршрутизация в глобальных сетях играет важнейшую роль и, как следствие этого, может подвергаться атаке. Основная цель атаки, связанной с навязыванием ложного маршрута, – изменить исходную маршрутизацию на объекте распределенной ВС так, чтобы новый маршрут проходил через ложный объект – хост атакующего.

Реализация типовой угрозы «внедрение в РВС ложного объекта путем навязывания ложного маршрута» состоит в несанкционированном использовании протоколов управления сетью для изменения исходных таблиц маршрутизации, для чего атакующему необходимо послать по сети специальные служебные сообщения, определенные данными протоколами, от имени сетевых управляющих устройств (роутеров). В результате успешного изменения маршрута атакующий получит полный контроль над потоком информации, которой обмениваются два объекта распределенной ВС, и атака перейдет во вторую стадию, связанную с приемом, анализом и передачей сообщений, получаемых от дезинформированных объектов РВС. Методы воздействия на перехваченную информацию рассмотрены далее.

Навязывание объекту РВС ложного маршрута – активное воздействие (класс 1.2), совершаемое с любой из целей класса 2, безусловно по отношению к атакуемому объекту (класс 3.3). Данное типовое воздействие может осуществляться как внутри одного сегмента (класс 5.1), так и межсегментно (класс 5.2); как с обратной связью (класс 4.1), так и без обратной связи с атакуемым объектом (класс 4.2) на канальном (класс 6.2), сетевом (класс 6.3) и транспортном (класс 6.4) уровнях модели OSI.

Для моделирования реализации данной угрозы воспользуемся разработанной моделью взаимодействия объектов РВС в проекции на канальный и сетевой уровни модели OSI.

На рис. 3.7 показана модель взаимодействия объектов РВС при реализации данной угрозы в проекции на канальный и сетевой уровни. Поясним ее ниже.

Рис. 3.7. Графовая модель взаимодействия объектов РВС при реализации типовой угрозы «внедрение в РВС ложного объекта путем навязывания ложного маршрута» в проекции на канальный и сетевой уровни модели OSI


Пусть объект X2 взаимодействует с объектом XM. На графе это взаимодействие на сетевом уровне показано двунаправленным ребром ls2M, которое располагается между вершинами X2 и XM. Соответственно на канальном уровне путь между объектами X2 и XM проходит через вершиныGM+1 … GN.

Пусть с объекта X1 осуществляется реализация данной угрозы, то есть объект X1 передает на X2 сетевое управляющее сообщение от имени роутера – объекта GM+1 (ребро lsM+12), где объявляет себя роутером GM+1.

Тогда далее граф взаимодействия объектов РВС изменяется следующим образом: исчезает линия связи канального уровня ks2M+1, соединяющая объекты X2 и GM+1, и появляется линия связи ks2M+1, которая теперь соединяет объекты X2 и X1 (объект X1 воспринимается объектом X2 как роутер GM+1). Соответственно на канальном уровне путь между X2 и XM проходит теперь через вершины X1, GM+1 … GN.

Таким образом, после реализации типовой угрозы «внедрение в РВС ложного объекта путем навязывания ложного маршрута» изменяется путь на канальном уровне на графе между объектами X2 и XM добавлением нового транзитного (ложного) объекта X1.

Рассмотрим теперь внедрение в распределенную ВС ложного объекта путем использования недостатков алгоритмов удаленного поиска.

Объекты РВС обычно имеют не всю необходимую для адресации сообщений информацию, под которой понимаются аппаратные (адрес сетевого адаптера) и логические адреса (например, IP-адрес) объектов РВС. Для получения подобной информации в распределенных ВС используются различные алгоритмы удаленного поиска (название авторское, и на сегодняшний день оно еще не является общеупотребительным), заключающиеся в передаче по сети специального вида поисковых запросов и в ожидании ответов на них. Полученных таким образом сведений об искомом объекте запросившему субъекту РВС достаточно для последующей адресации к нему. Примером сообщений, на которых базируются алгоритмы удаленного поиска, могут служить SAP-запрос в ОС Novell NetWare [11], а также ARP– и DNS-запросы в Internet.

Существуют два типа поисковых запросов: широковещательный и направленный. Широковещательный поисковый запрос получают все объекты в Сети, но только искомый объект отсылает в ответ нужную информацию. Поэтому, чтобы избежать перегрузки Сети, подобный механизм запросов используется обычно внутри одного сетевого сегмента, если не хватает информации для адресации на канальном уровне OSI. Направленный поисковый запрос передается на один (или несколько) специально выделенный для обработки подобных запросов сетевой объект (например, DNS-сервер) и применяется при межсегментном поиске в том случае, когда не хватает информации для адресации на сетевом уровне OSI.

При использовании распределенной ВС механизмов удаленного поиска реализация данной типовой угрозы состоит в перехвате поискового запроса и передаче в ответ на него ложного сообщения, где указываются данные, использование которых приведет к адресации на атакующий ложный объект. Таким образом, в дальнейшем весь поток информации между субъектом и объектом взаимодействия будет проходить через ложный объект РВС.

Другой вариант реализации данной угрозы состоит в периодической передаче на атакуемый объект заранее подготовленного ложного ответа без приема поискового запроса. Действительно, для того чтобы послать ложный ответ, кракеру не всегда нужно дожидаться приема запроса. Взломщик может спровоцировать атакуемый объект на передачу поискового сообщения, обеспечив тем самым успех своему ложному ответу. Данная типовая удаленная атака характерна для глобальных сетей, когда атакующий и его цель находятся в разных сегментах и возможности перехватить поисковый запрос не существует.

Ложный объект РВС – активное воздействие (класс 1.2), совершаемое с целью нарушения конфиденциальности (класс 2.1) и целостности информации (класс 2.2), которое может являться атакой по запросу от атакуемого объекта (класс 3.1), а также безусловной атакой (класс 3.3). Данное удаленное воздействие является как внутрисегментным (класс 5.1), так и межсегментным (класс 5.2), имеет обратную связь с атакуемым объектом (класс 4.1) и осуществляется на канальном (класс 6.2), сетевом (класс 6.3) и транспортном (класс 6.4) уровнях модели OSI.

Рассмотрим далее модель реализации типовой угрозы при использовании в РВС широковещательного поискового запроса в проекции на канальный и сетевой уровни модели OSI (рис. 3.8).

Рис. 3.8. Графовая модель взаимодействия объектов РВС при реализации типовой угрозы «внедрение в РВС ложного объекта путем использования недостатков алгоритмов удаленного поиска» (с использованием широковещательных поисковых запросов) в проекции на канальный и сетевой уровни модели OSI


Пусть объекту X2 нужна информация для адресации к объекту Xk на канальном уровне (объект Xk находится в том же сегменте, что и объект X2). Для получения необходимой информации об объекте Xk объект X2 использует алгоритм удаленного поиска, реализованный с помощью широковещательного запроса (Zsh2k). Тогда объект X2 передает данный запрос всем объектам в своем сетевом сегменте. Пусть объект X1, перехватив данный запрос, выдает себя за искомый объект Xk. Тогда от имени объекта Xk он передает на объект X2 ложный ответ LOk2. При этом объект Xk также получит поисковый запрос и тоже ответит объекту X2 (Ok2). В случае если объектом X2 будет воспринят ложный ответ LOk2, то граф взаимодействия объектов РВС будет изменен следующим образом (условия, при которых объект X2 отдаст предпочтение ложному, а не настоящему ответу, для каждой конкретной системы разные: либо ложный ответ должен прийти раньше настоящего, либо чуть позже): объект X2 будет считать X1 объектом Xk, и на графе появится линия связи канального уровня ksk2, соединяющая объекты X1 и X2. Объект X1 может быть связан с объектом Xk как линией связи канального уровня ks1k, так и линией связи ks2k (в том случае, если он хочет остаться «прозрачным» и будет при взаимодействии с объектом Xk выдавать себя за объект X2).

Таким образом, после реализации данной типовой угрозы изменяется путь на канальном уровне на графе между объектами X2 и Xk добавлением нового транзитного (ложного) объекта X1.

Далее рассмотрим модель реализации типовой угрозы в проекции на канальный и сетевой уровни модели OSI в случае использования в РВС направленного поискового запроса (рис. 3.9).

Рис. 3.9. Графовая модель взаимодействия объектов РВС при реализации угрозы «внедрение в РВС ложного объекта путем использования недостатков алгоритмов удаленного поиска» (с использованием направленных запросов) в проекции на канальный и сетевой уровни модели OSI


Пусть объекты X1, Xk, XM-k, XM находятся в разных сегментах (k < M). Пусть объект Xk обращается к XM при помощи направленного поискового запроса ZnkM M-k, чтобы получить недостающую для адресации информацию об объекте XM-k. Объект XM, приняв запрос от Xk, отсылает на него ответ OMK M-K. В свою очередь атакующий с объекта X1 также передает на Xk от имени XM ложный ответ LOMK M-K. В случае если объектом Xk будет воспринят ложный ответ LOMK M-K, то граф взаимодействия объектов РВС изменится следующим образом: Xk будет считать объект X1 объектом XM-k, и на графе появится линия связи сетевого уровня lsM-kk, соединяющая объекты X1 и Xk. Объект X1 может быть соединен с объектом XM-k как линией связи сетевого уровня ls1M-k, так и линией связи lskM-k (в том случае, если он хочет остаться «прозрачным» и будет при взаимодействии с объектом XM-k выдавать себя за объект Xk).

Таким образом, после реализации данной типовой угрозы изменяется путь на сетевом уровне на графе между объектами Xk и XM-k добавлением нового транзитного (ложного) объекта X1.

Использование ложного объекта для организации удаленной атаки на распределенную ВС

Получив контроль над проходящим информационным потоком между объектами, ложный объект РВС может применять различные методы воздействия на перехваченную информацию. Так как внедрение в распределенную ВС ложного объекта является целью многих удаленных атак и представляет серьезную угрозу безопасности РВС в целом, рассмотрим подробно методы воздействия на перехваченную таким объектом информацию:

• селекция потока информации и сохранение ее на ложном объекте РВС;

• модификация информации.

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

Рассмотрим два вида модификации информации:

• модификация передаваемых данных;

• модификация передаваемого кода.

Модификация передаваемых данных

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

Модификация передаваемого кода

Другим видом модификации может быть модификация передаваемого кода. Проводя семантический анализ перехваченной информации, ложный объект способен выделять из потока данных исполняемый код. Известный принцип неймановской архитектуры гласит, что не существует различий между данными и командами. Следовательно, чтобы выяснить, код или данные передаются по сети, необходимо использовать некоторые особенности, свойственные реализации сетевого обмена в конкретной РВС или присущие конкретным типам исполняемых файлов в данной локальной операционной системе.

Представляется возможным выделить два различных по цели вида модификации кода:

• внедрение разрушающих программных средств (РПС);

• изменение логики работы исполняемого файла.

В первом случае при внедрении РПС исполняемый файл модифицируется по вирусной технологии, то есть к нему одним из известных способов дописывается тело РПС, и точка входа изменяется таким образом, чтобы она указывала на начало кода внедренного воздействия. Описанный способ практически ничем не отличается от стандартного заражения вирусом, за исключением того, что файл оказывается зараженным вирусом или РПС в момент передачи его по сети. Такое возможно только при использовании системы воздействия, построенной по принципу «ложный объект». Конкретный вид разрушающих программных средств, их цели и задачив данном случае не имеют значения, но можно рассмотреть, например, вариант использования ложного объекта для создания сетевого червя (наиболее сложного на практике удаленного воздействия в сетях) или в качестве РПС использовать анализаторы сетевого трафика (сниферы – от англ. «sniffer»). Во втором случае происходит модификация исполняемого кода с целью изменения логики его работы. Данное воздействие требует предварительного исследования работы исполняемого файла и может принести самые неожиданные результаты. Так, при запуске на сервере (например, в ОС Novell NetWare) программы идентификации пользователей распределенной базы данных ложный объект способен модифицировать код этой программы таким образом, что появится возможность беспарольного входа в базу данных с наивысшими привилегиями.

Подмена информации

Ложный объект позволяет не только модифицировать, но и подменять перехваченную им информацию. Если модификация приводит к частичному искажению информации, то подмена – к ее полному изменению. При возникновении в сети определенного контролируемого ложным объектом события одному из участников обмена посылается заранее подготовленная дезинформация, которая может быть воспринята им либо как исполняемый код, либо как данные. Рассмотрим пример дезинформации подобного рода.

Предположим, что ложный объект контролирует подключение пользователя к серверу. В этом случае взломщик ожидает, например, запуска соответствующей программы входа в систему. Если такая программа находится на сервере, то при ее запуске исполняемый файл передается на рабочую станцию (например, в случае загрузки бездисковой рабочей станции в ОС Novell NetWare). Вместо того, чтобы выполнить данное действие, ложный объект передает на рабочую станцию код заранее написанной специальной программы – захватчика паролей. Эта программа выполняет те же действия, что и настоящая программа входа в систему, например запрашивает имя и пароль пользователя, после чего полученные сведения посылаются на ложный объект, а пользователю выводится сообщение об ошибке. При этом пользователь, предположив, что он неправильно ввел пароль (пароль обычно не отображается на экране), снова запустит программу подключения к системе (на этот раз настоящую) и со второго раза получит доступ. Результат такой атаки – имя и пароль пользователя, сохраненные на ложном объекте.

Отказ в обслуживании

Одной из основных задач, возлагаемых на сетевую ОС, функционирующую на каждом из объектов распределенной ВС, является обеспечение надежного удаленного доступа к данному объекту с любого объекта сети: каждый субъект (пользователь) системы должен иметь возможность подключиться к любому объекту РВС и получить в соответствии со своими правами удаленный доступ к его ресурсам. Обычно в вычислительных сетях такая возможность реализуется следующим образом: на объекте РВС в сетевой ОС запускается ряд программ-серверов, входящих в состав телекоммуникационных служб предоставления удаленного сервиса (например, FTP-сервер, WWW-сервер и т. д.). Задача сервера – находясь в памяти операционной системы объекта РВС, постоянно ожидать получения запроса на подключение от удаленного объекта. При получении подобного сообщения сервер должен по возможности передать запросившему ответ, разрешая подключение или не разрешая. По аналогичной схеме происходит создание виртуального канала связи, по которому обычно взаимодействуют объекты РВС. В этом случае непосредственно ядро сетевой ОС обрабатывает приходящие извне запросы на создание виртуального канала (ВК) и передает их в соответствии с идентификатором запроса (порт или сокет) прикладному процессу, которым является соответствующий сервер.

Очевидно, что сетевая операционная система способна поддерживать ограниченное число открытых виртуальных соединений, а также отвечать на ограниченное число запросов (ограничена длина очереди запросов на подключение, тайм-аут очистки очереди и число одновременно открытых соединений). Эти ограничения устанавливаются индивидуально для каждой сетевой ОС. Основная проблема, возникающая в таком случае, состоит в том, что при отсутствии статической ключевой информации в РВС идентификация запроса возможна только по адресу его отправителя. Если в распределенной ВС не предусмотрено средств аутентификации адреса отправителя, то есть инфраструктура РВС позволяет с какого-либо объекта системы передавать на атакуемый объект бесконечное число анонимных запросов на подключение от имени других объектов (тем самым переполняя очередь запросов), числом на несколько порядков меньше пропускной способности канала (направленный мини-шторм), то этои будет реализацией типовой угрозы безопасности РВС «отказ в обслуживании» (denial of service – DoS). Результат такой реализации – нарушение на атакованном объекте работоспособности соответствующей службы предоставления удаленного сервиса, то есть невозможность получения удаленного доступа с других объектов РВС из-за переполнения очереди (буфера) запросов.

Суть второй разновидности реализации этой типовой угрозы заключена в передаче с одного адреса стольких запросов на атакуемый объект, сколько позволит пропускная способность канала передачи (направленный шторм запросов; от англ. «flooding» – наводнение). Если в системе не предусмотрено ограничение числа принимаемых запросов с одного объекта (адреса) в единицу времени, то результатом этой атаки может быть нарушение работы системы от возможного переполнения очереди запросови отказа одной из телекоммуникационных служб, вплоть до полной остановки компьютера из-за того, что система не может заниматься ничем другим, кроме обработки запросов.

Типовая удаленная атака «отказ в обслуживании» является активным воздействием (класс 1.2), осуществляемым с целью нарушения работоспособности системы (класс 2.3), относительно объекта атаки (класс 3.3). Данная атака является однонаправленным (класс 4.2) внутрисегментным (класс 5.1) или межсегментным воздействием (класс 5.2), осуществляемым на канальном (класс 6.2), сетевом (класс 6.3), транспортном (класс 6.4) и прикладном (класс 6.7) уровнях модели OSI.

Для моделирования механизмов реализации данной типовой угрозы воспользуемся графовой моделью взаимодействия объектов РВС в проекции на канальный и сетевой уровни модели OSI (рис. 3.10).

Рис. 3.10. Графовая модель взаимодействия объектов РВС при реализации типовой угрозы «отказ в обслуживании» в проекции на канальный и сетевой уровни модели OSI


Пусть объект Xk взаимодействует с объектом XM. Пусть с объекта X1 осуществляется данное воздействие с целью нарушить работоспособность объекта Xk. Тогда с объекта X1 осуществляется направленный шторм (или мини-шторм) запросов на объект Xk от имени любых объектов в сети (lsxik). Если атака достигла цели, на сетевом уровне нарушается взаимодействие объекта Xk с объектом XM, а на канальном уровне может нарушиться взаимодействие Xk с ближайшим роутером GM+k. Следовательно, на графе взаимодействия объектов РВС пропадают однонаправленные линии связи lskM и kskM+k.

Глава 4
Удаленные атаки на хосты Internet

Многое

Наша Земля повидала,

Но не видала

Такого скандала!

Б. Заходер. География всмятку

Анализ сетевого трафика Internet

В Internet базовыми протоколами удаленного доступа являются TELNET и FTP (File Transfer Protocol). TELNET – это протокол виртуального терминала (ВТ), позволяющий с удаленных хостов подключаться к серверам Internet в режиме ВТ. FTP – протокол, предназначенный для передачи файлов между удаленными хостами. Для получения доступа к серверу по данным протоколам пользователю необходимо пройти процедуры идентификации и аутентификации. В качестве информации, идентифицирующей пользователя, выступает его имя, а для аутентификации используется пароль. Особенностью протоколов FTP и TELNET является то, что пароли и идентификаторы пользователей передаются по сети в открытом, незашифрованном виде. Таким образом, необходимым и достаточным условием для получения удаленного доступа к хостам по протоколам FTP и TELNET являются имя и пароль пользователя.

Одним из способов получения таких паролей и идентификаторов в Internet является анализ сетевого трафика. Этот анализ осуществляется с помощью специальной программы-анализатора пакетов (sniffer), перехватывающей все пакеты, передаваемые по сегменту сети, и выделяющей среди них те, в которых передаются идентификатор пользователя и его пароль. Сетевой анализ протоколов FTP и TELNET показывает, что TELNET разбивает пароль на символы и пересылает их по одному, помещая каждый символ пароля в соответствующий пакет, а FTP, напротив, пересылает пароль целиком в одном пакете.

Рис. 4.1. Схема осуществления анализа сетевого трафика


У внимательного читателя, наверное, уже возник вопрос, почему разработчики базовых прикладных протоколов Internet не предусмотрели возможностей шифрования передаваемых по сети паролей пользователей. Даже во всеми критикуемой сетевой ОС Novell NetWare 3.12 пароли пользователей никогда не передаются по сети в открытом виде (правда, указанная функция этой ОС не особенно помогает [11]). Видимо, проблема в том, что базовые прикладные протоколы семейства TCP/IP разрабатывались очень давно, в период с конца 60-х до начала 80-х годов, и с тех пор абсолютно не изменились. При этом точка зрения на построение глобальных сетей стала иной. Инфраструктура Сети и ее протоколы разрабатывались исходя, в основном, из соображений надежности связи, но не из соображений безопасности. Мы, пользователи Internet, вынуждены сейчас прибегать к услугам этой устаревшей с точки зрения защищенности глобальной сети. Совершенно очевидно, что вычислительные системы за эти годы сделали колоссальный скачок в своем развитии, существенно изменился и подход к обеспечению информационной безопасности распределенных ВС. Были разработаны различные протоколы обмена, позволяющие защитить сетевое соединение и зашифровать трафик (например, протоколы SSL, SKIP и т. п.). Однако новые протоколы не сменили устаревшие и не стали стандартом для каждого пользователя (за исключением, может быть, SSL, да и то лишь применительно к некоторым Web-транзакциям). К сожалению, процесс перехода на эти протоколы может длиться еще многие годы, так как в Internet централизованное управление сетью отсутствует. А на сегодняшний день подавляющее большинство пользователей продолжают работать со стандартными протоколами семейства TCP/IP, разработанными более 15 лет назад. В результате, как показывают сообщения американских центров по компьютерной безопасности (CERT, CIAC), в последние годы анализ сетевого трафика в сети Internet успешно применяется кракерами, и, согласно материалам специального комитета при конгрессе США, с его помощью в 1993–1994 годах было перехвачено около миллиона паролей для доступа в различные информационные системы.

Ложный ARP-сервер в сети Internet

Как уже неоднократно подчеркивалось, в вычислительных сетях связь между двумя удаленными хостами осуществляется путем передачи по сети сообщений, которые заключены в пакеты обмена. Как правило, такой пакет независимо от используемого протокола и типа сети (Token Ring, Ethernet, X.25 и др.) состоит из заголовка и поля данных. В заголовок пакета обычно заносится служебная информация, необходимая для адресации пакета, его идентификации, преобразования и т. д.; такая информация определяется используемым протоколом обмена. В поле данных помещаются либо непосредственно данные, либо другой пакет более высокого уровня OSI. Так, например, пакет транспортного уровня может быть помещен в пакет сетевого уровня, а тот, в свою очередь, вложен в пакет канального уровня. Спроецировав это утверждение на сетевую ОС, использующую протоколы TCP/IP, можно утверждать, что пакет TCP (транспортный уровень) помещен в пакет IP (сетевой уровень), вложенный в пакет Ethernet (канальный уровень). Структура TCP-пакета в Internet выглядит следующим образом:

1. Заголовок Ethernet.

2. Заголовок IP.

3. Заголовок TCP.

4. Данные.

Иерархия протоколов сети Internet в проекции на модель OSI приведена на рис. 4.2.

Рис. 4.2. Иерархия протоколов сети Internet в проекции на модель OSI


Данный рисунок требует некоторого уточнения. Здесь показано, на каких протоколах (TCP или UDP) обычно – по умолчанию – реализованы прикладные службы. Но это отнюдь не означает, что не существует, например, реализаций FTP на базе UDP – в стандартном файле /etc/services в ОС FreeBSD дается перечень возможных реализаций прикладных служб как на основе протокола TCP, так и протокола UDP.

Рассмотрим схему адресации пакетов в Internet и возникающие при этом проблемы безопасности. Как известно, базовым сетевым протоколом обмена в Internet является протокол IP (Internet Protocol). Протокол IP – это межсетевой протокол, позволяющий передавать IP-пакеты в любую точку сети. Для адресации на сетевом уровне (IP-уровне) в Internet каждый хост имеет уникальный 32-разрядный IP-адрес. Для передачи IP-пакета на хост в IP-заголовке пакета в поле Destination Address необходимо указать IP-адрес данного хоста. Однако, как видно из структуры TCP-пакета, IP-пакет находится внутри аппаратного пакета (если среда передачи – Ethernet, IP-пакет находится внутри Ethernet-пакета), поэтому каждый пакет в сетях любого типа и с любыми протоколами обмена в конечном счете посылается на аппаратный адрес сетевого адаптера, непосредственно осуществляющего прием и передачу пакетов в сети (в дальнейшем мы будем рассматривать только Ethernet-сети).

Из всего вышесказанного следует, что для адресации IP-пакетов в Internet кроме IP-адреса хоста необходим еще либо Ethernet-адрес его сетевого адаптера (в случае адресации внутри одной подсети), либо Ethernet-адрес маршрутизатора (в случае межсетевой адресации). Первоначально хост может не иметь информации о Ethernet-адресах других хостов, находящихся с ним в одном сегменте, в том числе и о Ethernet-адресе маршрутизатора. Следовательно, хост должен найти эти адреса, применяя алгоритмы удаленного поиска (о них мы говорили в главе 3). В сети Internet для решения этой задачи используется протокол ARP (Address Resolution Protocol), который позволяет получить взаимно однозначное соответствие IP-и Ethernet-адресов для хостов, находящихся внутри одного сегмента. Это достигается следующим образом: при первом обращении к сетевым ресурсам хост отправляет широковещательный ARP-запрос на Ethernet-адрес FFFFFFFFFFFFh, где указывает IP-адрес маршрутизатора и просит сообщить его Ethernet-адрес (IP-адрес маршрутизатора является обязательным параметром, который всегда устанавливается вручную при настройке любой сетевой ОС в Internet). Этот широковещательный запрос получат все станции в данном сегменте сети, в том числе и маршрутизатор. Получив такой запрос, маршрутизатор внесет запись о запросившем хосте в свою ARP-таблицу, а затем отправит ARP-ответ, в котором сообщит свой Ethernet-адрес. Полученный в ARP-ответе Ethernet-адрес будет занесенв ARP-таблицу, находящуюся в памяти операционной системы на запросившем хосте и содержащую записи соответствия IP-и Ethernet-адресов для хостов внутри одного сегмента. Отметим, что в случае адресации к хосту, расположенному в той же подсети, также используется ARP-протокол, и рассмотренная выше схема полностью повторяется. Как указывалось ранее, при использовании в распределенной ВС алгоритмов удаленного поиска существует возможность осуществления в такой сети типовой удаленной атаки «ложный объект РВС». Анализ безопасности протокола ARP показывает, что, перехватив на атакующем хосте внутри данного сегмента сети широковещательный ARP-запрос, можно послать ложный ARP-ответ, в котором объявить себя искомым хостом (например, маршрутизатором), и в дальнейшем активно контролировать сетевой трафик дезинформированного хоста, воздействуя на него по схеме «ложный объект РВС».

Рассмотрим обобщенную функциональную схему ложного ARP-сервера (рис. 4.3):

Рис. 4.3. Ложный ARP-сервер


1. Ожидание ARP-запроса.

2. При получении такого запроса – передача по сети на запросивший хост ложного ARP-ответа, где указывается адрес сетевого адаптера атакующей станции (ложного ARP-сервера) или тот Ethernet-адрес, на котором будет принимать пакеты ложный ARP-сервер. Совершенно необязательно указывать в ложном ARP-ответе свой настоящий Ethernet-адрес, так как при работе непосредственно с сетевым адаптером его можно запрограммировать на прием пакетов на любой Ethernet-адрес.

3. Прием, анализ, воздействие на пакеты обмена и передача их между взаимодействующими хостами.

Данная схема атаки требует некоторого уточнения. На практике мы столкнулись с тем, что даже очень квалифицированные сетевые администраторы и программисты часто не знают или не понимают тонкостей работы протокола ARP. При обычной настройке сетевой ОС, поддерживающей протоколы TCP/IP, не требуется настройка модуля ARP (нам не встречалось ни одной сетевой ОС, где нужно было бы создавать ARP-таблицу «вручную»), поэтому протокол ARP остается как бы «прозрачным» для администраторов. Необходимо обратить внимание и на тот факт, что у маршрутизатора тоже имеется ARP-таблица, в которой содержится информация об IP-и соответствующих им Ethernet-адресах всех хостов из сегмента сети, подключенного к маршрутизатору. Информация в эту таблицу на маршрутизаторе также обычно заносится не вручную, а при помощи протокола ARP. Именно поэтому так легко в одном сегменте IP-сети присвоить чужой IP-адрес: выдать команду сетевой ОС на установку нового IP-адреса, потом обратиться в сеть – сразу же будет послан широковещательный ARP-запрос, и маршрутизатор, получив такое сообщение, автоматически обновит запись в своей ARP-таблице (поставит Ehternet-адрес вашей сетевой карты в соответствие с чужим IP-адресом), в результате чего обладатель данного IP-адреса потеряет связь с внешним миром (все пакеты, адресуемые на его бывший IP-адрес и приходящие на маршрутизатор, будут направляться им на Ethernet-адрес атакующего). Правда, некоторые ОС анализируют все передаваемые по сети широковещательные ARP-запросы. Например, ОС Windows 95 или SunOS 5.3 при получении ARP-запроса с указанным в нем IP-адресом, совпадающим с IP-адресом данной системы, выдают предупреждающее сообщение о том, что хост с таким-то Ethernet-адресом пытается присвоить себе (естественно, успешно) данный IP-адрес.

Из анализа механизмов адресации, описанных выше, становится ясно: так как поисковый ARP-запрос кроме атакующего получит и маршрутизатор, то в его таблице окажется соответствующая запись об IP-и Ethernet-адресе атакуемого хоста. Следовательно, когда на маршрутизатор придет пакет, направленный на IP-адрес атакуемого хоста, он будет передан не на ложный ARP-сервер, а непосредственно на хост. При этом схема передачи пакетов в этом случае будет следующая:

1. Атакованный хост передает пакеты на ложный ARP-сервер.

2. Ложный ARP-сервер посылает принятые от атакованного хоста пакеты на маршрутизатор.

3. Маршрутизатор, в случае получения ответа на запрос, адресует его непосредственно на атакованный хост, минуя ложный ARP-сервер.

В этом случае последняя фаза, связанная с приемом, анализом, воздействием на пакеты обмена и передачей их между атакованным хостом и, например, маршрутизатором (или любым другим хостом в том же сегменте) будет проходить уже не в режиме полного перехвата пакетов ложным сервером (мостовая схема), а в режиме «полуперехвата» (петлевая схема). Действительно, в режиме полного перехвата маршрут всех пакетов, отправляемых как в одну, так и в другую сторону, обязательно проходит через ложный сервер (мост); в режиме «полуперехвата» маршрут пакетов образует петлю (рис. 4.4). Петлевой маршрут может возникнуть и при рассмотренной ниже атаке на базе протоколов DNS и ICMP.

Рис. 4.4. Петлевая схема перехвата информации ложным АRP-сервером


Однако придумать несколько способов, позволяющих ложному ARP-серверу функционировать по мостовой схеме перехвата (полный перехват), довольно просто. Например, получив ARP-запрос, можно самому послать такое же сообщение и присвоить себе данный IP-адрес (правда, в этом случае ложному ARP-серверу не удастся остаться незамеченным: некоторые сетевые ОС, например Windows 95 и SunOS 5.3, перехватив такой запрос, выдадут предупреждение об использовании их IP-адреса). Другой, значительно более удобный способ – послать ARP-запрос, указав в качестве своего IP-адреса любой свободный в данном сегменте IP-адрес, и в дальнейшем вести работу с данного IP-адреса как с маршрутизатором, так и с «обманутыми» хостами (кстати, это типичная proxy-схема).

Заканчивая рассказ об уязвимостях протокола ARP, покажем, как различные сетевые ОС используют этот протокол для изменения информации в своих ARP-таблицах.

Исследования различных сетевых ОС выявили, что в ОС Linux при адресации к хосту, находящемуся в одной подсети с данным хостом, ARP-запрос передается, если в ARP-таблице отсутствует соответствующая запись о Ethernet-адресе, и при последующих обращениях к данному хосту ARP-запрос не посылается. В SunOS 5.3 при каждом новом обращении к хосту (в том случае, если в течение некоторого времени обращения не было) происходит передача ARP-запроса, и, следовательно, ARP-таблица динамически обновляется. ОС Windows 95 при обращении к хостам, с точки зрения использования протокола ARP, ведет себя почти так же, как и ОС Linux, за исключением того, что периодически (каждую минуту) посылает ARP-запрос о Ethernet-адресе маршрутизатора; в результате в течение нескольких минут вся локальная сеть с Windows 95 без труда берется под контроль ложным ARP-сервером. ОС Windows NT 4.0 также использует динамически изменяемую ARP-таблицу, и ARP-запросы о Ethernet-адресе маршрутизатора передаются каждые 5 минут.

Особый интерес вызвал следующий вопрос: можно ли осуществить данную удаленную атаку на UNIX-совместимую ОС CX/LAN/SX, защищенную по классу B1 (мандатная и дискретная сетевая политики разграничения доступа плюс специальная схема функционирования SUID/SGID процессов), установленную на двухпроцессорной мини-ЭВМ? Эта система является одним из лучших в мире полнофункциональных межсетевых экранов (МЭ) CyberGuard 3.0 (мы тестировали этого «монстра» в 1996 году). В процессе анализа защищенности этого МЭ относительно удаленных воздействий, осуществляемых по каналам связи, выяснилось, что в случае базовой (после всех стандартных настроек) конфигурации ОС защищенная UNIX-система также поражается ложным ARP-сервером (что, в общем, было вполне ожидаемым).

В заключение отметим, что, во-первых, причина успеха данной удаленной атаки кроется не столько в Internet, сколько в широковещательной среде Ethernet, а во-вторых, эта атака является внутрисегментной и представляет для вас угрозу только в том случае, если атакующий находится внутри вашего сегмента сети. Однако не стоит полагать, что из-за этого атака не представляет опасности, так как по статистике нарушений информационной безопасности вычислительных сетей известно, что большинство состоявшихся взломов производилось именно собственными сотрудникам компаний. Причины понятны: осуществить внутрисегментную удаленную атаку значительно легче, чем межсегментную. Кроме того, практически все организации имеют локальные сети (в том числе и IP-сети), хотя далеко не у всех они подключены к сети Internet. Это объясняется как соображениями безопасности, так и отсутствием у организации необходимости такого подключения. И наконец, сотрудникам, знающим тонкости своей внутренней вычислительной сети, гораздо легче осуществить взлом, чем кому бы то ни было. Поэтому администраторам безопасности нельзя недооценивать данную удаленную атаку, даже если ее источник находится внутри их локальной IP-сети.

Darmowy fragment się skończył.

Gatunki i tagi

Ograniczenie wiekowe:
0+
Data wydania na Litres:
21 lipca 2011
Objętość:
437 str. 63 ilustracji
ISBN:
5-89818-036-2
Właściciel praw:
ДМК Пресс

Podobne książki