Материал: Проникновения в операционную среду компьютера. модели злоумышленного удаленного доступа. Радько Н.М., Язов Ю.К

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

2.4.1.2. Шлюзы сеансового уровня

Посредник (транспортного) уровня соединения (circuit-level proxy) — это подсистема МЭ, осуществляющая посреднические услуги по передаче данных на уровне соединения TCP двумя компьютерами в сети. Посредничество заключается в том, что связь между двумя компьютерами физически осуществляется через систему-посредника и реально состоит из двух TCP-соединений. Весь процесс связи состоит из следующих шагов:

— компьютер-инициатор начинает процесс установки TCP-соединения с посредником;

— посредник проверяет допустимость установления связи компьютером-инициатором;

— посредник протоколирует попытку установки связи и/или уведомляет о ней администратора безопасности;

— если связь недопустима, то посредник завершает процесс связи, иначе процесс продолжается;

— посредник устанавливает TCP-соединение с компьютером-адресатом;

— посредник завершает установление связи с компьютером-инициатором;

— посредник копирует (пересылает) данные из одного соединения в другое в обоих направлениях и, возможно, протоколирует пересылаемые данные;

— посредник завершает процесс связи по требованию одной из сторон или по собственной инициативе;

— посредник протоколирует причину завершения связи, а также записывает статистическую информацию о состоявшемся сеансе связи.

Следует отметить, что компьютер-инициатор не передает посреднику имя компьютера-адресата — его цифровой адрес и номер TCP-порта фиксированы для конкретного посредника и известны. Из этого замечания следует, что, во-первых, связь через посредника осуществляется от многих к одному, а, во-вторых, посредники уровня соединения используются только для организации безопасного соединения от внешних компьютеров (удаленных рабочих станций) к внутреннему компьютеру (серверу поддержки локальной сети или информационному серверу). Тем не менее, возможен случай, когда компьютеров-адресатов будет несколько — случай применения техники «зеркального отображения» сервера. При этом посредник, поддерживающий этот случай, перед установлением связи с адресатом должен выбрать конкретный компьютер из нескольких идентичных. Алгоритм выбора может быть одним из следующих (или их комбинацией):

— циклический выбор,

— случайный выбор,

— выбор наиболее доступного (с минимальным временем ответа на ping-запрос),

— выбор с минимальным временем ответа на запрос установления связи,

— выбор наименее загруженного (с минимальной текущей загрузкой процессора).

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

Проверка допустимости связи выполняется посредником непосредственно после запроса на соединение компьютером-инициатором и может основываться на данных из пакета-запроса на соединение, данных окружающей среды и статистических данных. В качестве данных пакета-запроса на соединение могут использоваться (в порядке убывания значимости):

— IP-адрес компьютера-инициатора,

— начальный номер (SYN) пакета TCP-соединения,

— дополнительные параметры TCP-соединения.

Возможными используемыми данными окружающей среды являются (в порядке убывания значимости):

— ответ DNS-сервера на запрос о символьном имени компьютера-инициатора,

— сетевой интерфейс контроля,

— текущее время запроса соединения,

— текущее количество соединений с компьютером-адресатом (от компьютера-инициатора, от сети компьютера-инициатора, общее число и т.п.) через посредника.

К статистическим данным (обновляемым после каждой попытки соединения) относятся:

— частота запроса соединений от данного компьютера-инициатора,

— отношение количества отвергнутых запросов к общему числу запросов,

— типичный объем и характер пересылаемых по TCP-соединению данных.

Наиболее важными из перечисленных выше являются IP-адрес компьютера-инициатора и ответ DNS-сервера, содержащий символьное имя (если таковое имеется) компьютера-инициатора, и текущее время запроса соединения. По цифровому адресу компьютера можно запретить доступ (или разрешить доступ только) для компьютеров из определенных сетей, а по символьному адресу — для компьютеров без имен или с именами, содержащими определенные символы или их последовательности, а также для компьютеров из определенных доменов. Текущее время используется для блокирования доступа к защищаемому сервису сети в нерабочее время или в периоды наиболее высокой сетевой активности внутренних пользователей.

