Пакетные фильтры
Серверы прикладного уровня
Серверы уровня соединения
Виртуальные сети
Администрирование
Системы сбора статистики и предупреждения об атаке
Аутентификация
Заключение
Литература

Бурный рост информационных источников, новые технологии поиска и отображения данных в сети Internet, а также коммерциализация этой сети делают ее все более и более привлекательной для различных групп пользователей, включая крупные корпорации и физические лица. Все большее число компаний принимают решения о включении своей локальной сети в Internet. Однако сразу после этого в дополнение к уже имеющимся обязанностям администратор сети получает целый спектр новых проблем: как защитить локальную сеть от несанкционированного доступа со стороны "хакеров"; как скрыть информацию о структуре своей сети и ее компонентов от внешних пользователей; какими средствами разграничить права доступа внешних пользователей, обращающихся из Internet к своим FTP, WWW серверам, а также и своих пользователей, запрашивающих сервисы Сети. Для решения этих, а также множества других проблем все чаще используют firewall (брандмауэр, экран или межсетевой фильтр) [1,2]. Попробуем разобрать основные принципы действия брандмауэров, их сильные и слабые стороны.

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

Picture 1

Рисунок 1.
Структура организации межсетевого экрана

Обычно брандмауэры функционируют на какой-либо UNIX-платформе - чаще всего это BSDI, SunOS, AIX, IRIX и т.д., реже - DOS, VMS, Windows NT, а из аппаратных платформ Intel, Mips Rxxxx, SPARC, RS6000, Alpha, PA-RISC. Помимо Ethernet многие брандмауэры поддерживают FDDI, Token Ring, 100Base-T, 100VG-AnyLan, а также различные последовательные устройства. Требования к оперативной памяти и объему жесткого диска зависят от количества машин в защищаемом сегменте сети, но чаще всего рекомендуется иметь не менее 32 Мбайт ОЗУ и 500 Мбайт на диске.

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

Все брандмауэры можно разделить на три типа:

  • пакетные фильтры (packet filter);
  • серверы прикладного уровня (application gateways);
  • серверы уровня соединения (circuit gateways.)

Все типы могут одновременно встретиться в одном брандмауэре.

Пакетные фильтры

Брандмауэры с пакетными фильтрами принимают решение о том, пропускать пакет или отбросить, просматривая в заголовке этого пакета все IP-адреса, флаги или номера TCP-портов. IP-адрес и номер порта - это информация соответственно сетевого и транспортного уровней, но пакетные фильтры используют и информацию прикладного уровня - все стандартные сервисы в TCP/IP ассоциируются с определенным номером порта. Для описания правил прохождения пакетов составляются таблицы типа:

Действие Тип пакета адрес источника Порт источника Адрес назначения Порт назначения Флаги

Поле "действие" может принимать значения пропустить или отбросить. Тип пакета - TCP, UDP или ICMP. Флаги - флаги из заголовка IP-пакета. Поля "порт источника" и "порт назначения" имеют смысл только для TCP- и UDP-пакетов.

Серверы прикладного уровня

Брандмауэры этого типа используют серверы конкретных сервисов - TELNET, FTP, proxy server и т.д., запускаемые на брандмауэре и пропускающие через себя весь трафик, относящийся к данному сервису. Таким образом, между клиентом и сервером образуются два соединения: от клиента до брандмауэра и от брандмауэра до места назначения.

Полный набор поддерживаемых серверов различается для каждого конкретного брандмауэра, однако чаще всего встречаются серверы для следующих сервисов: терминалы (Telnet, Rlogin), передача файлов (Ftp), электронная почта (SMTP, POP3), WWW (HTTP), Gopher, Wais, X Window System (X11), Принтер, Rsh, Finger, новости (NNTP) и т.д.

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

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

Серверы уровня соединения

Сервер уровня соединения представляет из себя транслятор TCP-соединения. Пользователь устанавливает соединение с определенным портом на брандмауэре, который производит соединение с местом назначения по другую от себя сторону. Во время сеанса этот транслятор копирует байты в обоих направлениях, действуя как провод. Как правило, пункт назначения задается заранее, в то время как источников может быть много - соединение типа "один - много". Используя различные порты, можно создавать различные конфигурации. Данный тип сервера позволяет создавать транслятор для любого, определенного пользователем сервиса, базирующегося на TCP, осуществлять контроль доступа к этому сервису и сбор статистики по его использованию.

Сравнительные характеристики

Приведем основные преимущества и недостатки пакетных фильтров и серверов прикладного уровня. К положительным качествам пакетных фильтров следует отнести следующие:

  • относительно невысокая стоимость;
  • гибкость в определении правил фильтрации;
  • небольшая задержка при прохождении пакетов. Недостатки у данного типа брандмауэров следующие:
  • локальная сеть видна (маршрутизируется) из Internet;
  • правила фильтрации пакетов трудны в описании, поэтому требуются очень хорошие знания технологий TCP и UDP;
  • при нарушении работоспособности брандмауэра все компьютеры за ним становятся полностью незащищенными либо недоступными;
  • аутентификацию с использованием IP-адреса можно обмануть при помощи IP-спуфинга, когда атакующая система выдает себя за другую, используя ее IP-адрес;
  • отсутствует аутентификация на пользовательском уровне. К преимуществам серверов прикладного уровня следует отнести следующие:
  • локальная сеть невидима из Internet;
  • при нарушении работоспособности брандмауэра пакеты перестают проходить через брандмауэр, тем самым не возникает угрозы для защищаемых им машин;
  • защита на уровне приложений позволяет осуществлять большое количество дополнительных проверок, снижая тем самым вероятность взлома с использованием дыр в программном обеспечении;
  • при организации аутентификации на пользовательском уровне может быть реализована система немедленного предупреждения о попытке взлома. Недостатками этого типа серверов являются:
  • более высокая, чем для пакетных фильтров стоимость;
  • невозможность использовании протоколов RPC и UDP;
  • производительность ниже, чем для пакетных фильтров.

