Межсетевые экраны могут защитить сеть от некоторых типов нападений. Они обеспечивают полезную регистрацию сетевого трафика. Однако, во многом подобно антивирусному программному обеспечению, межсетевые экраны никогда не обеспечат стопроцентную защиту. Фактически они часто обеспечивают гораздо меньшую защищенность.
Прежде всего, даже если бы межсетевые экраны были бы на 100 % эффективны и отражали бы все проходящие через них атаки, следует понимать, что не все направления нападений проходят через межсетевой экран. Недобросовестные служащие, физическая безопасность, модемы и инфицированные дискеты все еще представляют различные угрозы безопасности. В интересах обсуждения не рассматриваются угрозы безопасности, не связанные с необходимостью их прохождения через сетевые экраны.
Межсетевые экраны – это устройства и/или программное обеспечение, разработанное для выборочного разделения двух или более сетей. Они предназначены для того, чтобы разрешить прохождение одних потоков информации и запретить другие. Что именно разрешать или запрещать, обычно контролирует человек, управляющий межсетевым экраном. Что разрешено или запрещено, должно быть отражено в письменной форме в политике безопасности, которая разрабатывается в каждой организации.
До тех пор, пока какому-либо трафику разрешено проходить через межсетевой экран, сохраняется потенциальная угроза нападения. Например, большинство межсетевых экранов разрешают тот или иной доступ к заранее определенным Web-узлам, из защищаемой сети к Web-узлам и обратно или только к Web-серверам. Простейшая реализация подобного варианта доступа основана на фильтрации порта, которая может быть осуществлена маршрутизатором со списками доступа. Простой фильтр трафика по протоколу ICMP, блокируя трафик внешнего интерфейса, запретит прохождение ответов от вашей системы к другой при выдаче команды ping. Для примера воспользуйтесь командами ping или tracert, указав в качестве параметра адрес www.microsoft.com. Вы получите сообщение о превышении интервала ожидания ответа на запрос. Узел компании Микрософт вышел из строя? Вряд ли. Скорее всего, при настройке системы обеспечения безопасности была заблокирована, помимо всего прочего, передача информации по протоколу ICMP. Есть несколько уровней защиты, которые могут предоставить межсетевые экраны для работы в Интернет. Простое конфигурирование маршрутизатора позволит хостам внутренней сети, защищенной межсетевым экраном, получить доступ к любой машине в Интернете по порту 80 протокола TCP, а также любой машине в Интернете послать ответ c 80 порта на любую машину защищенной сети. Более «осторожные» межсетевые экраны могут понимать протокол HTTP, пропуская только разрешенные команды HTTP. Это поможет сравнить сайт, посещаемый пользователем в данный момент, со списком сайтов, запрещенных к посещению. Тем самым можно сразу передавать программе сканирования вирусов файлы, полученные с этих сайтов, для проверки.
Давайте рассмотрим пример максимально защищенного межсетевого экрана протокола HTTP. Пусть вы администратор межсетевого экрана. Вы сконфигурировали межсетевой экран таким образом, что разрешили только некоторые команды протокола HTTP. Вы разрешаете вашим пользователям посещать только те сайты, которые перечислены в списке из 20 санционированных к посещению сайтов. Вы настроили межсетевой экран таким образом, чтобы не пропускать программы на языках Java, JavaScript и ActiveX. Вы сконфигурировали межсетевой экран таким образом, что разрешили лишь загрузку HTML-файлов и файлов с расширениями gif и jpg.
Могут ли ваши пользователи чувствовать себя в безопасности за межсетевым экраном, настроенным подобным образом? Конечно, могут. Пусть я буду злым хакером (или возможно, неосведомленным в вопросах безопасности Web-мастером), пытающимся передать свою программу через такой межсетевой экран. Как мне обойти тот факт, что вы разрешили загружать только определенные типы файлов? Я разработаю и вывешу на всеобщее обозрение Web-страницу, которая сообщает вашим пользователям о необходимости нажатия правой копки мыши на jpg-файле для его загрузки на компьютер пользователя, а затем переименую загруженный файл в evil.exe, как только он окажется на вашем жестком диске (имеется в виду, что предварительно внедряемая программа была переименована в jpg-файл). Как преодолеть антивирусное программное обеспечение? Вместо сообщения вашим пользователям о переименовании файла в исполнимый exe-файл я сообщаю им о его переименовании в zip-файл и разархивирую его с использованием пароля «hacker». Ваше антивирусное программное обеспечение никогда не сможет проверить защищенный паролем архивный zip-файл. Пусть вы тем или иным способом не позволите своим пользователям попасть на мой сайт. Нет проблем. Все, что я должен делать, – это взломать один из одобренных вами для посещения сайтов. Однако вместо обычного очевидного искажения информации на сайте я оставлю все как есть, но с маленьким дополнением небольшого кода на JavaScript. К тому времени, когда кто-либо обнаружит эту едва различимую подмену, я наверняка добьюсь своей цели.
Разве производители межсетевых экранов не знают об этих проблемах? Хакеры и разработчики межсетевых экранов играют в бесконечную игру «догони меня». Производители межсетевых экранов вынуждены ждать, пока хакеры придумают новый тип атаки, поскольку они не знают, как им защититься, и поэтому всегда будут отставать.
В различных рассылках публикаций по тематике межсетевых экранов можно найти немало философских дебатов по точному определению периметра сетей, защищаемого межсетевыми экранами, но эти обсуждения сейчас неактуальны для нас. Для наших целей важно то, что межсетевые экраны – это коммерческие продукты, продаваемые как аппаратно-программные средства межсетевой защиты, которые, как утверждается, выполняют фильтрацию информации в сети, маршрутизаторах и т. д. В основном нас интересует то, как мы получаем нашу информацию через межсетевой экран.
Оказывается, есть множество способов подвергнуться нападению через межсетевой экран. В идеале межсетевые экраны осуществляют политику безопасности в полной мере. В действительности межсетевой экран создают люди, поэтому он далек от совершенства. Одна из основных проблем межсетевых экранов состоит в том, что его администраторы с трудом могут ограничить именно тот трафик, который они хотели бы. Например, в политике безопасности может быть заявлено, что разрешен доступ к Интернету по протоколу HTTP и запрещено использование RealAudio. Администратору межсетевого экрана следует запретить порты RealAudio, не так ли? Проблема состоит в том, что люди, которые написали RealAudio, понимая, что подобное может произойти, предоставили пользователю возможность загрузить файлы RealAudio по протоколу HTTP. В действительности если вы при настройке не укажите явно вариант доступа к содержимому RealAudio с Web-сайта, то большинство версий RealAudio выполнит ряд проверок для определения варианта подобного доступа. При этом, если это потребуется, автоматически будет выбран протокол HTTP. Фактически проблема в этом случае состоит в том, что любой протокол может быть туннелирован по любому другому, если только синхронизация по времени не критична (то есть если туннелирование не приведет к чрезмерному замедлению работы). RealAudio выполняет буферизацию, если сталкивается с проблемой синхронизации.
Разработчики различных интернетовских «игрушек» хорошо осознают, какие протоколы обычно разрешены, а какие нет. Много программ разработано с использованием протокола HTTP в качестве основного или резервного средства переноса информации через сеть.
Вероятно, существует много способов нападения на компанию, защищенную межсетевым экраном, и без какого-либо воздействия на экран. Можно атаковать, используя модемы, дискеты, взятки и подкуп, взлом компьютерных систем защиты, получение физического доступа к компьютеру и т. д. Но сейчас мы рассматриваем атаки на межсетевой экран.
Социотехника
Социотехника – это искусство обмана пользователей сети или администраторов, используемое злоумышленниками с целью выведывания паролей, необходимых для проникновения в защищенную систему. Обман – один из первых и наиболее очевидных способов преодоления межсетевого экрана. Электронная почта стала очень популярным средством, с помощью которого предпринимаются попытки обмануть людей, заставив их совершить дурацкие поступки. Вирусы «Мелисса» и «I live you» – наиболее известные примеры подобного обмана. Другими примерами могут служить специально написанные программы, демонстрирующие свое злонамеренное поведение во время выполнения (Троянские кони), или вполне легальные программы, которые были «инфицированы» или взяты под контроль тем или иным способом (Троянские кони/вирусы). В большинстве операций массовой почты низкой скорости реакции пользователя вполне достаточно для успеха. В случае злонамеренной пользовательской программы ущерб может быть особенно значительным, поскольку у антивирусных программ нет шансов обнаружить ее. Для информации о том, что можно сделать с вирусом или Троянским конем, см. главу 15.
Нападение на незащищенные сервера
Другой способ пройти межсетевой экран состоит в том, чтобы напасть на незащищенные участки сети. Межсетевые экраны образуют демилитаризованную зону (DMZ), в которой размещаются Web-сервера, почтовые сервера и т. д. Известны дебаты относительно того, является ли классическая демилитаризованная зона сетью, находящейся целиком вне действия межсетевого экрана (и поэтому им не защищенной), или демилитаризованная зона – это некоторая промежуточная сеть. В настоящее время в большинстве случаев Web-сервера, почтовые сервера и т. п. относятся к так называемому третьему интерфейсу межсетевого экрана, который защищает их от воздействия извне, не позволяя в то же время компонентам внутренней сети устанавливать с ними доверительные отношения и напрямую принимать от них информацию.
Проблема для администраторов межсетевых экранов состоит в том, что межсетевые экраны не до конца интеллектуальны. Они могут фильтровать потоки информации, могут требовать выполнения процедуры аутентификации и регистрировать информацию, но они не могут отличить плохой разрешенный запрос от хорошего. Например, автору не известен ни один межсетевой экран, способный отличить легитимный запрос для Web-страницы от нападения с использованием сценария CGI. Конечно, некоторые межсетевые экраны могут быть запрограммированы для поиска некоторых типов CGI-сценариев, которые пытались выполнить (например, *.phf). Но если вы захотите распространить CGI-сценарий для совместного использования, межсетевой экран не в состоянии отличить законных пользователей от атакующего злоумышленника, нашедшего дырку в системе защиты. Многое из сказанного справедливо для протоколов SMTP, FTP и большинства других широко используемых сервисов. Все они уязвимы. (В главе 7 приведены дополнительные сведения о нападениях на сетевые сервисы и примеры атак при помощи CGI-сценариев.)
Предположим, что вы нашли способ проникнуть на сервер в демилитаризованной зоне. В результате вы получили доступ к корневому каталогу сервера или права администратора на сервере. Означает ли это, что удалось проникнуть во внутреннюю сеть? Пока еще нет. Вспомните, что согласно ранее данному определению демилитаризованной зоны устройства зоны не имеют доступа во внутреннюю сеть. На практике это выполняется не всегда, поскольку очень немногие изъявляют желание заниматься администрированием своих серверов, сидя за консолью. Что, если на FTP-сервере, например, они захотели бы открыть всем, исключая себя, доступ к FTP-портам? И пусть в интересах работы организации наибольшая часть трафика в сети должна проходить от внутренней сети к демилитаризованной зоне. Большинство межсетевых экранов могут работать как диоды, пропуская трафик только в одном направлении. Организовать подобный режим работы сложно, но можно. В этом случае главная трудность проникновения во внутреннюю сеть состоит в том, что вы должны находиться в ожидании наступления определенных событий. Например, если вы поймаете момент начала передачи данных по протоколу FTP или момент открытия администратором во внутренней сети окна XWindow (XWindow окна широко используются в сетевой среде UNIX протокола для многооконного отображения графики и текста), то у вас появится возможность проникнуть во внутреннюю сеть.
Более вероятно, что вы захотите найти порт, открытый для работы. Многие сайты поддерживают сервисные возможности, для работы которых требуется, чтобы компьютеры демилитаризованной зоны могли инициировать обратную связь с компьютерами внутренней сети. Это может быть электронная почта (почта должна быть доставлена во внутреннюю сеть), поиск по базам данных (например, для сайтов электронной коммерции) и, возможно, механизмы отчетности (вероятно, системные журналы). Попытка проникновения из демилитаризованной зоны во внутреннюю сеть упрощается, потому что вы сможете точно определить момент обмена информацией между демилитаризованной зоной и внутренней сетью. Рассмотрим следующую ситуацию. Предположим, что вам удалось успешно проникнуть на почтовый сервер в демилитаризованной зоне, используя ошибки почтового демона (демон – сетевая программа, работающая в фоновом режиме, или процедура, запускаемая автоматически при выполнении некоторых условий). Появились хорошие возможности наладить связь из демилитаризованной зоны с внутренним почтовым сервером. Возможности хороши, поскольку на внутреннем почтовом сервере выполняется тот же самый почтовый демон, который вы только что взломали, или даже менее защищенный (в конце концов, это – внутренний компьютер, который не предназначен для непосредственной работы с Интернетом, не так ли?).