Брандмауэр-системы. Элементы. Часть 2
Продолжение. Начало в КГ №26
Шлюзы прикладного уровня
Шлюз прикладного уровня является своеобразными воротами в наружные сети (рис. 1). Во многих системах шлюз прикладного уровня — единственная компьютерная система, к которой возможен доступ извне, поэтому шлюз нуждается в особой защите. Система, на которой установлен шлюз прикладного уровня, называется бастионным узлом (bastion host). Шлюз, реализованный как "шлюз с двойным подключением", имеет два сетевых интерфейса. Один из них относится к внутренней сети, а второй к внешней (Интернет). Таким образом, в шлюзе такого типа осуществляется полный контроль над пакетами, передаваемыми между сетями. Работают шлюзы и в режиме "одинарного подключения", т.е. имеется только один сетевой интерфейс. Однако такой шлюз может обойти злоумышленник.
Работа шлюза
Если пользователь хочет отправить данные, то ему для этого необходимо пройти процедуры идентификации и аутентификации. Для прохождения аутентификации пользователь должен установить непосредственное соединение со шлюзом — в таком случае на начальном этапе пользователь работает со шлюзом. После завершения процедур шлюз становится прозрачным для пользователя, создавая впечатление своего отсутствия.
. Принципы:
Шлюз получает пакеты посредством сетевых драйверов TCP/IP и соответствующих портов. В том случае, если порт предназначен конкретно только для одной службы, на системе должна быть установлена специальная программа — она позволяет производить через шлюз передачу пакетов, принадлежащих одной службе. Такая программа называется прокси-агентом. Так же на прокси-агент можно возложить некоторые функции по безопасности службы, за которую он отвечает.
. Концепция безопасности:
Для каждой службы, работающей на шлюзе, необходим свой прокси-агент. Но установка других программ нежелательна за исключением необходимых, конечно. Это предотвратит возможность установки вредоносной программы, которая может принять на себя обязательства шлюза, какой-нибудь неактивированной службы и открыть через нее доступ злоумышленнику. Для предотвращения возможности обхода прокси-агента на шлюзе он (шлюз) не должен выполнять функции маршрутизатора. Шлюз имеет два IP-адреса: один во внешней сети (например, Интернет), а второй — во внутренней локальной сети. Таким образом, для работы с компьютерами из внешней сети используется один IP, а для работы с компьютерами из внутренней — второй.
Прокси-агенты
Прокси-агенты бывают двух уровней: прикладного и канального. Прокси-агенты прикладного уровня используются для работы с конкретной службой/приложением. Они используют команды определенного протокола, могут анализировать информацию этого протокола и управлять ей. Работают они обычно со стандартными клиентскими программами для FTP, Telnet и т.д. Ниже мы рассмотрим несколько примеров прокси-агентов прикладного уровня.
. SMTP-прокси:
При работе SMTP-прокси непосредственной связи с получателем почты нет. Принцип работы агента следующий: поступающая почта сохраняется в специальном каталоге на шлюзе после проверки агентом заголовка пакета. Потом в ход идет MTA-агент (рис. 2), который посредством другого MTA или непосредственно отсылает почту пользователю. Это предотвращает возможность прямого доступа к MTA-агенту через SMTP-агент. Сам по себе SMTP- агент обрабатывает команды, которые не представляют угрозы. Например, HELO, MAIL, RCPT, RSET, DATA и т.д. Данный принцип позволил снизить угрозу атак на весьма уязвимую утилиту sendmail, которая является MTA-агентом на большинстве почтовых серверов.
. Telnet-прокси:
Этот агент отвечает за обмен данными с помощью Telnet-клиентов. Он имеет специальные функции обеспечения безопасности. Система-отправитель устанавливает соединение с портом 23 шлюза. После прохождения пользователем аутентификации активируется профайл пользователя, который содержит следующую информацию: IP отправителя, имя пользователя, IP получателя. После этого шлюз устанавливает подключение с портом 23 системы получателя и становится прозрачным.
. FTP-прокси:
FTP-прокси обеспечивает управляемый обмен файлами через протокол FTP (рис. 3). Для установления соединения система-клиент контактирует с поротом 21 на шлюзе, после прохождения аутентификации и идентификации пользователя активируется его профайл, который содержит информацию о компьютерной системе отправителя (IP, MAC и т.д.), имени пользователя, информацию о компьютерной системе получателя. После этого шлюз устанавливает соединение с системой-получателем и становится прозрачным для обмена. Однако прокси-агенту можно задать дополнительные параметры — допустим, ограничения по именам передаваемых файлов. Также имеется фильтр команд, который позволяет пользователю осуществлять команды, только разрешенные его правами, изложенными в профайле.
. HTTP-прокси:
Этот агент работает по той же технологии, что и предыдущий. Только для установки подключения используется порт номер 80. Так как протокол HTTP не работает в сеансовом режиме, а разрывает связь сразу же после окончания передачи запрашиваемых данных, необходима повторная аутентификация каждый раз при новом запросе. Так же, как и в FTP-прокси, тут имеется командный фильтр, который следит за тем, чтобы пользователь использовал только команды, разрешенные его правами. Для обеспечения безопасности имеется возможность отключения активных элементов (JavaScript, ActiveX и т.д.), а также имеется фильтр ПО, представляющего опасность для компьютера. Последний не может гарантировать полную защиту, однако некоторый процент вредоносного ПО им отсеивается.
. Java-прокси:
Этот агент позволяет без опаски использовать Java-элементы. Всем известно, что они крайне небезопасны. На это влияет множество факторов — одним из них является и давний конфликт Microsoft с Sun (разработчик языка Java). В итоге Microsoft отказалась покупать лицензию на среду разработки у Sun и разработала свою. Это привело к несовместимости и необходимости поддержки двух средств, как следствие — повышенная уязвимость.
. Прокси-агенты аутентификации:
Шлюз может также служить инструментом аутентификации пользователей (рис. 4), если на нем установлены специальные прокси-агенты, занимающиеся аутентификацией. В таком случае аутентификация является разовой, и ее повторение не требуется для новых сеансов. Недостатком подобной системы является то, что соединение между шлюзом и пользователем не является уникальным. И когда пользователь работает с какой-то службой, то этим может воспользоваться взломщик.
. Прозрачный прокси-агент:
Задачей таких прокси является незаметный для пользователя анализ, допустим, качества и безопасности сайтов и т.д. При определении угрозы данные отсылаются в консоль управления шлюзом, где автоматическая система или администратор принимает решение. Прокси-агенты канального уровня применяются в приложениях, использующих протоколы UDP и TCP. При передаче данных осуществляется переключение портов, что позволяет
осуществлять управляемый обмен данными с одного IP-адреса.
Диспетчер безопасности
Использование модуля диспетчера безопасности позволяет создать качественное, простое и, что самое главное, контролируемое администрирование элементов брандмауэр-систем. Т.к. элементы должны создаваться при минимальном количестве ПО, то управление безопасностью оптимально осуществлять именно из стороннего модуля — такого, как диспетчер безопасности. Механизм защиты модуля должен быть очень надежным, т.к. в противном случае злоумышленник может получить доступ к управлению всей брандмауэр-системой. Поэтому диспетчер безопасности обладает определенными механизмами защиты — такими, как аутентификация, идентификация и т.д. Диспетчер должен обеспечивать целостность правил, установленных администратором, и быть простым в использовании, чтобы максимально сократить процесс настройки, при этом не теряя в ее качестве.
. Целостность правил фильтрации. Ошибки ввода данных (например, MAC-адреса, IP-адреса, номер протокола/портов) должны выявляться проверкой.
. Простота применения. Меню диспетчера должно иметь простой эргономичный дизайн, способствовать безошибочной навигации по системе.
. Правила фильтрации должны настраиваться соответственно уровню протокола. Нельзя допускать возможность входа пользователей любых уровней. Повторяющиеся записи должны быть удалены. Правила должны проверяться администратором систематически.
Для обеспечения более устойчивой системы безопасности должны быть дополнительные функции управления доступом.
. Управление доступом к диспетчеру: для предотвращения внесения несанкционированных изменений в правила должны проводиться процедуры аутентификации и идентификации.
. Управление правами доступа в диспетчере: для обеспечения безопасности всем пользователям, работающим с диспетчером, должны быть присвоены определенные права — например, администратора, оператора ввода данных, наблюдателя, аудитора.
Для особых операций, касающихся безопасности, при работе с диспетчером безопасности должно соблюдаться "правило двух персон" (один и тот же пароль одновременно вводят два человека. Информация, связанная с безопасностью — такая, как пароли или ключи аутентификации с активными элементами — должна вводиться в зашифрованном виде. Классический пример — отображение вместо символов пароля точек или звездочек. Различные функции, выполняемые в диспетчере, должны фиксироваться в различного рода логии и журналы для того, чтобы администратор мог проанализировать их в случае непредвиденных ситуаций или просто для контроля доступа.
На этом закончим с элементами и перейдем к концепциям брандмауэр-систем.
Продолжение следует
Евгений Кучук, http://sa-sec.org
Шлюзы прикладного уровня
Шлюз прикладного уровня является своеобразными воротами в наружные сети (рис. 1). Во многих системах шлюз прикладного уровня — единственная компьютерная система, к которой возможен доступ извне, поэтому шлюз нуждается в особой защите. Система, на которой установлен шлюз прикладного уровня, называется бастионным узлом (bastion host). Шлюз, реализованный как "шлюз с двойным подключением", имеет два сетевых интерфейса. Один из них относится к внутренней сети, а второй к внешней (Интернет). Таким образом, в шлюзе такого типа осуществляется полный контроль над пакетами, передаваемыми между сетями. Работают шлюзы и в режиме "одинарного подключения", т.е. имеется только один сетевой интерфейс. Однако такой шлюз может обойти злоумышленник.
Работа шлюза
Если пользователь хочет отправить данные, то ему для этого необходимо пройти процедуры идентификации и аутентификации. Для прохождения аутентификации пользователь должен установить непосредственное соединение со шлюзом — в таком случае на начальном этапе пользователь работает со шлюзом. После завершения процедур шлюз становится прозрачным для пользователя, создавая впечатление своего отсутствия.
. Принципы:
Шлюз получает пакеты посредством сетевых драйверов TCP/IP и соответствующих портов. В том случае, если порт предназначен конкретно только для одной службы, на системе должна быть установлена специальная программа — она позволяет производить через шлюз передачу пакетов, принадлежащих одной службе. Такая программа называется прокси-агентом. Так же на прокси-агент можно возложить некоторые функции по безопасности службы, за которую он отвечает.
. Концепция безопасности:
Для каждой службы, работающей на шлюзе, необходим свой прокси-агент. Но установка других программ нежелательна за исключением необходимых, конечно. Это предотвратит возможность установки вредоносной программы, которая может принять на себя обязательства шлюза, какой-нибудь неактивированной службы и открыть через нее доступ злоумышленнику. Для предотвращения возможности обхода прокси-агента на шлюзе он (шлюз) не должен выполнять функции маршрутизатора. Шлюз имеет два IP-адреса: один во внешней сети (например, Интернет), а второй — во внутренней локальной сети. Таким образом, для работы с компьютерами из внешней сети используется один IP, а для работы с компьютерами из внутренней — второй.
Прокси-агенты
Прокси-агенты бывают двух уровней: прикладного и канального. Прокси-агенты прикладного уровня используются для работы с конкретной службой/приложением. Они используют команды определенного протокола, могут анализировать информацию этого протокола и управлять ей. Работают они обычно со стандартными клиентскими программами для FTP, Telnet и т.д. Ниже мы рассмотрим несколько примеров прокси-агентов прикладного уровня.
. SMTP-прокси:
При работе SMTP-прокси непосредственной связи с получателем почты нет. Принцип работы агента следующий: поступающая почта сохраняется в специальном каталоге на шлюзе после проверки агентом заголовка пакета. Потом в ход идет MTA-агент (рис. 2), который посредством другого MTA или непосредственно отсылает почту пользователю. Это предотвращает возможность прямого доступа к MTA-агенту через SMTP-агент. Сам по себе SMTP- агент обрабатывает команды, которые не представляют угрозы. Например, HELO, MAIL, RCPT, RSET, DATA и т.д. Данный принцип позволил снизить угрозу атак на весьма уязвимую утилиту sendmail, которая является MTA-агентом на большинстве почтовых серверов.
. Telnet-прокси:
Этот агент отвечает за обмен данными с помощью Telnet-клиентов. Он имеет специальные функции обеспечения безопасности. Система-отправитель устанавливает соединение с портом 23 шлюза. После прохождения пользователем аутентификации активируется профайл пользователя, который содержит следующую информацию: IP отправителя, имя пользователя, IP получателя. После этого шлюз устанавливает подключение с портом 23 системы получателя и становится прозрачным.
. FTP-прокси:
FTP-прокси обеспечивает управляемый обмен файлами через протокол FTP (рис. 3). Для установления соединения система-клиент контактирует с поротом 21 на шлюзе, после прохождения аутентификации и идентификации пользователя активируется его профайл, который содержит информацию о компьютерной системе отправителя (IP, MAC и т.д.), имени пользователя, информацию о компьютерной системе получателя. После этого шлюз устанавливает соединение с системой-получателем и становится прозрачным для обмена. Однако прокси-агенту можно задать дополнительные параметры — допустим, ограничения по именам передаваемых файлов. Также имеется фильтр команд, который позволяет пользователю осуществлять команды, только разрешенные его правами, изложенными в профайле.
. HTTP-прокси:
Этот агент работает по той же технологии, что и предыдущий. Только для установки подключения используется порт номер 80. Так как протокол HTTP не работает в сеансовом режиме, а разрывает связь сразу же после окончания передачи запрашиваемых данных, необходима повторная аутентификация каждый раз при новом запросе. Так же, как и в FTP-прокси, тут имеется командный фильтр, который следит за тем, чтобы пользователь использовал только команды, разрешенные его правами. Для обеспечения безопасности имеется возможность отключения активных элементов (JavaScript, ActiveX и т.д.), а также имеется фильтр ПО, представляющего опасность для компьютера. Последний не может гарантировать полную защиту, однако некоторый процент вредоносного ПО им отсеивается.
. Java-прокси:
Этот агент позволяет без опаски использовать Java-элементы. Всем известно, что они крайне небезопасны. На это влияет множество факторов — одним из них является и давний конфликт Microsoft с Sun (разработчик языка Java). В итоге Microsoft отказалась покупать лицензию на среду разработки у Sun и разработала свою. Это привело к несовместимости и необходимости поддержки двух средств, как следствие — повышенная уязвимость.
. Прокси-агенты аутентификации:
Шлюз может также служить инструментом аутентификации пользователей (рис. 4), если на нем установлены специальные прокси-агенты, занимающиеся аутентификацией. В таком случае аутентификация является разовой, и ее повторение не требуется для новых сеансов. Недостатком подобной системы является то, что соединение между шлюзом и пользователем не является уникальным. И когда пользователь работает с какой-то службой, то этим может воспользоваться взломщик.
. Прозрачный прокси-агент:
Задачей таких прокси является незаметный для пользователя анализ, допустим, качества и безопасности сайтов и т.д. При определении угрозы данные отсылаются в консоль управления шлюзом, где автоматическая система или администратор принимает решение. Прокси-агенты канального уровня применяются в приложениях, использующих протоколы UDP и TCP. При передаче данных осуществляется переключение портов, что позволяет
осуществлять управляемый обмен данными с одного IP-адреса.
Диспетчер безопасности
Использование модуля диспетчера безопасности позволяет создать качественное, простое и, что самое главное, контролируемое администрирование элементов брандмауэр-систем. Т.к. элементы должны создаваться при минимальном количестве ПО, то управление безопасностью оптимально осуществлять именно из стороннего модуля — такого, как диспетчер безопасности. Механизм защиты модуля должен быть очень надежным, т.к. в противном случае злоумышленник может получить доступ к управлению всей брандмауэр-системой. Поэтому диспетчер безопасности обладает определенными механизмами защиты — такими, как аутентификация, идентификация и т.д. Диспетчер должен обеспечивать целостность правил, установленных администратором, и быть простым в использовании, чтобы максимально сократить процесс настройки, при этом не теряя в ее качестве.
. Целостность правил фильтрации. Ошибки ввода данных (например, MAC-адреса, IP-адреса, номер протокола/портов) должны выявляться проверкой.
. Простота применения. Меню диспетчера должно иметь простой эргономичный дизайн, способствовать безошибочной навигации по системе.
. Правила фильтрации должны настраиваться соответственно уровню протокола. Нельзя допускать возможность входа пользователей любых уровней. Повторяющиеся записи должны быть удалены. Правила должны проверяться администратором систематически.
Для обеспечения более устойчивой системы безопасности должны быть дополнительные функции управления доступом.
. Управление доступом к диспетчеру: для предотвращения внесения несанкционированных изменений в правила должны проводиться процедуры аутентификации и идентификации.
. Управление правами доступа в диспетчере: для обеспечения безопасности всем пользователям, работающим с диспетчером, должны быть присвоены определенные права — например, администратора, оператора ввода данных, наблюдателя, аудитора.
Для особых операций, касающихся безопасности, при работе с диспетчером безопасности должно соблюдаться "правило двух персон" (один и тот же пароль одновременно вводят два человека. Информация, связанная с безопасностью — такая, как пароли или ключи аутентификации с активными элементами — должна вводиться в зашифрованном виде. Классический пример — отображение вместо символов пароля точек или звездочек. Различные функции, выполняемые в диспетчере, должны фиксироваться в различного рода логии и журналы для того, чтобы администратор мог проанализировать их в случае непредвиденных ситуаций или просто для контроля доступа.
На этом закончим с элементами и перейдем к концепциям брандмауэр-систем.
Продолжение следует
Евгений Кучук, http://sa-sec.org
Компьютерная газета. Статья была опубликована в номере 28 за 2007 год в рубрике безопасность