Специальная
публикация NIST 800-10
Джон Вэк и Лиза
Карнахан "Содержание сети вашей
организации в безопасности при
работе с Интернетом( Введение в
межсетевые экраны(брандмауэры))"
Этот документ содержит
обзор проблем, связанных с
безопасностью в Интернете. Он также
кратко описывает все компоненты
брандмауэра и основные причины,
приводящие к необходимости
использовать брандмауэры.
Описывается несколько типов
политик сетевого доступа и
техническая реализация этих
политик. В конце документ содержит
библиографию по данной теме.
Целью этого документа
является помощь пользователям
понять природу проблем, связанных с
безопасностью в Интернете, и то,
какие типы брандмауэров могут
решить эти проблемы. Пользователи
могут использовать этот документ
как руководство при проектировании
или приобретении брандмауэра.
Предисловие
Интернет - это
объединение в масштабе всей
планеты группы сетей, которое
использует единый протокол для
передачи данных. Большое число
организаций сейчас присоединяются
к Интернету для того, чтобы
воспользоваться преимуществами и
ресурсами Интернета. Бизнесмены и
государственные организации
используют Интернет в самых
различных целях - включая обмен
электронной почтой,
распространение информации среди
заинтересованных лиц и проведение
исследований. Многие организации
сегодня присоединяют существующие
локальные сети к Интернету , чтобы
рабочие станции этих ЛВС могли
получить прямой доступ к сервисам
Интернета.
Присоединение к
Интернету может дать огромные
преимущества, хотя при этом нужно
серьезно учесть вопросы, связанные
с безопасностью соединения.
Существуют достаточно серьезные
риски безопасности, связанные с
Интернетом, которые зачастую
являются неочевидными для
пользователей-новичков. В
частности, в мире наблюдается
деятельность злоумышленников, при
этом имеется много уязвимых мест,
которые могут ее облегчить.
Действия злоумышленников трудно
предсказать и порой ее бывает
трудно обнаружить и прекратить.
Многие организации уже потеряли
много времени и понесли
значительные финансовые потери
из-за деятельности
злоумышленников; некоторым
организациям был нанесен урон их
репутации, когда стало известно о
проникновениях в их сети.
Эта публикация будет
рассматривать вопросы, связанные с
безопасностью, которые нужно
учесть как организациям,
собирающимся присоединиться к
Интернету , так и организациям, уже
присоединенным к Интернету. В
частности, это документ подробно
рассматривает брандмауэры для
Интернета, как один из механизмов и
методов, используемых для защиты
внутренних сетей от угроз,
связанных с Интернетом. Этот
документ рекомендует организациям
использовать технологию
брандмауэров и другие, связанные с
ними, средства, для фильтрации
соединений и управления доступом в
сети.
Цель
Цель этого документа -
объяснить, как работают
брандмауэры, и какие шаги
необходимы для их реализации.
Пользователи могут использовать
это документ как помощь при
проектировании или приобретении
брандмауэра.
Для кого
написана эта книга
В-основном, эта
публикация для технических
администраторов, то есть для тех,
кто может отвечать за реализацию
или поддержание соединений с
Интернетом. Она также будет полезна
и для другого руководящего состава,
кто хочет узнать больше о
безопасности соединения с
Интернетом.
Предполагается знание
некоторых основ в областях
компьютерной безопасности и сетей
передачи данных. Тем не менее, этот
документ является введением; более
детальная информация о
бехопасности в Интернете и
брандмауэрах может быть найдена в
литературе, указанной в
библиографии.
Структура
документа
Этот документ начинается
с обзора Интернета и его основных
сервисов. Детально описываются
проблемы безопасности, связанные с
Интернетом, связанные с различными
сервисами TCP/IP, а также другие
факторы, которые приводят к
небезопасности работы в Интернете.
Глава 2 описывает брандмауэры, их
преимущества и недостатки, и после
этого, различные компоненты
брандмауэра, включая средства
усиленной аутентификации и
политику сетевого доступа. Глава 3
описывает различные конфигурации
брандмауэров, которые
иллюстрируют, как компоненты
брандмауэра соединяются друг с
другом, и могут быть использованы
для реализации различных политик.
Глава 4 рассматривает вопросы
надзора, административные вопросы
и другие действия, которые должны
предпринять организации для защиты
своих систем, присоединенных к
Интернету. Приложение А содержит
список литературы и других
источников инфомации о
брандмауэрах и безопасности в
Интернете. Приложение В содержит
набор часто задаваемых вопросов о
брандмауэрах, который доступен в
режиме online.
Терминология
Интернетовские
брандмауэры часто называются в
литературе безопасными
Интернетовскими шлюзами. Этот
документ использует термин
брандмауэр для обозначения
безопасного Интернетовского шлюза.
Брандмауэр, согласно
данному документу, включает ряд
элементов, таких как политика,
внесение изменений в структуру
сети, а также технические средства
и организационные меры. Этот
документ будет использовать термин
система брандмауэра для
обозначения хостов или
маршрутизаторов, реализующих
брандмауэр.
Сеть, защищаемая
брандмауэром, называется защищенной
подсетью или защищенной ЛВС.
Некоторые люди не могут
понять, следует ли рассматривать
протоколы TCP/IP как протоколы или как
сервисы. Можно, например,
доказывать, что TELNET является
протоколом, сервисом или командой.
Там, где это нужно, в документе
используется термин протокол, в
остальных случаях используется
термин сервис.
В этом документе прикладными шлюзами называются ряд систем брандмауэров в противоположность хостам-бастионам.
Насколько это возможно,
этот документ избегает
использования таких терминов, как
хакер и кракер, и использует вместо
этого менее тендециозные термины
злоумышленник и атакующий.
Предыстория
Интернет стал жизненно необходимой и постоянно растущей сетью, которая изменила образ жизнедеятельности многих людей и организаций. Тем не менее, из-за Интернета возникло много серьезных проблем с безопасностью. Многие организации были атакованы или зондированы злоумышленниками( Злоумышленники часто проверяют сети организаций на возможность проникновения в них путем методического сканирования систем в них на наличие уязвимых мест. Злоумышленники часто используют средства автоматического зондирования, то есть программы, которые сканируют все хосты, присоединенные к сети организации. Эта деятельность называется иногда зондирование сети организации ) что привело к большим потерям во времени и ущербу репутации. В некоторых случаях, организации вынуждены были временно отсоединиться от Интернета, и потратить значительные средства для решения возникших проблем с конфигурацией хостов и сети. Сети организаций, которые неосведомлены или игнорируют эти проблемы, подвергают себя большому риску быть атакованными сетевыми злоумышленниками. Даже те организации, в которых безопасности уделяется внимание, могут подвергаться риску из-за появления новых уязвимых мест в сетевом программном обеспечении или упорства некоторых злоумышленников.
Данное положение дел
сложилось по ряду причин. Одной из
основных причин может быть то, что
при разработке Интернет требования
безопасности не учитывались, так
как гланым требованием при
реализации Интернета было
требование удобства при обмене
информацией при проведении научных
исследований. Тем не менее,
феноменальный успех Интернета в
сочетании с появлением большого
числа категорий пользователей ,
включая пользователей , у которых
отсутствует понятие этики,
усугубило существующие недостатки
в обеспечении безопасности до
такой степени, что сети, открытые
для доступа со стороны Интернета,
стали подвергаться риску
проникновений в них и нанесения им
разрушений. Другими причинами
являются следуюшие:
Решение
К счастью, существуют простые и надежные решения, которые могут быть использованы для улучшения безопасности сети организации. Система брандмауэра является одним из способов, который доказал свою высокую эффективность при повышении общей безопасности сети. Система брандмауэра - это набор систем и маршрутизаторов, добавленных в сеть в местах ее соединения с Интернетом и политики доступа, определяющей правила их работы. Брандмауэр заставляет все сетевые соединения проходить через шлюз, где они могут быть проанализированы и оценены с точки зрения безопасности, и предоставляет другие средства, такие как меры усиленной аутентификации вместо паролей. Кроме того, брандмауэр может ограничить доступ к тем или иным системам или доступ к Интернету от них, блокировать определенные сервсиы TCP/IP, или обеспечить другие меры безопасности. Хорошо сконфигурированная система брандмауэра может выполнять роль пресс-службы организации и помочь сформировать у пользователей Интернета хорошее впечатление об организации.
Самой простой политикой
сетевого доступа, которая может
быть реализована с помощью
брандмауэра, является
предоставление доступа от
внутренних к внешним системам и
запрет, полный или частичный,
доступа от внешних к внутренним
системам. Но использование
брандмауэра не должно позволять
администраторам забыть о
необходимости обеспечения
безопасности отдельных систем.
Существует большое число средств
для системных администраторов,
позволяющих повысить безопасность
систем и обеспечить улучшыенные
возможности по протоколированию.
Такие средства могут проверять
пароли, журналы с информацией о
соединениях, обнаруживать
изменения системных файлов или
обеспечивать другие меры
безопасности, которые помогут
администраторам обнаружить
деятельность злоумышленников и
проникновения в их системы.
Рекомендации
авторов
Мы рекомендуем
организациям перед присоединением
к Интернету разработать политику,
которая бы ясно указывала, какие
сервисы Интернета будут
использоваться, и как они будут
использоваться. Эта политика
должна быть простой, четкой и
понятной, со встроенными
механизмами по ее изменению.
Организации должны рассмотреть
возможность использования систем
брандмауэров как часть плана по
реализации этой политики. (Образец
такой политики приведен в
приложении). Также рекомендуется
использовать меры усиленной
аутентификации: смарткарты или
другие механизмы одноразовых
паролей как составную часть
брандмауэров при аутентификации
соединений с системами сети.
Хотя присоединение к Интернету предоставляет огромные выгоды в виде доступа к колоссальному объему информации, оно не обязательно является хорошим решением для организаций с низким уровнем безопасности. Интернет страдает от серьезных проблем с безопасностью, которые, если их игнорировать, могут привести к ужасным последствиям для неподготовленных сетей. Ошибки при проектировании сервисов TCP/IP, сложность конфигурирования хостов, уязвимые места, появившиеся в ходе написания программ, и ряд других причин в совокупности делают неподготовленные сети открытыми для деятельности злоумышленников и уязвимыми к связанными с этим проблемам.
Следующие пункты кратко
описывают Интернет, TCP/IP, а затем
рассказывают о некоторых проблемах
безопасности в Интернете и
причинах, делающих достаточно
серьезными.
1.1 Интернет
Интернет - это всемирная
сеть сетей, которая использует для
взаимодействия стек протоколов
TCP/IP. Вначале Интернет был создан
для улучшения взаимодействия между
научными организациями,
выполнявшими работы в интересах
правительства США. В течение 80-х
годов к Интернету подключились
образовательные учреждения,
государственные организации,
различные американские и
иностранные фирмы. В 90-е годы
Интернет переживает феноменальный
рост, причем увеличение числа
соединений превышает все темпы,
имевшие место ранее. Теперь к
Интернету присоединены многие
миллионы пользователей, причем
только половина из них
коммерческие пользователи[Cerf93].
Сейчас Интернет используется как
основа для Национальной
Информационной Инфраструктуры(NII)
США.
Существует ряд сервисов,
связанных с TCP/IP и Интернетом.
Наиболее распространенным
сервисом является электронная
почта, реализованная на базе
протокола SMTP(Простой Протокол
Передачи Писем). Также широко
используются TELNET(эмуляция
удаленного терминала) и FTP(протокол
передачи файлов). Помимо них
существует ряд сервисов и
протоколов для удаленной печати,
предоставления удаленного доступа
к файлам и дискам, работы с
распределенными базами данных и
организации других информационных
сервисов. Далее приводится краткий
список наиболее распространенных
сервисов:
Хотя сервисы TCP/IP могут в
равной степени использоваться как
в локальных сетях, так и в
глобальных сетях, в локальных
сетях, как правило, применяется
совместное использование файлов и
принтеров, а электронная почта и
удаленный терминальный доступ - в
обоих случаях. С каждым годом
возрастает популярность gopher и www .
Оба этих сервиса приводят к
возникновению проблем для
разработчиков брандмауэров и будут
рассмотрены в следующих главах.
На многих системах, подключенных к Интернету, работает одна из версий ОС Unix. Впервые TCP/IP был реализован в начале 80-х годов в версии Unix, написанной в университете в Калифорнии в Беркли, известной как BSD(Berkeley Software Distribution). Многие современные версии Unix позаимствовали тексты сетевых программ из этой версии, поэтому Unix обеспечивает более или менее стандартный набор сервисов TCP/IP. Это привело к тому, что много различных версий Unixа имеют одни и те же уязвимые места, правда, это также привело к целесообразности широкого применения стратегий брандмауэров, таких как фильтрация IP. Следует отметить, что исходные тексты BSD UNIX можно легко получить в ряде Интернетовских серверов, поэтому как хорошие, так и плохие люди могут изучить тексты программ и найти в них потенциальные уязвимые места и использовать их для проникновения.
Хотя Unix и является
наиболее распространенной ОС в
Интернете, к нему присоединено
много различных типов компьютеров
с другими ОС, включая системы с DEC VMS,
NeXT, MVS и ОС персональных
компьютеров, такие как DOS, Microsoft Windows,
Windows'95, Windows NT и Apple. Хотя
персональные компьютеры
обеспечивают только клиентскую
часть сервисов, то есть, используя
TELNET, можно подключиться с
персонального компьютера, но не к
персональному компьютеру, все
возрастающая мощность ПЭВМ
начинает также обеспечивать
предоставление тех же сервисов,
которые сейчас предоставляются
большими компьютерами, только
гораздо дешевле. Версии Unix для ПЭВМ,
включая Linux, FreeBSD и BSDi, а также другие
ОС, такие как Microsoft Windows NT, могут
сейчас обеспечить те же самые
сервисы и приложения, которые ранее
были только на больших системах.
Следствием этого является то, что
сейчас полный набор сервисов TCP/IP
используется небывалым
количеством людей. Хотя это и
хорошо в том смысле, что сетевые
сервисы стали общедоступны,
отрицательные последствия
заключаются в возникновении
огромных возможностей для
совершения преступлений у
злоумышленников( а также у
неграмотных пользователей, которые
в некоторых случаях могут
рассматриваться как вид
злоумышленников) .
Этот раздел содержит краткое описание TCP/IP в объеме, достаточном для последующего обсуждения проблем безопасности, связанных с Интернетом. [Com91a],[Com91b],[Hunt92] и [Bel89] содержат гораздо более подробное описание; читатели, которые хотят получить более глубокое представление, должны обратиться к этим источникам.
Отчасти популярность стека протоколов TCP/IP объясняется возможностью его реализации на базе большого числа разнообразных каналов и протоколов канального уровня, таких как T1 и Х.25, Ethernet и линии RS-232. Большинство организаций использует в своих ЛВС Ethernet для объединения хостов и клиентских систем, а затем присоединяет эти сети с помощью T1 к региональной сети.( например, региональной магистральной сети TCP/IP), которая соединяет в свою очередь с сетями других организаций и другими магистральными каналами. Как правило, организации имеют одно соединение с Интернетом, но большие организации могут иметь два и более соединений. Скорости модемов увеличиваются по мере появления новых коммуникационных стандартов, поэтому версии TCP/IP, которые работают в среде коммутируемых телефонных каналов, становятся все более популярными. Многие организации и просто отдельные люди используют PPP (Point-to-Point Protocol) и SLIP(Serial Line IP) для подключения своих сетей и рабочих станций к другим сетям, используя телефонные каналы.
Если говорить строго, то TCP/IP - это стек протоколов, включающий TCP, IP, UDP( User Datagram Protocol), ICMP( Internet Control Message Protocol), и ряд других протоколов. Стек протоколов TCP/IP не соответствует модели взаимодействия открытых систем( ВОС), и его структура показана на рисунке 1.1
Уровень IP получает пакеты, доставлемые нижними уровнями, например драйвером интерфейса с ЛВС, и передает их лежащим выше уровням TCP или UDP. И наоборот, IP передает пакеты, полученные от уровней TCP и UDP к нижележащим уровням.
Пакеты IP являются дейтаграмами с негарантированной доставкой, потому что IP ничего не делает для обеспечения гарантии доставки пакетов IP по порядку и без ошибок. Пакеты IP содержат адрес хоста, с которого был послан пакет, называемый адресом отправителя, и адрес хоста, который должен получить пакет, называемый адресом получателя.
Высокоуровневые сервисы
TCP и UDP при приеме пакета
предполагают, что адрес
отправителя, указанный в пакете,
является истинным. Другими словами,
адрес IP является основой для
аутентификации во многих сервисах;
сервисы предполагают, что пакет был
послан от существующего хоста, и
именно от того хоста, чей адрес
указан в пакете. IP имеет опцию,
называемую опция маршрутизации
источника, которая может быть
использована для для указания
точного прямого и обратного пути
между отправителем и получателем.
Этот путь может задействовать для
передачи пакета маршрутизаторы или
хосты, обычно не использующиеся для
передачи пакетов к данному
хосту-получателю. Для некоторых
сервисов TCP и UDP пакет IP c такой
опцией кажется пришедшим от
последней системы в указанном пути,
а не от своего истинного
отправителя. Эта опция появилась в
протоколе для его тестирования, но
[Bel89] отмечает, что маршрутизация
источника может использоваться для
обмана систем с целью установления
соединения с ними тех хостов,
которым запрещено с ними
соединяться. Поэтому, то, что ряд
сервисов доверяют указанному
IP-адресу отправителя и полагаются
на него при аутентификации, очень
опасно и может привести к
проникновению в систему.
Если IP-пакеты содержат инкапсулированные пакеты TCP, программы IP передадут их вверх уровню TCP. TCP последовательно нумерует все пакеты и выполняет исправление ошибок, и реализует таким образом виртуальные соединения между хостами. Пакеты TCP содержат последовательные номера и подтверждения о приеме пакетов, поэтому пакеты, принятые не в порядке передачи, могут быть переупорядочены , а испорченные пакеты повторно посланы.
TCP передает полученную
информацию приложениям верхнего
уровня, например клиенту или
серверу TELNETа. Приложения, в свою
очередь, передают информацию
обратно уровню TCP, который передает
ее ниже уровню IP, после чего она
попадает к драйверам устройств, в
физическую среду и по ней
передается до хоста-получателя.
Сервисы с установлением
соединения, такие как TELNET, FTP, rlogin, X
Windows и SMTP требуют надежности и
поэтому используют TCP. DNS использует
TCP только в ряде случаев( для
передачи и приема баз данных
доменных имен), а для передачи
информации об отдельных хостах
использует UDP .
Как показано на рисунке 1.1, UDP взаимодействует с прикладными программами на том же уровне, что и TCP. Тем не менее, он не выполняет функции исправления ошибок или повторной передачи потерянных пакетов. Поэтому UDP не используется в сервисах с установлением соединения, которым требуется создание виртуального канала. Он применяется в сервисах типа запрос-ответ, таких как NFS, где число сообщений в ходе взаимодействия гораздо меньше, чем в TELNET и FTP. В число сервисов, использующих UDP, входят сервисы на базе RPC, такие как NIS и NFS, NTP( протокол сетевого времени) и DNS(также DNS использует TCP).
Пакеты UDP гораздо проще
подделать, чем пакеты TCP, так как нет
этапа установления соединения(
рукопожатия).[Ches94]. Поэтому с
использованием сервисов на базе UDP
сопряжен больший риск.
ICMP(Протокол межсетевых управляющих сообщений) находится на том же уровне, что и IP; его назначение - передавать информацию, требуемую для управления траффиком IP. В-основном, он используется для предоставления информации о путях к хостам-получателям. Сообщения ICMP redirect информируют хосты о существовании боле коротких маршрутов к другим системам, а сообщения ICMP unreachable указывает на наличие проблем с нахождением пути к получателю пакета. Кроме того, ICMP может помочь корректно завершить соединение TCP, если путь стал недоступен. PING является широко распространенным сервисом на базе ICMP.
[Bel89] рассматривает две
проблемы с ICMP: старые версии Unix
могут разорвать все соединения
между хостами, даже если только
одно из них столкнулось с
проблемами. Кроме того, сообщения о
перенаправлении пути ICMP могут быть
использованы для обмана
маршрутизаторов и хостов с целью
заставить их поверить в то, что хост
злоумышленника является
маршрутизатором и пакеты лучше
отправлять через него. Это, в свою
очередь, может привести к тому, что
атакующий получит доступ к
системам, которым не разрешено
иметь соединения с машиной
атакующего или его сетью.
Сервисы TCP и UDP используются с помощью схемы клиент-сервер. Например, процесс сервера TELNET вначале находится в состоянии ожидания запроса установления соединения. В какой-нибудь момент времени пользователь запускает процесс клиента TELNET, который инициирует соединение с сервером TELNET. Клиент посылает данные серверу, тот читает их, и посылает обратно клиенту ответ. Клиент читает ответ и сообщает о нем пользователю. Поэтому, соединение является двунаправленным и может быть использовано как для чтения, так и для записи.
Как много одновременных соединений TELNET может быть установлено между системами? Соединение TCP или UDP уникальным образом идентифицируется с помощью четырех полей, присутствующих в каждом соединении:
Порт - это программное понятие, которое используется клиентом или сервером для посылки или приема сообщений; порт идентифицируется 16-битвым числом. Серверные процессы обычно ассоциируются с фиксированным числом, например числом 25 для SMTP или 6000 для X Windows; номер порта является известным, так как он требуется, помимо IP-адреса получателя, при установлении соединения с конкретным хостом и сервисом. Клиентские процессы, с другой стороны, запрашивают номер порта у операционной системы в начале работы; и номер порта является случайным, хотя в некоторых случаях он является следующим в списке свободных номеров портов.
Для иллюстрации того, как используются порты для посылки и приема сообщений, рассмотрим протокол TELNET. Сервер TELNET слушает приходящие сообщения на порту 23, и сам посылает сообщения на порт 23. Клиент TELNET, на той же или другой системе, сначала запрашивает неиспользуемый номер порта у ОС, а затем использует его при посылке и приеме сообщений. Он должен указывать это номер порта, например 3097, в пакетах, предназначенных для сервера TELNET, чтобы этот сервер при ответе на сообщение клиента мог поместить это номер в посылаемые им TCP-пакеты. Хост клиента по приему сообщения должен посмотреть номер порта в сообщении и решить, какой из клиентов TELNET должен принять это сообщение. Этот процесс показан на рисунке 1.2
Рисунок 1.2
Взаимодействие при TELNET
Существует достаточно распространенное правило, согласно которому тольуо привилегированные процессы сервера, то есть те процессы, которые работают с привилегиями суперпользователя UNIX, могут использовать порты с номерами меньше, чем 1024( так называемые привилегированные порты). Сервера в-основном используют порты с номерами меньше, чем 1024, а клиенты как правило должны запрашивать непривилегированные порты у ОС. Хотя это правило и не является обязательным для исполнения и не требуется спецификацией протоколов TCP/IP, системы на основе BSD соблюдают его.
В результате всего этого брандмауэры могут блокировать или фильтровать доступ к службам на основе проверки номеров портов в TCP- и UDP-пакетах и последующего пропускания через себя или удаления пакета на основе политики, указывающей доступ к каким службам разрешен или запрещен. (более детально это описано в главе 2).
Не все серверы и клиенты
TCP и UDP используют порты таким
простым способом, как TELNET, но в
целом, процедура, описанная здесь,
полезна в контексте брандмауэра.
Например, многие ОС персональных
компьютеров не используют понятия
суперпользователя UNIX, но все-таки
используют порты описанным выше
способом( хотя нет стандарта,
требующего это).
Как было установлено ранее, Интернет страдает от серьезных проблем с безопасностью. Организации, которые игнорируют эти проблемы, подвергают себя значительному риску того, что они будут атакованы злоумышленниками, и что они могут стать стартовой площадкой при атаках на другие сети. Даже те организации, которые заботятся о безопасности, имеют те же самые проблемы из-за появления новых уязвимых мест в сетевом программном обеспечении(ПО) и отсутствия мер защиты от некоторых злоумышленников.
Некоторые из проблем
безопасности в Интернете -
результат наличия уязвимых мест
из-за ошибок при проектировании в
службах( и в протоколах, их
реализующих) , в то время как другие
- результат ошибок при
конфигурировании хоста или средств
управления доступом, которые или
плохо установлены или настолько
сложны, что с трудом поддаются
администрированию. Кроме того: роль
и важность администрирования
системы часто упускается при
описании должностных обязанностей
сотрудников, что при приводит к
тому, что большинство
администраторов в лучшем случае
нанимаются на неполный рабочий
день и плохо подготовлены. Это
усугубляется быстрым ростом
Интернета и характера
использования Интернета;
государственные и коммерческие
организации теперь зависят от
Интернета( иногда даже больше: чем
они думают) при взаимодействии с
другими организациями и
исследованиях и поэтому понесут
большие потери при атаках на их
хосты. Следующие главы описывают
проблемы в Интернете и причины,
приводящие к их возникновению.
В доказательство того, что описанные выше угрозы реальны, три группы инцидентов имели место в течение нескольких месяцев друг после друга. Сначала, началось широкое обсуждение обнаруженных уязвимых мест в программе UNIX sendmail( это транспортная почтовая программа на большинстве хостов с Unix. Это очень большая и сложная программа, и в ней уже несколько раз были найдены уязвимые места, которые позволяют злоумышленнику получить доступ в системы, в которых запущена sendmail). Организациям, которые не имели исправленных версий программы, пришлось срочно исправлять эти ошибки в своих программах sendmail до того, как злоумышленники используют эти уязвимые места для атаки на их сети. Тем не менее, из-за сложности программы sendmail и сетевого ПО в целом три последующие версии sendmail также содержали ряд уязвимых мест[CIAC94a]. Программа sendmail широко использовалась, поэтому организациям без брандмауэров, для того чтобы ограничить доступ к этой программе, пришлось быстро регировать на возникавшие проблемы и обнаруживаемые уязвимые места.
Во-вторых, обнаружилось, что популярная версия свободно распространяемого FTP-сервера содержала троянского коня, позволявшего получить привилегированный доступ к серверу. Организациям, использовавшим этот FTP-сервер, не обязательно зараженную версию, также пришлось быстро реагировать на эту ситуацию[CIAC94c]. Многие организации полагаются на хорошее качество свободного ПО, доступного в Интернете, особенно на ПО в области безопасности с дополнительными возможностями по протоколированию, управлению доступом и проверке целостности, которое не входит в состав ОС, поставляемой ее производителем. Хотя это ПО часто очень высокого качества, организации могут оказаться в тяжелом положении, если в ПО будут найдены уязвимые места или с ним возникнут другие проблемы, и должны будут полагаться только на его авторов.( Справедливости ради, стоит отметить, что даже ПО, сделанное производителем ОС, может страдать от таких же проблем и его исправление может оказаться более продолжительным).
Третья проблема имела самые серьезные последствия: [CERT94] и [CIAC94b] сообщили, что злоумышленники проникли в тысячи систем во всем Интернете, включая шлюзы между большими сетями и установили анализаторы пакетов для перехвата в сетевом траффике имен пользователей и статических паролей, вводимых пользователями для подключения к сетевым системам. Злоумышленники также использовали другие известные технологии для проникновения в системы, а также перехваченные ими пароли. Одним из выводов, которые можно поэтому сделать является то, что статические или повторно используемые пароли не должны использоваться для управления доступом. Фактически, пользователь, подключающийся к сетевой системе через Интернет, может неумышленно подвергнуть эту систему риску быть атакованной злоумышленниками, которые могли перехватить сетевой траффик, идущий к этой удаленной системе.
Следующие разделы более
детально описывают проблемы с
безопасностью в Интернете. [Garf92],
[Cur92],[ Bel89], [Ches94] и [Farm93] являются
книгами, где вы найдете более
детальную информацию.
Группы улаживания инцидентов считают, что большинство инцидентов произошло из-за использования слабых, статических паролей. Пароли в Интернете могут быть "взломаны" рядом способов, но двумя самыми распространенными являются взлом зашифрованной формы пароля и наблюдение за каналами передачи данных с целью перехвата пакетов с паролями. ОС Unix обычно хранит пароли в зашифрованной форме в файле, который может быть прочитан любым пользователем. Этот файл паролей может быть получен простым копированием его или одним из других способов, используемых злоумышленниками. Как только файл получен, злоумышленник может запустить легко-доступные программы взлома паролей для этого файла. Если пароли слабые, то есть меьше, чем 8 символов, являются словами, и т.д., то они могут быть взломаны и использованы для получения доступа к системе.
Друная проблема с аутентификацией возникает из-за того, что некоторые службы TCP и UDP могут аутентифицировать только отдельный хост, но не пользователя. Например, сервер NFS(UDP) не может дать доступ отдельному пользователю на хосте, он может дать его всему хосту. Администратор сервера может доверять отдельному пользователю на хосте и дать ему доступ, но администратор не может запретить доступ других пользователей на этом хосте и поэтому автоматически должен предоставить его всем пользователям или не давать его вообще.
Следует отметить, что когда пользователь установил сеанса с удаленным хостом, используя TELNET или FTP, то пароль пользователя передается по Интернету в незашифрованном виде. Поэтому другим способом проникновения в системы является наблюдение за соединением с целью перехвата IP-пакетов, содержащих имя и пароль, и последующее использование их для нормального входа в систему. Если перехваченный пароль является паролем администратора, то задача получения привилегированного доступа становится гораздо легче. Как уже ранее отмечалось, сотни и даже тысячи систем в Интернете были скомпрометированы в результате перехвата имен и паролей.
Электронная почта, а также содержимое сеансов TELNET и FTP, может перехватываться и использоваться для получения информации об организации и ее взаимодействии с другими организациями в ходе повседневной деятельности. Большинство пользователей не шифруют почту, так как многие полагают, что электронная почта безопасна и с ее помощью можно передавать критическую информацию.
Система X Windows,
становящаяся все более популярной,
также уязвима перехвату данных. X
позволяет открывать несколько окон
на рабочей станции для работы с
графическими и мультимедийными
приложениями( например,
WWW-браузером Netscape). Злоумышленники
могут иногда открывать окна на
других системах и перехватывать
текст, набираемый на клавиатуре,
который может содержать пароли и
критическую информацию.
Как уже отмечалось в части 1.2.1, предполагается, что IP-адрес хоста правильный, и службы TCP и UDP поэтому могут доверять ему. Проблема заключается в том, что исользуя маршрутизацию IP-источника , хост атакующего может замаскироваться под доверенного хоста или клиента. Коротко говоря, маршрутизация IP-источника - это опция, с помощью которой можно явно указать маршрут к назначению и путь, по которому пакет будет возвращаться к отправителю. Это путь может включать использование других маршрутизаторов или хостов, которые в обычных условиях не используются при передаче пакетов к назначению. Рассмотрим следующий пример того, как это может быть использовано для маскировки системы атакующего под доверенный клиент какого-то сервера:
Многие хосты Unix принимают пакеты с маршрутизацией источника и будут передавать их по пути, указанному в пакете. Многие маршрутизаторы также принимают пакеты с маршрутизацией источника, в то время как некоторые маршрутизаторы могут быть сконфигурированы таким образом, что будут блокировать такие пакеты.
Еще более простым способом маскировки под клиента является ожидание того момента времени, когда клиентская система будет выключена, и последующая маскировка под нее. Во многих организациях сотрудники используют персональные ЭВМ с сетевой математикой TCP/IP для подключения к хостам с Unixом и используюют машины с Unix как серверы ЛВС. ПЭВМ часто используют NFS для получения доступа к директориям и файлам на сервере(NFS использует только IP-адреса для аутентификации клиентов). Атакующий может сконфигурировать по окончании работы свой ПЭВМ таким образом, что он будет иметь то же самое имя и IP-адрес, что и другая машина, а затем инициировать соединение с Unixовским хостом, как если бы он был доверенным клиентом. Это очень просто сделать и именно так поступают атакующие-сотрудники организации.
Электронную почту в Интернете особенно легко подделать, и ей вообще нельзя доверять, если в ней не применяются расширения, такие как электронная подпись письма[NIST94a]. Например, давайте рассмотрим взаимодействие между хостами Интернета при обмене почтой. Взаимодействие происходит с помощью простого протокола, использующего текстовые команды. Злоумышленник может легко ввести эти команды вручную, используя TELNET для установления сеанса с портом SMTP( простой протокол передачи почты). Принимающий хост доверяет тому, что заявляет о себе хост-отправитель, поэтому можно легко указать ложный источник письма, введя адрес электронной почты как адрес отправителя, котоырй будет отличаться от истинного адреса. В результате, любой пользователь, не имеющий никаких привилегий, может фальсифицировать электронное письмо.
В других сервисах, таких как DNS, также можно замаскироваться под другую машину, но сделать это несколько сложнее, чем для электронной почты. Для этих сервисов до сих пор существуют угрозы, и их надо учитывать тому, кто собирается пользоваться ими.
Хосты тяжело поддерживать в безопасном состоянии и это занимает много времени. Для упрощения управления хостами и большего использования преимуществ ЛВС, некоторые организации используют такие сервисы, как NIS(Network Information Service) и NFS(Network File system). Эти сервисы могут сильно уменьшить время на конфигурирование хостов, позволяя управлять рядом баз данных, таких как файлы паролей, с помощью удаленного доступа к ним и обеспечивая возможность совместного использования файлов и данных. К сожалению, эти сервисы небезопасны по своей природе и могут использоваться для получения доступа грамотными злоумышленниками. Если скомпрометирован центральный сервер, то другие системы, доверяющие центральной системе, также могут быть легко скомпрометированы.
Некоторые сервисы, такие как rlogin, позволяют хостам "доверять" друг другу для удобства работы пользователей и облегчения совместного использования систем и устройств. Если в систему было совершено проникновение или ее обманули с помощью маскарада, и этой системе другие системы, то для злоумышленника не составит труда получить доступ к другим системам. Например, пользователь, зарегистрированный на нескольких машинах, может избавиться от необходимости вводить пароль, сконфигурировав себя на этих машинах так, что они будут доверять подключению с основной системы пользователя. Когда пользователь использует rlogin для подключения к хосту, то машина, к которой подключаются, не будет спрашивать пароль, а подключение будет просто разрешено. Хотя это и не так уж плохо, так как пароль пользователя не передается и не сможет быть перехвачен, это имеет тот недостаток, что если злоумышленник проникнет на основную машину под именем пользователя, то злоумышленник легко сможет воспользоваться rlogin для проникновения в счета пользователя на других системах. По этой причине использование взаимного доверия хостов друг к другу не рекомендуется[Bel89][Ches94].
Системы управления доступом в хостах часто сложны в настройке и тяжело проверить, правильно ли они работают. В реузльтате неправильно сконфигурированные меры защиты могут привести к проникновению злоумышленников. Несколько крупных производителей Unix все еще продают свои системы с системой управления доступом, сконфигурированной так, что пользователям предоставлен маскимальный ( то есть наименее безопасный) доступ, который может привести к неавторизованному доступу, если не будет произведена переконфигурация.
Ряд инцидентов с
безопасностью произошел в
Интернете отчасти из-за того, что
злоумышленники обнаружили
уязвимые места( позднее их
обнаружили пользователи, группы
компьютерной безопасности и сами
производители) . Так как большая
часть современных вариантов Unix
позаимствовала свой сетевой код из
версии BSD, и так как исходный код
этой версии широко доступен,
злоумышленники смогли изучить его
на предмет ошибок и условий, при
которых их можно использовать для
получения доступа к системам.
Отчасти ошибки существуют из-за
сложности программ и невозможности
проверить их во всех средах, в
которых они должны работать. Иногда
ошибки легко обнаруживаются и
исправляются, но бывает и так, что
надо, как минимум, переписать все
приложение, что является последним
средством( программа sendmail тому
пример).
Безопасность на уровне хостов плохо шкалируется: по мере того, как возрастает число хостов в сети, возможности по обеспечению гарантий безопасности на высоком уровне для каждого хоста уменьшаются. Учитывая то, что админстрирование даже одной системы для поддержания безопасности в ней может оказаться сложным, управление большим чсислом таких систем может легко привести к ошибкам и упущениям. Важно также помнить, что зачастую важность работы системных администраторов не понимается и эта работа выполняется кое-как. В результате некоторые системы могут оказаться менее безопасными, чем другие, и именно эти системы станут слабым звеном, которое в конечном счете приведет к появлению уязвимого места в системе безопасности.
Если обнаруживается уязвимость в сетевом ПО, сети, которая не защищена брандмауэром, нужно срочно исправить ошибку на всех системах, где она обнаружена. Как уже говорилось в пункте 1.3.2, некоторые уязвимые места позволяют получить легкий доступ с правами суперпользователя Unix. Организация, имеющая много Unix-хостов, будет особенно уязвима к атакам злоумышленников в такой ситуации. Заделывание уязвимых мест на многих системах за короткий промежуток времени просто невозможно, и если исопльзуются различные версии ОС, может оказаться вообще невозможным. Такие сети будутт просто-таки напрашиваться на атаки злоумышленников.
Как уже отмечалось в предыдущих разделах, ряд служб TCP и UDP плохо обеспечивают безопасность в современной среде в Интернете. При миллионах пользователей, подключенных к Интернету, и при том, что правительства и промышленность зависят от Интернета, недостатки в этих службах, а также легкодоступность исходного кода и средств для автоматизации проникновения в системы могут сделать сети уязвиыми к проникновениям в них. Тем не менее, настоящий риск при использовании Интернета трудно оценить, и непросто сказать, насколько уязвима сеть к атакам злоумышленников. Такой статистики не ведется.
Координационный Центр по групп расследования происшествий с компьютерной безопасностью(CERT/CC) ведет некоторую статистику о числе инцидентов, которые они расследовали после его создания в 1988 году. Числа в этой статистике увеличиваются скачкообразно каждый год, но следует помнить, что и число машин в Интернете также растет. В некоторых случаях CERT считает несколько проникновений одного и того жн типа одним происшествием, поэтому одно происшествие может состоять из нескольких сотен проникновений в ряд систем. Трудно сказать, насколько пропорциональны число инцидентов и число проникновений. Эта проблема также осложняется тем, что чем больше людей знают о существовании групп по расследованию инцидентов, тем больше вероятность того, что они сообщат о происшествии, поэтому на самом деле непонятно, то ли происходит все больше происшествий, то ли сообщается о все большем их проценте.
NIST считает, что Интернет, хотя и является очень полезной и важной сетью, в то же самое время очень уязвим к атакам. Сети, которые соединены с Интернетом, подвергаются некоторому риску того, что их системы будут атакованы или подвергнуты некоторому воздействию со стороны злоумышленников, и что риск этого значителен. Следующие факторы могут повлиять на уровень риска:
Чем больше систем в сети, тем труднее контролировать их безопасность. Аналогично, если сеть соединена с Интернетом в нескольких местах, то она будет более уязвима чем сеть с одним шлюзом. В то же самое время, то, насколько готова к атаке организация, или то, насколько она зависит от Интернета, может увеличить или уменьшить риск. Сеть, имеющая привлекательный для злоумышленников профиль, может подвергнуться большему числу атак с целью получения информации, хранящейся в ней. Хотя, стоит сказать, что "молчаливые" мало посещаемые сети также привлекательны для злоумышленников, так как им легче будет скрыть свою активность.
NIST заявляет, что сети,
которые используют
рекомендованные процедуры и меры
защиты для повышения компьютерной
безопасности, будут подвергаться
значительно меньшему риску атак.
Брандмауэры в сочетании с
одноразовыми паролями, которые
устойчивы к их перехвату, могут
увеличить общий уровень
безопасности сети и сделать
использование Интернета
достаточно безопасным. Следующие
главы содержат более детальное
описание брандмауэров и того, как
они могут использованы для защиты
от многих угроз и уязвимых мест,
описанных в этой главе.
Можно найти решение ряд проблем с безопасностью в Интернете, описанных в главе 1, или, по крайней мере, сделать их менее опасными, если использовать существующие и хорошо известные технологии и меры защиты на уровне хостов. Брандмауэр может значительно повысить уровень безопасности сети организации и сохранить в то же время доступ ко всем ресурсам Интернете. Эта глава дает обзор брандмауэров, который включает в себя описание того, как они устраняют опасность уязвимых мест, описанных в главе 1, от чего не защищают брандмауэры и компоненты, составляющие брандмауэр. Эта глава особое внимание обращает на использование усиленной аутентификации и важность политики безопасности при определении того, как брандмауэр будет реализовывать схему защиты.
Рисунок 2.1 Пример брандмауэра с маршрутизатором и прикладным шлюзом
Наверное, лучше всего начать с описания того, что НЕ является брандмауэром: брандмауэр - это не просто маршрутизатор, хост или группа систем, которые обеспечивают безопасность в сети. Скорее, брандмауэр - это подход к безопасности; он помогает реализовать политику безопасности, которая определяет разрешенные службы и типы доступа к ним, и является реализацией этой политики в терминах сетевой конфигурации, нескольких хостов и маршрутизаторов, и других мер защиты, таких как усиленная аутентификация вместо статических паролей. Основная цель системы брандмауэра - управление доступом К или ИЗ защищаемой сети. Он реализует политику сетевого доступа, заставляя проходить все соединения с сетью через брандмауэр, где они могут быть проанализированы и разрешены либо отвергнуты.
Система брандмауэра может быть маршрутизатором, персональным компьютером, хостом, или группой хостов, созданной специально для защиты сети или подсети от неправильного использования протоколов и служб хостами, находящимися вне этой подсети. Обычно система брандмауэра создается на основе маршрутизаторов верхнего уровня, обычно на тех, которые соединяют сеть с Интернетом, хотя может быть создана и на других маршрутизаторах, для защиты только части хостов или подсетей.
Оснвоной причиной использования брандмауэров является тот факт, что без брандмауэра системы подсети подвергаются опасности использования уязвимых мест служб, таких NFS и NIS, или сканирования и атак со стороны хостов в Интернете. В среде без брандмауэра сетевая безопасность целиком зависит от безопасности хостов и все хосты должны в этом случае взаимодействовать для достижения одинаково высокого уровня безопасности. Чем больше подсеть, тем труднее поддерживать все хосты на одном уровне безопасности. Ошибки и упущения в безопасности стали распространенными, проникновения происходят не в результате хитроумных атак, а из-за простых ошибок в конфигурировании и угадываемых паролей.
Подход с использованием брандмауэра имеет многочисленные преимущества для сетей и помогает повысить безопасность хостов. Следующие разделы кратко описывают выгоды использования брандмауэра.
Брандмауэр может значительно повысить сетевую безопасность и уменьшить риски для хостов в подсети путем фильтрации небезопасных по своей природе служб. В результате подсеть будет подвергаться гораздо меньшему числу опасностей, так как только через брандмауэр смогут пройти только безопасные протоколы.
Например, брандмауэр может запретить, чтобы такие уязвимые службы, как NFS, не использовались за пределами этой подсети. Это позволяет защититься от использования этих служб посторонними атакующими, но продолжать использовать их внутри сети, не подвергаясь особой опасности. Поэтому можно будет спокойно использовать такие удобные службы, как NFS и NIS, специально разработанные для уменьшения затрат на администрирование в локальной сети.
Брандмауэры также могут обеспечить защиту от атак с использованием маршрутизации, таких как маршрутизация источника и попыток изменить маршруты передачи данных с помощью команд перенаправления ICMP. Брандмауэр может заблокировать все пакеты с маршрутизацией источника и перенаправленя ICMP, а затем информировать администраторов об инцидентах.
Брандмауэр также предоставляет возможности по управлению доступом к хостам сети. Например, некоторые хосты могут быть сделаны достижимыми из внешних сетей, в то время как доступ к другим системам извне будет запрещен. Сеть может запретить доступ к своим хостам извне, за исключением особых случаев, таких как почтовые сервера или информационные сервера.
Эти свойства брандмауэров требуются при политике управления доступом, построенной по принципу: не предоставлять доступ к хостам или службам, к которым доступ не требуется. Другими словами, зачем давать доступ к хостам и службам, которые могут использоваться атакующими, когда на самом деле он не нужен или не требуется? Если, например, пользователю не нужно, чтобы кто-то в сети мог получить доступ к его рабочей станции, то брандмауэр как раз и может реализовать этот вид политики.
Брандмауэр может на самом деле оказаться недорогим для организации из-за того, что большинство или все изменения в программах и дополнительные программы по безопасности будут установлены на системе брандмауэра, а не распределены по большому числу хостов. В частности, системы одноразовых паролей и другие дополнительные программы усиленной аутентификации могут быть установлены только на брандмауэре, а не на каждой системе, которой нужно обращаться к Интернету.
Другие подходы к сетевой безопасности, такие как Kerberos[NIST94c] требуют модификации программ на каждой системе в сети. Поэтому, хотя Kerberos и другие технологии также должны рассматриваться из-за их преимуществ и могут оказаться наиболее подходящими, чем брандмауэры в определенных ситуациях, все-таки брандмауэры проще в реализации, так как специальные программы требуются только на брандмауэре.
Конфиденциальность очень важна для некоторых организаций, так как то, что обычно считается безобидной информацией, может на самом деле содержать полезные подсказки для атакующего. Используя брандмауэр, некоторые сети могут заблокировать такие службы, как finger и доменную службу имен. finger дает информацию о пользователях, такую как время последнего сеанса, читалась ли почта, и другие данные. Но finger может дать атакующему информацию о том, как часто используется система, работают ли сейчас в этой системе пользователи, и может ли быть система атакована, не привлекая при этом внимания.
Брандмауэры также могут быть использованы для блокирования информации DNS о системах сети, поэтому имена и IP-адреса хостов в сети не станут известны хостам в Интернете. Некоторые организации уже убедились в том, что блокируя эту информацию, они скрывают ту информацию, которая была бы полезна для атакующего.
Если все доступ к Интернету и из Интернета осуществляется через брандмауэр, то брандмауэр может протоколировать доступ и предоставить статистику об использовании сети. При правильно настроенной системе сигналов о подозрительных событиях (alarm), брандмауэр может дать детальную информацию о том, были ли брандмауэр или сеть атакованы или зондированы.
Важно собирать статистику использования сети и доказательства зондирования по ряду причин. Прежде всего нужно знать наверняка, что брандмауэр устойчив к зондированию и атакам, и определить, адекватны ли меры защиты брандмауэра. Кроме того, статистика использования сети важна в качестве исходных данных при проведении исследований для формулирования требований к сетевому оборудованию и программам и анализе риска.
И наконец, самое важное - брандмауэр предоставляет средства реализации и претворения в жизнь политики сетевого доступа. Фактически, брандмауэр обеспечивает управление доступом для пользователей и служб. Поэтому, политика сетевого доступа может быть реализована с помощью брандмауэра, в то время как без него, такая политика зависит целиком от доброй воли пользователей. Организация может зависеть от своих пользователей, но не должна зависеть от доброй воли всех пользователей Интернета.
Помимо описанных выше преимуществ использования брандмауэров, имеет место ряд недостатков при их использовании и ряд проблем, от которых брандмауэры не могут защитить. Брандмауэр не является панацеей от всех проблем безопасности, связанных с Интернетом.
Самым очевидным недостатком брандмауэра является то, что он может блокировать ряд служб, которые используют пользователи, такие как TELNET, FTP, X Windows, NFS и др. Тем не менее, эти недостатки не присущи только брандмауэрам; сетевой доступ также может ограничиваться при защите на уровне хостов в соответствии с политикой безопасности. Хорошо продуманная политика безопасности, в которой найден баланс между требованиями безопасности и потребностями пользователей, может сильно помочь при решении проблем из-за ограничений в доступе к службам.
Некоторые сети могут иметь топологию, которая не позволяет применить брандмауэр, или использовать службы, такие как NFS, таким образом, что использование брандмауэра потребует серьезных ограничений при работе в сети. Например, в сети может требоваться использование NFS и NIS через основные маршрутизаторы. В такой ситуации стоимость установки брандмауэра нужно сравнить с ущербом, который понесет организация от атаки, использующей уязвимые места, защищаемые брандмауэром, то есть провести анализ риска, а затем принять решение на основании его результатов. Могут оказаться более уместными другие решения, такие как Керберос, но эти решения также имеют свои недостатки. [NIST94c] содержит дополнительную информацию о Керберос и других потенциальных решениях.
Во-вторых, брандмауэры не защищают от черных входов(люков) в сети. Например, если можно осуществить неограниченный доступ по модему в сеть, защищенную брандмауэром, атакующие могут эффективно обойти брандмауэр[ Iiaf91] . Сейчас скорости модемов достаточны для того, чтобы сделать возможным использование SLIP(Serial Line IP) и PPP(Point-to-Point Protocol); SLIP или PPP-соединение внутри защищенной сети по сути является еще одним соединением с сетью и потенциальным уязвимым местом. Зачем нужен брандмауэр, если разрешен неограниченный доступ по модему?
Брандмауэры обычно не обеспечивают защиты от внутренних угроз. Хотя брандмауэр может защищать от получения посторонними лицами критических данных, он не защищает от копирования своими сотрудниками данных на ленту или дискету и выноса ее за пределы сети. Поэтому, было бы ошибкой думать, что наличие брандмауэра защищает от атак изнутри или атак, для защиты от которых нужен не брандмауэр. Наверное, не стоит вкладывать значительные ресурсы в брандмауэр, если есть другие способы украсть данные.
С брандмауэром также связан ряд других проблем:
Несмотря на эти недостатки NIST рекомендует, чтобы организации защищали свои ресурсы с помощью брандмауэров и других средств безопасности.
Основными компонентами брандмауэра являются:
Следующие разделы описывают более детально каждую из этих компонент.
Имеется два вида политики сетевого доступа, которые влияют на проектирование, установку и использование системы брандмауэра. Политика верхнего уровня является проблемной концептуальной политикой, которая определяет, доступ к каким сервисам будет разрешен или явно запрещен из защищаемой сети, как эти сервисы будут использоваться, и при каких условиях будет делаться исключение и политика не будет соблюдаться. Политика нижнего уровня описывает, как брандмауэр должен на самом деле ограничивать доступ и фильтровать сервисы, которые указаны в политике верхнего уровня. Следующие разделы кратко описывают эти политики.
Политика доступа к сервисам должна фокусироваться на проблемах использования Интернета, описанных выше, и, судя по всему, на всем доступе к сети извне( то есть политика доступа по модемам, соединений SLIP и PPP). Эта политика должна быть уточнением общей политики организации в отношении защиты информационных ресурсов в организации. Чтобы брандмауэр успешно защищал их, политика доступа к сервисам должна быть реалистичной и согласовываться с заинтересованными лицами перед установкой брандмауэра. Реалистическая политика - это такая политика, в которой найден баланс между защитой сети от известных рисков, но в то же время обеспечен доступ пользователей к сетевым ресурсам. Если система брандмауэра запрещает или ограничивает использование некоторых сервисов, то в политике должна быть явно описана строгость, с которой это делается, чтобы предотвратить изменение параметров средств управления доступом сиюминутным образом. Только поддерживаемая руководством реалистическая политика может обеспечить это.
Брандмауэр может реализовывать ряд политик доступа к сервисам, но типичная политика может запрещать доступ к сети из Интернета, и разрешать только доступ к Интернету из сети. Другой типичной политикой может быть разрешение некоторого доступа из Интернета, но только к избранным системам, таким как информационные сервера и почтовые сервера. Брандмауэры часто реализуют политик доступа к сервисам, которые позволяют пользователям сети работать из Интернета с некоторыми избранными хостами, но этот доступ предоставляется, только если он сочетается с усиленной аутентификацией.
Она специфична для конкретного брандмауэра. Она определяет правила, используемые для реализации политики доступа к сервисам. Нельзя разрабатывать эту политику, не понимая такие вопросы, как возможности и ограничения брандмауэра, и угрозы и узявимые места, связанные с TCP/IP. Как правило, реализуется одна из двух базовых политик проекта:
Брандмауэр, который реализует первую политику, пропускает все сервисы в сеть по умолчанию, нсли только этот сервис не был явно указан в политике управления доступом как запрещенный. Брандмауэр, который реализует вторую политику, по умолчанию запрещает все сервисы, но пропускает те, которые указаны в списке разрешенных сервисов. Вторая политика следует классической модели доступа, используемой во всех областях информационной безопасности.
Первая политика менее желательна, так как она предоставляет больше способов обойти брандмауэр, например, пользователи могут получить доступ к новым сервисам, не запрещаемым политикой( или даже не указанных в политике), или запустить запрещенные сервисы на нестандартных портах TCP/UDP, которые не запрещены политикой. Определенные сервисы, такие как X Windows , FTP, ARCHIE и RPC, сложно фильтровать [Chap92],[Ches94], и для них лучше подходит брандмауэр, реализующий первую политику. Вторая политика строже и безопаснее, но ее тяжелее реализовать и она может повлиять на работу пользователей в том отношении, что ряд сервисов, такие, как описанные выше, могут оказаться блокированными или использование их будет ограничено.
Взаимосвязь между концептуальной политикой доступа к сервисам и соответствующей ей второй частью описана выше. Эта взаимосвязь существует из-за того, что реализация политики доступа к сервисам сильно зависит от возможностей и ограничений системы брандмауэра, а также уязвимых мест, имеющихся в разрешенных интернетовских сервисах. Например, может оказаться необходимым запретить сервисы, разрешенные политикой доступа к сервисам, если уязвимые места в них не могут эффективно контролироваться политикой нижнего уровня и, если безопасность сети важнее всего. С другой стороны, организация, которая сильно зависит от этих сервисов при решении своих задач, может принять это более высокий риск и разрешить доступ к этим сервисам. Эта взаимосвязь приводит к тому, что формулирование обоих политик становится итеративным процессом.
Политика доступа к сервисам - самый важный компонент из четырех, описанных выше. Остальные три компонента используются для реализации политики. ( И, как отмечалось выше, политика доступа к сервисам должна отражать общую политику безопасности организации). Эффективность системы брандмауэра при защите сети зависит от типа используемой реализации его, от правильности процедур работы с ним, и от политики доступа к сервисам.
Разделы 1.3, 1.3.1 и 1.3.2 описывали инциденты в Интернете, произошедшие отчасти из-за уязвимости традиционных паролей. Уже много лет пользователям рекомендуется выбирать такие пароли, которые было бы тяжело угадать и не сообщать их никому. Тем не менее, даже если пользователь следует этому совету( а многие и этого не делают), то тот факт, что злоумышленники могут наблюдать за каналами в Интернете и перехватывать передающиеся в них пароли, делает традиционные пароли устаревшими.
Разработан ряд мер усиленной аутентификации, таких как смарт-карты, биометрические механизмы, и программные механизмы, для защиты от уязвимости обычных паролей. Хотя они и отличаются друг от друга, все они одинаковы в том отношении, что пароли, генерируемые устройством усиленной аутентификации, не могут быть повторно использованы атакующим, который перехватывает траффик соединения. Так как проблема с паролями в Интернете является постоянной, брандмауэр для соединения с Интернетом, который не имеет средств усиленной аутентификации или не использует их, бессмысленен.
Ряд наиболее популярных устройств усиленной аутентификации,
используемых сегодня, называются системами с одноразовыми паролями.
Смарт-карта, например, генерирует ответ, который хост использует вместо
традиционного пароля. Так как смарт-карта работает совместно с программой
или оборудованием на хосте, генерируемые ответы уникальны для каждого установления
сеанса. Результатом является одноразовый пароль, который, если перехватывается,
не может быть использован злоумышленником для установления сеанса с хостом
под видом пользователя. [NIST94a] и [NIST91a] более детально описывают
устройства усиленной аутентификации и средства защиты на их основе.
Рисунок 2.2 Использование усиленной аутентификации в брандмауэре для предварительной аутентификации трафика TELNET, FTP
Так как брандмауэры могут централизовать управление доступом в сети, они являются логичным местом для установки программ или устройств усиленной аутентификации. Хотя меры усиленной аутентификации могут использоваться на каждом хосте, более практичным является их размещение на брандмауэре. Рисунок 2.2 показывает, что в сети без брандмауэра, использующего меры усиленной аутентификации, неаутентифицированный траффик таких приложений как TELNET или FTP, может напрямую проходить к системам в сети. Если хосты не используют мер усиленной аутентификации, злоумышленник может попытаться взломать пароли или перехватывать сетевой трафик с целью найти в нем сеансы, в ходе которых передаются пароли. Рисунок 2.2 также показывает сеть с брандмауэром, использующим усиленную аутентификацию, при которой сеансы TELNET или FTP, устанавливаемые со стороны Интернета с системами сети, должны проходить проверку с помощью усиленной аутентификации перед началом работы. Сами системы сети могут продолжать требовать статические пароли перед доступом к себе, но эти пароли нельзя будет использовать, даже если их перехватить, так как меры усиленной аутентификации и другие компоненты брандмауэра не позволят злоумышленнику проникнуть или обойти брандмауэр.
Части 2.4.4 и 3 содержат дополнительную информацию об
использовании мер усиленной аутентификации с брандмауэрами. Смотри [NIST94b]
для получения более подробной информации об использовании мер усиленной
аутентификации на хостах.
Фильтрация IP-пакетов обычно выполняется с помощью маршрутизатора с фильтрацией пакетов, осуществляющего ее, когда пакеты передаются между интерфейсами маршрутизатора. Фильтрующий маршрутизатор обычно может фильтровать IP-пакеты на основе группы полей из следующих полей пакета:
Не все фильтрующие маршрутизаторы сейчас фильтруют по TCP/UDP-порту отправителя, но многие производители начали включать такую возможность. Некоторые маршрутизаторы проверяют, с какого сетевого интерфейса маршрутизатора пришел пакет, и затем используют эту информацию как дополнительный критерий фильтрации. Некоторые версии Unix имеют возможность фильтрации пакетов, но далеко не все.
Фильтрация может быть использована различным образом для блокирования соединений от или к отдельным хостам или сетям, и для блокирования соединений к различным портам. Организации может понадобиться блокировать соединения от специфических адресов, таких как хосты или сети, которые считаются враждебными или ненадежными. Или же организация может захотеть блокировать соединения от всех адресов, внешних по отношению к организации( с небольшими исключениями, такими как SMTP для получения почты).
Добавление фильтрации по портам TCP и UDP к фильтрации по IP-адресам дает большую гибкость. Напомним главу 1, в которой говорилось, что сервера, такие как демон TELNET, связаны обычно с конкретными портами, такими как порт 23 для TELNET. Если брандмауэр может блокировать соединения TCP или UDP к или от определенных портов, то можно реализовать политику, при которой определенные виды соединений могут быть осуществлены только с конкретными хостами, но не с другими. Например, организация может захотеть блокировать все входящие соединения для всех хостов, кроме нескольких систем, входящих в состав брандмауэра. Для этих систем могут быть разрешены только определенные сервисы, такие как SMTP для одной системы, и TELNET или FTP для другой. При фильтрации по портам TCP и UDP эта политика может быть легко реализована маршрутизатором с фильтрацией пакетов или хостом с возможностью фильтрации пакетов.
Рисунок 2.3 Пример фильтрации пакетов для TELNET и SMTP
Для примера рассмотрим политику, в которой разрешаются только определенные соединения с сетью с адресом 123.4.*.* Соединения TELNET разрешаются только с одним хостом, 123.4.5.6, который может быть прикладным TELNET-шлюзом сети, а SMTP-соединения разрешаются только с двумя хостами, 123.4.5.7 и 123.4.5.8, которые могут быть двумя почтовыми шлюзами сети. NNTP(Network News Transfer Protocol) разрешается только от взаимодействующего с сетью сервера новостей, 129.6.48.254, и только с NNTP-сервером сети, 123.4.5.9, а протокол NTP(сетевого времени) разрешен для всех хостов. Все другие сервисы и пакеты блокируются. Пример набора правил приведен ниже:
Тип | Адрес отправителя | Адрес получателя | Порт источника | Порт получателя | Действие |
tcp |
* |
123.4.5.6 |
>1023 |
23 |
разрешить |
tcp |
* |
123.4.5.7 |
>1023 |
25 |
разрешить |
tcp |
* |
123.4.5.8 |
>1023 |
25 |
разрешить |
tcp |
129.6.48.254 |
123.4.5.9 |
>1023 |
119 |
разрешить |
udp |
* |
123.4.*.* |
>1023 |
123 |
разрешить |
* |
* |
* |
* |
* |
запретить |
Первое правило позволяет пропускать пакеты TCP из Интернета от любого источника, имеющие порт отправителя больше чем 1023, к адресу 123.4.5.6, если соединение устанавливается с портом 23. Порт 23 - это порт, связанный с сервером TELNETa, а все клиенты TELNETа должны использовать непривилегированные порты больше, чем 1024. Второе и третье правило работают аналогично, кроме того, что разрешаются адреса назначения 123.4.5.7 и 123.4.5.8 и порт 25 - SMTP. Четвертое правило пропускает пакеты к NNTP-серверу сети, но только от адреса 129.6.48.254 к адресу 123.4.5.9 с портом назначения 119( 129.6.48.254 - единственный NNTP-сервер, от которого сеть получает новости, поэтому доступ к сети в отношении NNTP ограничен только этой системой). Пятое правило разрешает траффик NTP, который использует UDP, а не TCP, от любого источника к любой системе в сети. Наконец, шестое правило блокирует все остальные пакеты - если этого правила не было бы, маршрутизатор мог блокировать, а мог и не блокировать другие тиы пакетов. Это очень простой пример фильтрации пакетов. Настоящие правила позволяют осуществить более сложную фильтрацию и являются более гибкими.
Решение о том, какие протоколы или группы портов фильтровать, зависит от политики сетевого доступа, то есть от того, какие системы должны иметь доступ к Интернету и какие типы доступа разрешены. Описанные ниже сервисы потенциально уязвимы к атакам и обычно блокируются на брандмауэре при входе в сеть или выходе из нее[Chap92],[Garf92].
Ряд других средств также обычно фильтруется или их использование разрешается только для тех систем, которым они на самом деле нужны. В это список входят:
Хотя некоторые из этих служб, такие как TELNET и FTP,
являются опасными по своей сути, полное блокирование доступа к другим может
оказаться неприемлемым для многих организаций. Тем не менее, не все системы
требуют доступа ко всем службам. Например, разрешение доступа по TELNET
и FTP из Интернета только к тем системам, которым нужен этот вид доступа,
может улучшить безопасность, не причиняя неудобства пользователям. Такие
службы, как NNTP, на первый взгляд не представляют особой опасности, но
разрешение этих служб только для тех систем, которым они нужны, поможет
создать более упорядоченную сетевую среду и уменьшит вероятность их использования
атакующими из-за наличия в них еще неизвестных уязвимых мест.
Маршрутизаторы с фильтрацией пакетов имеют ряд недостатков, описанных в [Chap92]. Правила фильтрации пакетов сложно формулируются и обычно нет средств для тестирования их корректности( кроме как ручное тестирование). У некоторых маршрутизаторов нет средств протоколирования, поэтому если правила фильтрации пакетов все-таки позволят опасным пакетам пройти маршрутизатора, такие пакеты не смогут быть выявлены до обнаружения проникновения.
Часто требуется сделать исключения из правил, чтобы разрешить определенные виды доступа, которые обычно блокируются. Но исключения из правил фильтрации иногда могут сделать правила фильтрации такими сложными, что они станут неконтролируемыми. Например, достаточно просто написать правило для блокирования всех входящих соединений к порту 23( серверу TELNETa). Если же делаются исключения, то есть если с некоторыми системами сети разрешается иметь прямые соединения по TELNET, то должно быть добавлено правило для каждой такой системы. Иногда добавление определенных правил может усложнить всю схему фильтрации. Как было уже сказано, тестирование сложного набора правил на их корректность может оказаться очень трудным.
Некоторые маршрутизаторы с фильтрацией пакетов не фильтруют по порту TCP/UDP отправителя, что может сделать набор правил фильтрации очень сложным и создать "дыры" в схеме фильтрации. [Chap92] описывает подобные проблемы с сетями, в которых были разрешены входящие и исходящие SMTP-соединения . Согласно пункту 1.2.5, TCP-соединения имеют порт отправителя и порт получателя. Если система инициирует SMTP-соединение с сервером, портом источника будет случайно выбранный порт с номером больше 1024, а портом получателя будет будет порт с номером 25, порт, который слушает сервер SMTP. Сервер будет возвращать пакеты с номером порта отправителя 25, и номером порта получателя, равным случайно выбранному клиентом номеру порта. Если в сети разрешены входящие и исходящие SMTP-соединения, то маршрутизатор должен разрешать соединения с портами отправителя и получателя, большими 1023, в обоих направлениях. Если маршрутизатор может фильтровать по порту отправителя, он может блокировать все пакеты, входящие в сеть организации, у которых порт получателя больше 1023, а порт отправителя не равен 25. Если он не может фильтровать пакеты по порту отправителя, маршрутизатор должен разрешить соединения, которые используют порты отправителя и получателя больше 1024. Пользователи иногда могут специально запустить сервера на портах, больших 1023, и обходить таким образом политику фильтрации( то есть обычно сервер telnet в системе слушает порт 23, но может быть сконфигурирован так, что будет слушать вместо этого порт 9876; и пользователи в Интернете смогут организовать telnet-сеанс с этим сервером даже, если маршрутизатор блокирует соединения с портом назначения 23).
Другой проблемой является то, что ряд служб RPC очень трудно заблокировать из-за того, что сервера для этих служб слушают порты, случайно выбираемые в процессе загрузки системы. Служба, известная под названием portmapper отображает первоначальные вызовы служб RPC в назначенные им номера служб, но ее эквивалента не существует для маршрутизатора с фильтрацией пакетов. Так как маршрутизатору нельзя сообщить, с каким портом работает служба, нельзя полностью заблокировать эти службы, разве что заблокировать полностью все пакеты UDP( RPC-службы в-основном используют UDP). Блокирование всех пакетов UDP приведет к блокированию ряда других полезных служб, таких как DNS. Поэтому блокирование RPC приводит к дилемме.
Маршрутизаторы с фильтрацией пакетов с более чем двумя интерфейсами иногда не имеют возможностей по фильтрации пакетов в зависимости от того, с какого интерфейса приняты пакеты, и куда должны быть направлены. Фильтрация входящих и исходящих пакетов упрощает правила фильтрации пакетов и позволяет маршрутизатору легко определить, какой IP-адрес настоящий, а какой - фальшивый. Маршрутизаторы без такой возможности затрудняют реализацию стратегий фильтрации.
Кроме того, маршрутизаторы с фильтрацией пакетов могут реализовывать обе концептуальные стратегии, описанные в пункте 2.4.1. Набор правил, который менее гибок, то есть не фильтрует по порту отправителя или по типу интерфейса( входящий или выходящий), уменьшает возможности маршрутизатора по претворению в жизнь второй и более сильной политики, при которой запрещаются все сервисы, кроме тех, что явно разрешены. Например, проблематичные службы, такие, как те, которые базируются на RPC, становится еще труднее фильтровать с менее гибким набором правил; отсутствие фильтрации по порту отправителя заставляет разрешать соединения с портами, большими 1023. При менее гибком наборе правил маршрутизатор имеет меньше возможностей по реализации сильной политики, и поэтому обычно используют первую политику - разрешать все средства, кроме тех, что явно запрещены.
Читателям рекомендуется прочитать [Chap92], в котором
дано более детально описание фильтрации пакетов и связанных с ней проблем.
Хотя фильтрация пакетов очень важна, нужно знать существующие проблемы
и пути их решения.
Чтобы защититься от ряд уязвимых мест, связанных с маршрутизаторами с фильтрацией пакетов, в брандмауэрах нужно использовать прикладные программы для перенаправления и фильтрации соединений с такими службами, как TELNET и FTP. Такое приложение называется прокси-службой, а хост, на котором работает прокси-служба - прикладным шлюзом. Прикладные шлюзы и маршрутизаторы с фильтрацией пакетов могут быть объединены для достижения более высокой безопасности и гибкости, чем была бы достигнута, если бы они использовались отдельно.
Например, рассмотрим сеть, в которой блокируются входящие соединения TELNET и FTP с помощью маршрутизатора с фильтрацией пакетов. Этот маршрутизатор позволяет пропускать пакеты TELNET или FTP только к одной машине, прикладному шлюзу TELNET/FTP. Пользователь, который хочет соединиться снаружи с системой в сети, должен сначала соединиться с прикладным шлюзом, а затем уж с нужным хостом :
Рисунок 2.4 Виртуальные соединения, реализуемые с помощью
прикладного шлюза и прокси-средств
Этот пример демонстрирует несколько преимуществ использования прокси-служб. Во-первых, прокси- службы разрешают только те службы, для которых есть прокси. Другими словами, если прикладной шлюз содержит прокси для FTP и TELNET, то в защищаемой подсети будут разрешены только FTP и TELNET, а другие службы будут полностью блокированы. Для некоторых организаций такой вид безопасности важен, так как гарантирует, что только те службы, которые считаются безопасными, будут пропускаться через брандмауэр. Этот подход также предохраняет от возможности разработки новых небезопасных служб без уведомления администраторов брандмауэра.
Другим преимуществом использования прокси-служб является то, что может быть осуществлена фильтрация протоколов. Например, некоторые брандмауэры, могут фильтровать ftp-соединения и запрещать использование команды FTP put, что было бы полезно для получения гарантий того, что пользователи не могут, например, писать на анонимный FTP-сервер.
Прикладные шлюзы имеют ряд серьезных преимуществ по сравнению с обычным режимом, при котором прикладной траффик пропускается напрямую к внутренним хостам. Они включают в себя:
Недостаток прикладного шлюза заключается в том, что при использовании клиент-серверных протоколов, таких как TELNET, требуется двухшаговая процедура для вхождения внутрь или выхода наружу. Некоторые прикладные шлюзы требуют модифицированных клиентов, что может рассматриваться либо как недостаток, либо как преимущество, в зависимости от того, делают ли модифицированные клиенты более легким использованием брандмауэра. Прикладной шлюз TELNET необязательно требует модифицированного клиента TELNET, тем не менее он требует другой логики действий от пользователя: пользователь должен установить соединение(но не сеанс) с брандмауэром, а не напрямую установить сеанс с хостом. Но модифицированный клиент TELNET делает брандмауэр прозрачным, позволяя пользователю указать конечную систему( а не брандмауэр) в команде TELNET. Брандмауэр является как бы дорогой к конечной системе и поэтому перехватывает соединение, а затем выполняет дополнительные шаги, такие как запрос одноразового пароля. Пользователю не нужно в этом случае ничего делать, но на каждой системе должен быть установлен модифицированный клиент.
Помимо TELNET, обычно прикладные шлюзы используются для FTP и электронной почты, а также X Windows и ряда других служб. Некоторые прикладные шлюзы FTP имеют возможности блокирования команд get и put для некоторых хостов. Например, внешний пользователь, установивший FTP-сеанс(через прикладной шлюз FTP) с внутренней системой, такой, как анонимный FTP-сервер, может попытаться скопировать файлы на сервер. Прикладной шлюз может фильтровать FTP-протокол и блокировать все команды put для анонимного FTP-сервера; это позволит гарантировать, что никто не сможет загрузить на сервер чего-либо, и даст большие гарантии, чем простая уверенность в том, что права доступа к файлам на анонимном FTP-сервере установлены корректно( некоторые организации ввели политики, в которых запрещаются команды get и put для определенных директорий; наличие брандмауэра, фильтрующего FTP-команды, было бы особенно полезно в этой ситуации. Некоторые места запретили команды get для внешних хостов, чтобы пользователи не могли считать информацию или программы с внешних хостов. В других же сетях запрещена команда put для внешних хостов, чтобы пользователи не могли сохранить локальную информацию на внешних FTP-серверах. Но типовым является вариант. Когда запрещаются входящие команды put, чтобы внешние пользователи не могли писать на FTP-сервера в сети)
Прикладной шлюз для электронной почты служит для централизованного
сбора электронной почты и распространения ее по внутренним хостам и пользователям.
Для внешних пользователей все внутренние пользователи будут иметь адрес
вида пользователь@почтовый_хост,
где почтовый хост - имя шлюза для почты. Шлюз должен принимать почту
от внешних пользователей, а затем переправлять ее на другие внутренние
системы. Пользователи, посылающие электронные письма с внутренних систем,
могут посылать их напрямую с внутренних систем, или, если внутренние имена
систем не известны снаружи сети, письмо должно быть послано на прикладной
шлюз, который затем переправит его к хосту назначения. Некоторые почтовые
шлюзы используют более безопасную версию программы sendmail
для приема почты.
[Ches94] описывает
другую компоненту брандмауэра, которую другие авторы иногда включают в
категорию прикладных шлюзов. Шлюз транспортного уровня пропускает через
себя TCP-соединения, но не делает никакой
фильтрации протокола. Например, описанный выше пример прикладного шлюза
TELNET может служить примером шлюза
транспортного уровня, так как после установления соединения между источником
и назначением брандмауэр просто передает поток данных между этими двумя
системами. Другим примером шлюза транспортного уровня может быть шлюз для
NNTP, в котором NNTP-сервер
соединяется с брандмауэром, а затем - с внутренней системой через брандмауэр.
Здесь брандмауэр просто передает поток данных.
Last-modified: Mon, 07 Dec 1998 13:21:02 GMT