Реферат: Введение в брандмауэры
Какие протоколы фильтровать
Решение о том, какие протоколы или группы портов фильтровать, зависит от политики сетевого доступа, то есть от того, какие системы должны иметь доступ к Интернету и какие типы доступа разрешены. Описанные ниже сервисы потенциально уязвимы к атакам и обычно блокируются на брандмауэре при входе в сеть или выходе из нее[Chap92],[Garf92].
- Tftp, порт 69, упрощенный FTP, используемый для загрузки ОС на бездисковых рабочих станциях, терминальных серверах и маршрутизаторах, может также быть использован для чтения любого файла в системе при его неправильной установке.
- X Windows, Open Windows , порты 6000+, порт 2000, может использоваться для перехвата изображения окон X-окон, а также вводимых символов.
- RPC , порт 111, службы вызова удаленных процедур, включая NIS и NFS, которые могут использоваться для кражи системной информации, включая пароли, а также чтения и записи файлов
- rlogin, rsh, rexec, порты 513, 514, 512, службы, которые могут при их неправильной конфигурации привести к неавторизованному доступу в систему
Ряд других средств также обычно фильтруется или их использование разрешается только для тех систем, которым они на самом деле нужны. В это список входят:
- TELNET, порт 23, часто разрешается только для отдельных систем
- FTP, порты 20 и 21, аналогично TELNET его использование разрешено только для отдельных систем
- SMTP, порт 25, часто разрешается только для центрального почтового сервера
- RIP, порт 520, протокол передачи информации о маршрутизации пакетов, может быть фальсифицирован для перенаправления пакетов
- DNS, порт 53
- UUCP, порт 540, UNIX-to-UNIX CoPy, при неправильной конфигурации может быть использован для получения неавторизованного доступа
- NNTP, порт 119, протокол передачи сетевых новостей, для доступа и чтения сетевых новостей
- Gopher, http, порты 70 и 80,
Хотя некоторые из этих служб, такие как 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], в котором дано более детально описание фильтрации пакетов и связанных с ней проблем. Хотя фильтрация пакетов очень важна, нужно знать существующие проблемы и пути их решения.
2.4.4 Прикладные шлюзы
Чтобы защититься от ряд уязвимых мест, связанных с маршрутизаторами с фильтрацией пакетов, в брандмауэрах нужно использовать прикладные программы для перенаправления и фильтрации соединений с такими службами, как TELNET и FTP. Такое приложение называется прокси-службой, а хост, на котором работает прокси-служба - прикладным шлюзом. Прикладные шлюзы и маршрутизаторы с фильтрацией пакетов могут быть объединены для достижения более высокой безопасности и гибкости, чем была бы достигнута, если бы они использовались отдельно.
Например, рассмотрим сеть, в которой блокируются входящие соединения TELNET и FTP с помощью маршрутизатора с фильтрацией пакетов. Этот маршрутизатор позволяет пропускать пакеты TELNET или FTP только к одной машине, прикладному шлюзу TELNET/FTP. Пользователь, который хочет соединиться снаружи с системой в сети, должен сначала соединиться с прикладным шлюзом, а затем уж с нужным хостом :
- сначала пользователь устанавливает telnet-соединение с прикладным шлюзом и вводит имя внутреннего хоста
- шлюз проверяет IP-адрес пользователя и разрешает или запрещает соединение в соответствии с тем или иным критерием доступа
- может понадобиться аутентификация пользователя(возможно с помощью одноразовых паролей)
- прокси-сервер создает telnet-соединение между шлюзом и внутренним хостом
- прокси-сервер передает данные между этими двумя соединениями
- прикладной шлюз протоколирует соединение
Рисунок 2.4 Виртуальные соединения, реализуемые с помощью прикладного шлюза и прокси-средств
Этот пример демонстрирует несколько преимуществ использования прокси-служб. Во-первых, прокси- службы разрешают только те службы, для которых есть прокси. Другими словами, если прикладной шлюз содержит прокси для FTP и TELNET, то в защищаемой подсети будут разрешены только FTP и TELNET, а другие службы будут полностью блокированы. Для некоторых организаций такой вид безопасности важен, так как гарантирует, что только те службы, которые считаются безопасными, будут пропускаться через брандмауэр. Этот подход также предохраняет от возможности разработки новых небезопасных служб без уведомления администраторов брандмауэра.
Другим преимуществом использования прокси-служб является то, что может быть осуществлена фильтрация протоколов. Например, некоторые брандмауэры, могут фильтровать ftp-соединения и запрещать использование команды FTP put, что было бы полезно для получения гарантий того, что пользователи не могут, например, писать на анонимный FTP-сервер.
Прикладные шлюзы имеют ряд серьезных преимуществ по сравнению с обычным режимом, при котором прикладной траффик пропускается напрямую к внутренним хостам. Они включают в себя:
- скрытие информации , при котором имена внутренних систем необязательно будут известны внешним системам с помощью DNS, так как прикладной шлюз может быть единственным хостом, чье имя должно быть известно внешним системам.
- надежная аутентификация и протоколирование , при котором прикладной траффик может быть предварительно аутентифицирован до того, как он достигнет внутренних хостов, и может быть запротоколирован более эффективно, чем стандартные средства протоколирования хоста.
- оптимальное соотношение между ценой и эффективностью из-за того, что дополнительные программы или оборудование для аутентификации или протоколирования нужно устанавливать только на прикладном шлюзе.
- простые правила фильтрации , так как правила на маршрутизаторе с фильтрацией пакетов будут менее сложными, чем они были бы, если бы маршрутизатор сам фильтровал прикладной траффик и отправлял его большому числу внутренних систем. Маршрутизатор должен только пропускать прикладной траффик к прикладному шлюзу и блокировать весь остальной траффик.
Недостаток прикладного шлюза заключается в том, что при использовании клиент-серверных протоколов, таких как 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-сервер соединяется с брандмауэром, а затем - с внутренней системой через брандмауэр. Здесь брандмауэр просто передает поток данных.
Список литературы
[Avol94] Frederick Avolio and Marcus Ranum. A Network Perimeter With Secure Internet Access. In Internet Society Symposium on Network and Distributed System Security, pages 109-119. Internet Society, February 2-4 1994.
[Bel89] Steven M. Bellovin. Security Problems in the TCP/IP Protocol Suite. Computer Communications Review, 9(2):32-48, April 1989.
[Cerf93] Vinton Cerf. A National Information Infrastructure. Connexions, June 1993.
[CERT94] Computer Emergency Response Team/Coordination Center. CA-94:01, Ongoing Network Monitoring Attacks. Available from FIRST.ORG, pub/alerts/cert9401.txt, February 1994.
[Chap92] D. Brent Chapman. Network (In)Security Through IP Packet Filtering. In USENIX Security Symposium III Proceedings, pages 63-76. USENIX Association, September 14-16 1992.
[Ches94] William R. Cheswick and Steven M. Bellovin. Firewalls and Internet Security. Addison-Wesley, Reading, MA, 1994.
[CIAC94a] Computer Incident Advisory Capability. Number e-07, unix sendmail vulnerabilities update. Available from FIRST.ORG, file pub/alerts/e-07.txt, January 1994.
[CIAC94b] Computer Incident Advisory Capability. Number e-09, network monitoring attacks. Available from FIRST.ORG, pub/alerts/e-09.txt, February 1994.
[CIAC94c] Computer Incident Advisory Capability. Number e-14, wuarchive ftpd trojan horse. Available from FIRST.ORG, pub/alerts/e-14.txt, February 1994.
[Com91a] Douglas E. Comer. Internetworking with TCP/IP: Principles, Protocols, and Architecture. Prentice-Hall, Englewood Cliffs, NJ, 1991.