Следует отметить, что и при передаче данных соединения возможен контроль некоторых параметров в целях улучшения защиты и качества соединения:

— длительность соединения,

— скорость передачи данных,

— текущие параметры окна TCP-соединения,

— большое количество ошибок передачи данных.

Контролирование этих параметров позволяет правильно распределить пропускную способность канала связи между несколькими соединениями, тем самым, ограничив максимально возможную загрузку линий связи трафиком злоумышленника, а также позволяет вовремя обнаружить деятельность злоумышленника и закрыть (т.е. завершить по инициативе посредника) данное соединение (с протоколированием причины и уведомлением об этом администратора).

К преимуществам посредников уровня соединения (по сравнению с другими методами фильтрации) следует отнести следующие:

— локальная сеть может быть сделана невидимой из глобальной сети;

— при нарушении работоспособности посредника пакеты обычно перестают проходить через него, тем самым не возникает угрозы для защищаемых им серверов;

— наличие (элементарной) аутентификации компьютера-инициатора соединения по его символьному имени;

— использование политики «запрещено все, что не разрешено»;

— способность гибкого регулирования (ограничения) пропускной способности;

— возможность эффективного противостояния атакам с неправильной фрагментацией пакетов соединения;

— возможность противостояния атакам с использованием протокола ICMP;

— возможность использования статистической информации о соединениях для определения неоднократных попыток соединения злоумышленником и автоматического блокирования его действий;

— возможность «прозрачного» использования для повышения надежности техники «зеркального отображения»;

— достаточно высокая пропускная способность (после установления связи).

Недостатками посредников этого типа являются:

— видимость (и уязвимость) посредника из внешней сети,

— отсутствие аутентификации пользователя,

— нет фильтрации пересылаемых данных (нет фильтрации на прикладном уровне),

— нет защиты целостности и конфиденциальности передаваемых данных,

— возможность подмены злоумышленником IP-адреса компьютера-инициатора,

— возможность подмены во время связи аутентифицированного компьютера-инициатора,

— трудность фильтрации при отсутствии у сервиса фиксированного номера порта,

— «непрозрачность» связи,

— невозможность использования протокола UDP,

— более высокая, чем у простых пакетных фильтров стоимость.

2.4.1.3. Шлюзы уровня приложений

Посредник прикладного уровня (application proxy) — это подсистема МЭ, осуществляющая посреднические услуги по передаче данных и команд прикладного уровня двумя компьютерами в сети. Посредничество заключается в том, что связь между двумя компьютерами физически осуществляется через систему-посредника и реально состоит из двух соединений прикладного уровня. Весь процесс связи состоит из следующих шагов:

— компьютер-инициатор устанавливает соединение прикладного уровня с посредником,

— посредник аутентифицирует компьютер-инициатор и пользователя,

— компьютер-инициатор пересылает посреднику имя компьютера-адресата,

— посредник проверяет допустимость данной связи,

— посредник протоколирует попытку установки связи и уведомляет о ней администратора безопасности,

— если связь недопустима, то посредник завершает процесс связи, иначе процесс продолжается,

— посредник устанавливает соединение прикладного уровня с компьютером-адресатом,

— посредник пересылает данные и команды из одного соединения в другое в обоих направлениях, фильтруя их (перекодируя данные, организуя кэширование и т.п.), и протоколирует попытки выполнения неразрешенных команд,

— посредник завершает процесс связи по требованию одной из сторон или по собственной инициативе,

— посредник протоколирует причину завершения связи, а также записывает статистическую информацию о состоявшемся сеансе связи.

Следует отметить, что в общих чертах принцип работы посредника прикладного уровня такой же как и у посредника уровня соединения, однако функционирование на более высоком уровне и возможность поддержки специальных безопасных протоколов (SSH, SSL, S/MIME, SOCKS и др.) позволяют организовывать более качественную защиту внутренней сети с использованием посредников данного типа. Далее будут рассмотрены наиболее характерные отличия посредников прикладного уровня от посредников уровня соединения.