Виртуальные сети

Ряд брандмауэров позволяют также организовывать виртуальные корпоративные сети (Virtual Private Network), объединяющие несколько локальных сетей, включенных в Internet в одну виртуальную сеть. VPN позволяют организовать прозрачное для пользователей соединение локальных сетей, сохраняя секретность и целостность передаваемой информации с помощью шифрования. При этом во время передачи данных по Internet шифруется не только пользовательская, но и сетевая информация - сетевые адреса, номера портов и т.д. (рис. 2).

Picture 2

Рисунок 2.
Принцип построения VPN

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

Picture 3

Рисунок 3.
Схема подключения с использованием внутреннего маршрутизатора

Если брандмауэр может поддерживать два Ethernet-интерфейса - так называемый dual-homed брандмауэр, то чаще всего подключение осуществляется через внешний маршрутизатор (рис. 4). При этом между внешним маршрутизатором и брандмауэром имеется только один путь, по которому идет весь трафик. Обычно маршрутизатор настраивается таким образом, что брандмауэр является для него единственной, видимой снаружи машиной. Эта схема является наиболее предпочтительной с точки зрения безопасности и надежности защиты.

Picture 4

Рисунок 4.
Схема подключения с использованием внешнего маршрутизатора

На рис. 5 представлена другая схема подключения брандмауэра, который защищает только одну подсеть из нескольких выходящих из маршрутизатора. В незащищаемой области часто располагают серверы, видимые снаружи: WWW, FTP и т.д. Некоторые брандмауэры предлагают разместить эти серверы на них самих - это решение, далеко не лучшее с точки зрения загрузки машины и безопасности самого брандмауэра.

Picture 5

Рисунок 5.
Схема подключения для защиты одной подсети

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

Для повышения уровня защищенности возможно также использовать в одной сети несколько брандмауэров, стоящих друг за другом.

Picture 6

Рисунок 6.
Схема организации защиты всех подсетей

Администрирование

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

Системы сбора статистики и предупреждения об атаке

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

Аутентификация

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

При аутентификации используется, как правило, принцип, получивший название "что он знает" - пользователь знает некоторое секретное слово, которое он посылает серверу аутентификации в ответ на его запрос. Одной из схем аутентификации является использование стандартных UNIX-паролей. Эта схема является наиболее уязвимой с точки зрения безопасности - пароль может быть перехвачен и использован другим лицом. Чаще всего используются схемы с применением одноразовых паролей. Даже будучи перехваченным, этот пароль будет бесполезен при следующей регистрации, а получить следующий пароль из предыдущего является крайне трудной задачей. Для генерации одноразовых паролей используются как программные, так и аппаратные генераторы, представляющие из себя устройства, вставляемые в слот компьютера. Знание секретного слова необходимо пользователю для приведения этого устройства в действие.

Ряд брандмауэров поддерживают систему Kerberos [3] - один из наиболее распространенных методов аутентификации. Некоторые схемы требуют изменения клиентского программного обеспечения - шаг, который далеко не всегда приемлем. Как правило, все коммерческие брандмауэры поддерживают несколько различных схем, позволяя администратору сделать наиболее удобный для конкретных условий выбор. Одной из наиболее простых систем, не требующих дополнительных затрат на оборудование, но в то же время обеспечивающих хороший уровень защиты, является S/Key, на примере которой, кстати, можно продемонстрировать порядок представления одноразовых паролей.

В процессе аутентификации с использованием S/Key участвуют две стороны - клиент и сервер. Для описания принципа действия этой схемы применяются следующие понятия:

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

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

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

Заключение

Число клиентов Internet продолжает бурно расти, а вместе с этим бурно растет число атак, которым ежедневно подвергаются компьютеры из внешней среды. По статистике института CSI (Computer Security Institute) каждая пятая машина страдает. C 1991 года число незаконных вторжений возросло на 498%, а число пострадавших узлов на 781%. По результатам опроса, проведенного CSI, среди 500 наиболее крупных организаций, компаний и университетов потери, вызванные этими атаками, оцениваются в 66 млн. долл. Так что планируя серьезную работу в Internet, не забудьте заранее подумать о безопасности хранящихся в ваших компьютерах данных.

Литература

[1]. "Firewalls and Internet Security, Repelling the Wily Hacker", Bill Cheswick and Steve Bellovin, Addison-Wesley, 1994

[2]. "Building Internet Firewalls", Brent Chapman and Elizabeth D.Zwicky, O"Reilly and Associates, 1995

[3]. Н.Вьюкова. Сервер аутентификации Kerberos. Открытые системы 1, 1996