Шлюзы приложений и контурного уровня

 

 

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

Шлюз приложения контролирует доступ по информации пакета на всех семи уровнях модели OSI. Поэтому их часто называют шлюзами с поддержкой разграни­чения приложений.

Шлюзы приложений обеспечивают более высокий уровень безопасности, не­жели пакетные фильтры, но за счет потери прозрачности для контролируемых служб. Они часто выступают в роли посредников для таких приложений, как программы электронной почты, FTP, Telnet, HTTP и т.д. Шлюз приложения играет роль серве­ра для клиента и клиента для реального сервера, в действительности обрабатывая запросы вместо пользователей, которых он защищает.

Возможность разграничения приложений позволяет межсетевому экрану выпол­нять дополнительную проверку соединений, которую не может осуществлять базо­вый фильтр пакетов. Шлюз приложения может проверять тот факт, что данные при­ложения находятся в приемлемом формате. Он может осуществлять дополнительные функции по аутентификации и записи информации в журнал, а также выполнять преобразование данных, если обладает такой возможностью. Например, шлюз при­ложения можно настроить на ограничение FTP-соединений, разрешив только ко­манды get и запретив команды put. Это полезно, если требуется разрешить пользова­телям загружать файлы, одновременно запретив отгружать файлы на FTP-сервер. Шлюз приложения также можно настроить на возможность удаления нежелательно­го содержимого, например, сценариев ActiveX или Java, с веб-страниц.[45]

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

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

· Более низкая производительность. Каждый запрос в действительности подразу­мевает два отдельных соединения. Одно устанавливается между пользователем и шлюзом, а другое — между шлюзом и действительным узлом назначения.

· Недостаток прозрачности. Большая часть прокси-серверов требует изменения действий клиентов и пользователей. Нередки случаи, когда клиентское ПО не может работать через прокси-серверы.

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

· Ограничения на разграничение приложений. Шлюз должен обладать возможнос­тью разграничения безопасных и небезопасных функций приложения. Если прокси-сервер не может, выполнять такое разграничение или не может выяв­лять нежелательные пакеты без негативного влияния на нужные операции, сте­пень его полезности снижается.

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

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

Есть и другие недостатки, связанные с зашитой сети.

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

· Шлюзы контурного уровня не могут осуществлять проверку на прикладном уров­не, поэтому приложения могут использовать TCP-порты, которые были открыты для других легитимных приложений. Некоторые приложения для связи компью­теров или передачи мгновенных сообщений можно настроить на работу на слу­чайных портах, таких как TCP 80. В результате возникает опасность нецелевого применения и использования потенциальных уязвимостей.[46]