Прежде всего, необходимо отметить, что в отличие от посредника уровня соединения, ориентированного на один-единственный протокол TCP, посредников прикладного уровня существует много — под каждый протокол прикладного (и сеансового) уровня. Каждый посредник допускает и защищает только тот протокол, который он поддерживает (тем самым реализуется политика «запрещено все, что не разрешено»). Наиболее популярные поддерживаемые посредниками протоколы можно разделить на следующие группы:

— гипертекстовые протоколы — HTTP, SHTTP, HTTPS, Gopher;

— протокол пересылки файлов — FTP;

— почтовые протоколы — SMTP, POP3, IMAP, NNTP;

— протоколы удаленного доступа — Telnet, rlogin, rsh, rexec, RPC, XWindow;

— протокол сетевой файловой системы — NFS, NetBEUI;

— протокол службы имен — DNS;

— «безопасные» протоколы сеансового уровня — SSH, SSL, S/MIME, SOCKS.

Так как посредник функционирует на прикладном уровне, то у него существуют большие возможности по фильтрации прикладных команд и данных. Например, для протокола FTP возможно запрещение команды «put» — команды записи файла на сервер. Возможна организация разграничения доступа к объектам сервера дополнительно к возможностям самого сервера по разграничению доступа.

Если посредник поддерживает «безопасный» протокол, то возможно поддержание конфиденциальности и целостности передаваемых через внешнюю сеть данных путем шифрования данных и вычисления криптографических контрольных сумм (т.е. туннелируя трафик прикладного уровня). В этом случае компьютер-инициатор тоже должен поддерживать тот же самый «безопасный» протокол (удаленная защищенная рабочая станция) либо необходим еще один посредник прикладного уровня, поддерживающий тот же самый «безопасный» протокол (виртуальная частная сеть — VPN).

Способ реализации схемы усиленной аутентификации компьютера-инициатора и пользователя зависит от используемого протокола, поддержка посредником (и компьютером-инициатором) «безопасного» протокола позволяют не только увеличить надежность аутентификации, но и унифицировать процесс аутентификации.

Следует также отметить, что компьютер-инициатор в начале сеанса связи передает посреднику имя компьютера-адресата и запрашиваемого сервиса (в общем случае — URL), т.е. связь с через посредника может осуществляется от многих ко многим. Способ передачи этого имени зависит от используемого протокола. Здесь же может передаваться и имя пользователя, с правами которого будет осуществляться доступ.

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

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

К преимуществам посредников прикладного уровня (по сравнению с другими методами фильтрации) следует отнести следующие:

— локальная сеть может быть сделана невидимой из глобальной сети;

— при нарушении работоспособности посредника пакеты обычно перестают проходить через него, тем самым не возникает угрозы для защищаемых им серверов;

— возможность усиленной аутентификации компьютера-инициатора и пользователя;

— использование политики «запрещено все, что не разрешено»;

— возможность использования посредника как для защиты внутренних серверов, так и для защиты внутренних рабочих станций;

— способность гибкого регулирования (ограничения) пропускной способности;

— возможность защиты от подмены во время связи аутентифицированного компьютера-инициатора;

— возможность использования статистической информации о соединениях для определения неоднократных попыток соединения злоумышленником и автоматического блокирования его действий;

— защита на уровне приложений позволяет осуществлять большое количество дополнительных проверок, снижая тем самым вероятность атаки с использованием «дыр» в конкретном программном обеспечении;

— возможна защита целостности и конфиденциальности передаваемых данных и команд;

— фильтрация пересылаемых команд и данных;

— возможность «прозрачного» использования техники «зеркального отображения»;

— большая гибкость в протоколировании передаваемых команд и данных;

— возможность кэширования данных.

Недостатками посредников этого типа являются:

— видимость (и уязвимость) посредника из внешней сети,

— необходимость в существовании нескольких посредников для разных сервисов,

— трудность фильтрации при отсутствии у сервиса фиксированного номера порта,

— низкая пропускная способность,

— «непрозрачность» связи,

— высокая стоимость (суммарная для всех необходимых посредников).

Источник: https://studfile.net/preview/16568027/