Хотя Протокол Передачи файлов (FTP) один из наиболее используемых и давно существующих TCP-протоколов в Internet, защита трафика FTP сталкивается с рядом трудностей. После того, как клиент инициализирует в FTP сеансе передачу данных, сервер устанавливает новый (обратный) канал для клиента. Это соединение исходит от сервера (за границами FireWall) к динамически назначаемому номеру порта на клиентской машине. Номер порта не известен заранее и клиент часто открывает/ закрывает канал, назначая при этом близкие номера портов. Если просто открыть весь диапазон непривилегированных портов (> 1023) для входящих соединений, как это делают многие из систем FireWall, это подвергнет внутреннюю сеть опасности. За счет этого обходного пути было осуществлено много успешных взломов.
CheckPoint FireWallЦ1 контролирует сеанс FTP, исследуя данные прикладного уровня FTP. Когда клиент просит сервер установить обратное соединение, клиент генерирует при этом команду FTP PORT, CheckPoint FireWallЦ1 извлекает номер порта из запроса. Далее IP-адресат (клиент и сервер) и оба номера порта запоминаются в списке ждущего запроса для данных FTP. Когда сервер предпринимает попытку открыть соединение для передачи данных FTP, CheckPoint FireWallЦ1 проверяет список и устанавливает, что эта попытка ответ на разрешенный запрос. Список соединений поддерживается динамически так, чтобы только необходимые порты FTP были открыты и только в течение сеанса передачи данных FTP. Как только сеанс закрыт, порты блокируются, гарантируя надежную защиту.
Сеансы Real Audio и VDOLive обрабатываются аналогичным образом.
Протоколы типа UDP (User Datagram Protocol) и RPC (Remote Procedure Call) создают специальные проблемы для систем защиты, потому что они не имеют контекста (stateless). CheckPoint FireWallЦ1 защищает эти протоколы, создавая и динамически сохраняя контекстные состояния на основе информации в пакетах и операционной системе.
UDP приложения (типа WAIS, Archie и DNS) трудно фильтровать простыми методами, так как в UDP не имеется никакого различия между запросом и ответом. Раньше был выбор: либо полностью блокировать сеансы UDP, либо открывать большой блок диапазона UDP для двунаправленной связи и, таким образом, подвергать внутреннюю сеть опасности.
Рисунок 26. Проверка сеанса UDP.
CheckPoint FireWallЦ1 защищает UDP приложения, организуя виртуальное соединение поверх соединения UDP. CheckPoint FireWallЦ1 поддерживает информацию о состоянии каждого сеанса через шлюз. Каждый разрешенный пакет UDP запроса, пересекающий FireWall, записывается, а пакеты UDP, следующие в противоположном направлении проверяются на соответствие списку отложенных сеансов для гарантии того, что данный пакет находится в разрешенном контексте. Пакет, который является подлинным ответом на запрос, пропускается, остальные блокируются. Если в течение определенного времени ответ отсутствует, система считает сессию завершенной и блокирует ее. В этом случае все атаки блокированы, хотя UDP приложения могут использоваться во внешних соединениях.
Простой мониторинг номеров портов терпит неудачу для RPC, так как RPC приложения не используют определенные заранее номера портов. Распределение портов происходит динамически и часто меняется во времени.
CheckPoint FireWallЦ1 динамически отслеживает номера портов RPC, контролируя запросы к программам portmapper. CheckPoint FireWallЦ1 постоянно контролирует запросы к программам portmapper серверов, заполняет кэш-таблицы, которые содержат номера программ RCP и, связанные с ними, номера портов и адреса серверов.
Всякий раз, когда CheckPoint FireWallЦ1 проверяет правило, в котором описано RPC приложение, система запрашивает кэш состояний, сравнивая номера портов в пакете и кэш, проверяя, что номер программы, привязанный к порту, соответствует определенному в правиле.
Если номер порта в пакете не найден в кэше (что может происходить, когда приложение полагается на знание зарезервированных номеров портов и инициализирует связь без обращения к portmapper), CheckPoint FireWallЦ1 выдает собственный запрос к portmapper и сверяет номер программы, привязанной к порту.
Простое и эффективное исполнение Инспекционного Модуля достигается следующими методами:
В тестах на производительность в сети 10 МБ/сек снижение было абсолютно незаметным даже на простейшей машине SPARCstation Classic. CheckPoint FireWallЦ1 может работать даже со 100Mbps сетями на стандартных рабочих станциях.
При этом снижение производительности на шлюзе будет тоже незначительным. Результаты показывают, что не имеется почти никакого проигрыша в эффективности при работе со скоростями сегодняшнего Internet, начиная от 56Kb или 1.5Mb/sec (T1-канал) и до максимального быстродействия в 10Mb/sec на стандартных настольных рабочих станциях.
Это делает CheckPoint FireWallЦ1 идеальным решением и для внутренних сетей предприятий.
Независимое тестирование показало аналогичные результаты.
Таким образом CheckPoint FireWallЦ1 демонстрирует исключительную эффективность и предоставляет надежный режим работы для выходного трафика, например трафика в Internet при строгом контроле трафика и соединений. CheckPoint FireWallЦ1 обеспечивает полностью интегрированную защиту без заметного снижения производительности.