Олифер В.Г., Олифер Н.А. - Компьютерные сети. Принципы, технологии, протоколы (4-ое изд.) - 2010 - обработка (953099), страница 223
Текст из файла (страница 223)
Сетевая безопасность портов отправителя. Таким способом прокси-сервер лишает злоумышленника возможности сканировать внутреннюю сеть для получения информации об адресах узлов и структуре сети. Единственный адрес в таком случае, который может узнать злоумышленник, — это адрес компьютера, на котором выполняется программа прокси-сервера. Поэтому многие атаки, построенные на знании злоумышленником адресов узлов внутренней сети, становятся нереализуемыми. Прокси-сервер, выступая посредником между клиентом и сервером, взаимодействующими между собой по совершенно определенному протоколу, не может не учитывать специфику этого протокола. Так, для каждого из протоколов НТТР НТТРБ, БМТРггРОР, РТР Се1пеС существует особый црокси-сервер, ориентированный на использование соответствующими приложениями: веб-браузером, электронной почтой, РТР-клиентом, клиентом се1пес.
Каждый из этих посредников принимает и обрабатывает пакеты только того типа приложений, для обслуживания которого он был создан. ПРИМЕЧАНИЕ Обычно несколько разных прокоп-серверов объединяют в один программный продукт. Посмотрим, как учитывает специфику протокола прокси-сервер, ориентированный на веб-службу. Этот тип прокси-сервера может, например, выполнить собственными силами запрос веб-клиента, не отсылая его к соответствующему веб-серверу. Работая транзитным узлом прн передаче сообщений между браузерами и веб-серверами Интернета, проксисервер не только передает клиентам запрашиваемые веб-страницы, но и сохраняет их в своей кэш-памяти на диске.
В соответствии с алгоритмом кэширования, на диске проксисервера оседают наиболее часто используемые веб-страницы. При получении запросов к веб-серверам прокси-сервер, прежде всего, проверяет, есть ли запрошенная страница в его каше. Если есть, то она немедленно передается клиенту, а если нет, то прокси-сервер обычным образом делает запрос от имени своего доверителя. Прокси-сервер веб-службы может осуществлять административный контроль проходящего через него контента, в частности ограничивать доступ клиента к сайтам, имеющим 1Р-адреса или ПХБ-имена из «черных списков». Более того, он может фильтровать сообщения на основе ключевых слов.
Прокси-серверы прикладного уровня и уровня соединений Прокси-серверы могут выполнять свою посредническую миссию на разных уровнях. ПРИМЕР-АНАЛОГИЯ Рассмотрим пример, иллкктрируюший идею посредничества разного уровня. Для покупки акций инвестор (в нашем случае аналог клиентской части приложения) может прибегнуть к посредническим услугам брокера или срейдера. Брокер, точно следуя указаниям инвестора, покупает для него определенное количество акций определенного типа по определенной цене. Трейдер — зто посредник более высокого уровня, котррому инвестор поручает самостоятельно принимать решения о необходимых покупках, учитывая различные факторы, например состояние рынка.
Различают прокси-серверы прикладного уровня и уровня соединений. Прокоп-сервер прикладного уровня, как это следует из его названия, умеет «вклиниваться» в процедуру взаимодействия клиента и сервера по одному из прикладных протоколов, 886 Проком-серверы например тому же НТТР НТТРЗ, ВМТР/РОР РТР или Се!пей Чтобы выступать в роли посредника на прикладном уровне, прокси-сервер должен «понимать» смысл команд, «знать» форматы и последовательность сообщений, которыми обмениваются клиент и сервер соответствующей службы.
Это дает возможность прокоп-серверу проводить анализ содержимого сообщений, делать заключения о подозрительном характере того или иного сеанса. Проком-сервер уровня соединений выполняет свою посредническую миссию на транспортном уровне, контролируя ТСР-соединение. Очевидно, что работая на более низком уровне, прокси-сервер обладает гораздо меньшим «интеллектом» и имеет меньше возможностей для выявления и предупреждения атак. Однако он обладает одним очень важным преимуществом перед прокси-сервером прикладного уровня — универсальностью, то есть он может быть использован любыми приложениями, работающими по протоколу ТСР (а в некоторых случаях и () 1)Р).
Примером прокси-сервера данного типа является рйзработанный достаточно давно, но все еше широко применяемый сервер БОСКАР (от ЗОСКег5). В простейшей версии протокола БОСКАР Н4' клиент обменивается с прокоп-сервером ЯОСКЯ двумя сообщениями: запросом клиента 5ОСКЯ-серверу и ответом ВОСКЗ-сервера клиенту. 0 Запрос клиента БОСКАР-серверу: О поле 1 — номер версии ВОСКЕ, 1 байт (для этой версии — 4); Э поле 2 — код команды, 1 байт (для установки соединения ТСР/1 Р код равен 1); О поле 3 — номер порта, 2 байта (ТСР-порт запрашиваемого пользователем ресурсного сервера, например,для 21 для РТР); О поле 4 — 1Р-адрес, 4 байта (1Р-адрес ресурсного сервера); О поле 5 — идентификатор пользователя (строка переменной длины, завершаемая байтом ппй).
ВОСКЕ-сервер анализирует все полученные данные и на основании сконфигурированных для него правил определяет, предоставить или неТ данному пользователю доступ к данному серверу. Результат БОСКАР-сервер сообшает клиенту в виде ответа. 0 Ответ ВОСКЕ-сервера клиенту: О поле1 — байтпц!1; О поле 2 — код ответа, 1 байт (применяются коды для следующих вариантов ответа: запрос разрешен, запрос отклонен или ошибочен, запрос не удался из-за проблем с идентификацией пользователя); О несколько байтов, игнорируемых клиентом. Если прокси-сервер сообщил в ответе, что запрос разрешен, то БОСКЕ-сервер начинает работать промежуточным звеном между клиентом и сервером (например, ГТР), контролируя поток квитанции, которыми они обмениваются.
' Более поздняя версия протокола БОСКБ Н5 расширяет возможности версии ЯОСКБ Н4, добавляя поддержку БОР, доменных имен, адресов 1Ртб и процедур аутентификации пользователей. 886 Глава 24. Сетевая безопасность «Проксификация» приложений Заметим, что не калщое приложение, построенное в архитектуре клиент-сервер, непременно должно работать через прокси-сервер, а также не каждое из них имеея) ввзможностль работать через прокси-сервер. Список приложений (точнее нх клиентских частей), которые должны передавать свои запросы во внешнюю сеть исключительно через прокоп-сервер, определяется администратором. А чтобы эти приложения имели возможности для такого режима выполнения, их программы должны быть соответствующим образом написаны.
Точнее приложения должны быть оснащены средствами, которые распознавали бы запросы к внешним серверам и перед отправкой преобразовывали этн запросы так, чтобы все они попадали на соответствующий прокси-сервер, а не передавались в соответствии со стандартным протоколом прямо на сервер-адресат. Эти средства должны также поддерживать протокол обмена сообщениями приложения-клиента с прокоп-сервером. В последние годы в большинстве приложений, ориентированных на работу через Интернет, предусмотрена встроенная поддержка прокси-сереера. Такой поддержкой, например, оснащены все веббраузеры и все клиенты электронной почты, которыми мы сейчас пользуемся.
«Проксификация» приложения, изначально не рассчитанного на работу через проки- сервер, требует изменения исходного кода с последующей перекомпиляцией — очевидно, что такая работа не представляет сложностей для разработчиков данного приложения, но не всегда под силу обслуживающему персоналу сети. Задача последних заключается в приобретении готовых приложений, совместимых с используемым в сети прокси-сервером. Однако даже приобретение готового «проксифицированного» клиента не делает его готовым к работе — необходимо еще конфигурирование, в частности нужно сообщить клиенту адрес узла сети, на котором установлен соответствующий прокси-сервер.
Как можно было бы предположить, процедура «проксификации» значительно упрощается для прокси-сервера уровня соединений, в частности БОСКБ-сервера. Для «проксификацин» приложения в этом случае достаточно внести простейшие исправления в исходный текст, а затем выполнить его перекомпиляцию и связывание с библиотекой процедур ВОСКОМ. Исправления сводятся к замене всех стандартных вызовов сетевых функций версиями этих функций из библиотеки БОСКАР, в частности стандартный вызов 1 ! з Ге и ( ) заменяется вызовом г1! зтеп( ), вызов Ы пб( ) — вызовом гЫ пб( ), вызов ассерс( ) — вызовом гассерт(). Имеется еще один подход к «проксификации» вЂ” встраивание поддержки прокси-сервера в операционную систему. В этом случае приложения могут оставаться в полном «неведении» о существовании в сети прокоп-сервера, за них все необходимые действия выполнит ОС.
Помимо основных функций, многие прокоп-серверы способны обнаруживать вирусы еще до того, как они попали во внутреннюю сеть. К другим полезным (для администрации и службы безопасности) вспомогательным функциям прокоп-сервера относится сбор статистических данных о доступе пользователей в Интернет: когда и какие сайты посещал тот или иной пользователь, сколько времени продолжалось каждое посещение. 887 Протоколы защищенного канала.
)Рзес Системы обнаружения вторжений Система обнаружения вторжений ()птгцз)оп Ре)есбоп Зуавы, ЮЗ) — зто программное или аппаратное средство, предназначенное для предупреждения, выявления н протоколирования некоторых типов сетевых атак. В отличие от сетевых экранов и прокси-серверов, которые строят защиту сети исключительно на основе анализа сетевого трафика, системы обнаружения вторжений учитывают в своей работе различные подозрительные события, происходящие в системе. Существуют ситуации, когда сетевой экран оказывается проницаемым для злоумышленника, например, когда атака идет через туннель тгРХ из взломанной сети нли инициатором атаки является пользователь внутренней сети и т. п.
И дело здесь не в плохой конфигурации межсетевого экрана, а в самом принципе его работы. Экран, несмотря на то что обладает памятью и анализирует последовательность событий, конфигурируется на блокирование трафика с заранее предсказуемыми признаками, например по 1Р-адресам или протоколам. Так что факт взлома внешней сети, с которой у него был установлен защищенный канал и которая до сих пор вела себя вполне корректно, в правилах экрана отразить нельзя.