Защитные средства Интранет

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

Современные комплексные межсетевые экраны

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

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

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

Сделаем небольшое замечание. Межсетевые экраны — наиболее проработанное защитное средство Интернет/Интранет, решающее сразу несколько задач, поэтому в данное работе мы уделяем им наибольшее внимание. Подчеркнем, однако, что обеспечение безопасности Интранет-систем не сводится к расстановке межсетевых экранов. Необходим комплекс мер разного уровня — от административного до программно-технического.

FireWall-1 компании Check Point

FireWall-1 — это программный продукт компании Check Point Software Technologies (распространяемый также некоторыми другими компаниями, например, SunSoft). В основе FireWall-1 лежит технология многоуровневой фильтрации с формированием и анализом состояния сетевых соединений, обеспечивающая надежную защиту в сочетании с высокой эффективностью и полной прозрачностью для легальных пользователей. Эта технология дополнена средствами централизованного администрирования (конфигурирования, анализа и аудита) защитных механизмов, а также логически замкнутым набором криптографических средств.

FireWall-1 состоит из двух основных компонентов:

Далее мы рассмотрим (применительно к версии 2.1 программного продукта) функции каждого из модулей.

Управляющий модуль FireWall-1

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

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

Конфигурирование FireWall-1 начинается с описания объектов, которые межсетевой экран должен защищать. В число объектов входят хосты (компьютеры с одним сетевым интерфейсом), шлюзы (компьютеры с несколькими сетевыми интерфейсами), маршрутизаторы, сети, области управления. Каждый объект имеет набор атрибутов, таких как сетевой адрес, маска подсети и т.п. Часть этих атрибутов следует задать вручную, остальные автоматически извлекаются из информационных баз — NIS/NIS+, SNMP MIB, DNS.

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

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

Используемый сетевой сервис является компонентом правил фильтрации наряду с исходным и целевым адресом. Прежде чем использовать сервис при задании правил, необходимо определить его свойства. FireWall-1 содержит предварительно подготовленные определения всех стандартных TCP/IP-сервисов, разбитых на четыре категории — TCP, UDP, RPC, ICMP. Пятая категория, "Others", оставлена для нестандартных сервисов. В подавляющем большинстве случаев она остается пустой.

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

RPC-сервисы сложны для фильтрации из-за переменных номеров используемых портов. FireWall-1 отслеживает RPC-трафик, выявляя запросы к функции portmapper и извлекая из ответов выделенные номера портов.

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

Каждое правило состоит из следующих полей:

Рассмотрим пример. Пусть имеется конфигурация, приведенная на Рис. 15 . Локальная сеть (localnet) должна предоставлять вовне только почтовый сервис. В то же время, пользователи локальной сети могут пользоваться всеми сетевыми сервисами, внутренними и внешними. В экранирующей подсети (dmz) располагаются общедоступные серверы http и ftp; сами эти серверы не должны выступать в роли инициаторов сетевых контактов. Авторизованным пользователям, располагающимся во внешней сети, разрешен удаленный доступ в локальную сеть. Наконец, следует позаботиться о том, чтобы экранирующий шлюз был прозрачен для сетевого трафика, то есть чтобы он не мог выступать в роли отправителя или получателя сетевых пакетов. Результирующий набор правил изображен на Рис. 16 .

Рисунок 15. Конфигурация с локальной сетью и экранирующей подсетью.

Рисунок 16. Набор правил для защиты конфигурации на Рис. 15 .

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

Наконец, база правил преобразуется в текст на языке Inspect, а затем выполняется компиляция, результат которой передается на все объекты, вовлеченные в процесс фильтрации.

Экранирующий модуль FireWall-1

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

Экранирующий модуль решает три основные задачи:

Экранирующий модуль встраивается в ядро операционной системы между канальным и сетевым уровнями. Он перехватывает все пакеты, поступающие из/в сетевой карты и обрабатывает их в соответствии со специфицированной базой правил. Такая обработка производится для каждого сетевого интерфейса на серверах и шлюзах. При фильтрации по очереди просматриваются все правила, заданные для данного интерфейса. Если подходящее правило найдено, выполняются заданные в нем действия (протоколирование, шифрование и т.д.), после чего пакет пропускается или отвергается. Таким образом, экранирующий модуль FireWall-1 работает до и независимо от сетевых механизмов операционной системы. Работа в пространстве ядра позволяет избежать многочисленных переключений контекстов процессов, что существенно повышает эффективность фильтрации.

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

Защита коммуникаций между внешним клиентом и корпоративной сетью

Для защиты коммуникаций между внешним клиентом и корпоративной сетью и для обеспечения аутентификации удаленных клиентов может использоваться модуль SecuRemote, устанавливаемый на клиентском компьютере. Этот модуль совместим с любым стеком протоколов TCP/IP и с любыми сетевыми адаптерами. Тем самым SecuRemote оказывается универсальным средством криптографического закрытия клиентских коммуникаций.

SunScreen компании Sun Microsystems

SunScreen — это семейство продуктов компании Sun Microsystems (точнее, ее подразделения — Internet Commerce Group), предназначенное в первую очередь для организации частных виртуальных сетей. Наиболее известным членом семейства является SunScreen SPF-100.

Аппаратно-программная организация SunScreen SPF-100

Аппаратная платформа SunScreen SPF-100 представляет собой специализированный SPARC-сервер с микропроцессором MicroSPARC-II и четырьмя сетевыми интерфейсами. Операционной платформой служит вариант ОС Solaris, в котором оставлены только функции, необходимые для работы SunScreen.

Для администрирования SunScreen SPF-100 используется отдельный компьютер на Intel-платформе с ОС MS-Windows. Этот компьютер снабжается защищенным устройством для хранения криптографических ключей.

Средства SunScreen для организации виртуальных частных сетей

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

При проектировании и реализации семейства продуктов SunScreen принят подход, основанный на применении криптографических средств на IP-уровне. Прежде всего, для выработки так называемого парного криптографического ключа, обслуживающего взаимодействие двух абонентов (точнее, двух устройств SunScreen, защищающих сегменты, к которым принадлежат эти абоненты), применяется алгоритм Диффи-Хеллмана. Открытый ключ второй стороны извлекается из заверенного сертификата, имеющего структуру, описанную стандартом X.509. Internet Commerce Group поддерживает службу сертификационных центров по всей территории США; предполагается, что со временем эта служба станет всемирной. Таким образом, SunScreen — это не только семейство аппаратно-программных продуктов, это еще и набор услуг по поддержанию глобальной базы данных сертификатов.

Шифрование IP-пакета выполняется следующим образом. Сторона-отправитель вырабатывает случайный ключ, шифрует с его помощью пакет (при этом могут быть применены различные алгоритмы симметричного шифрования), шифрует случайный ключ с помощью парного, присовокупляет результат к зашифрованному пакету и помещает полученное содержимое в новый IP-пакет, направляемый устройству SunScreen, обслуживающему получателя. Там первоначальный пакет извлекается, расшифровывается и передается адресату.

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

За счет того, что защищаемый трафик помещается в IP-пакеты, адресуемые устройствам SunScreen, реализуется еще одна важная защитная функция — сокрытие топологии сегментов корпоративной сети.

Протокол SKIP и его реализации

Стратегия управления криптографическими ключами, которую предложил Ashar Aziz, получила название SKIP - Simple Key-Management for Internet Protocol. Этот протокол может использоваться (и уже используется) не только в устройствах SunScreen, но и в универсальных компьютерах, прежде всего на клиентских рабочих местах. В настоящее время SKIP вынесен на рассмотрение сообщества Интернет (точнее, организации Internet Engineering Task Forse, ведающей стандартизацией в Интернет).

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

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

Средства межсетевого экранирования в SunScreen

В устройствах SunScreen применяется многоуровневая фильтрация с формированием и анализом состояния сетевых соединений. Такой подход, как мы уже отмечали при рассмотрении продукта FireWall-1, позволяет обеспечить надежную фильтрацию всех протоколов семейства TCP/IP.

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

Устройства SunScreen реализуют функцию трансляции сетевых адресов, что способствует сокрытию информации о защищаемой сети.

Средства администрирования SunScreen-конфигураций

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

Gauntlet компании Trusted Information Systems

Основой семейства межсетевых экранов Gauntlet компании Trusted Information Systems является свободно распространяемый в исходных текстах инструментарий TIS Internet Firewall Toolkit, ставший фактическим стандартом реализации так называемых серверов-агентов, осуществляющих экранирование на прикладном уровне.

Gauntlet может поставляться в двух вариантах — для Интернет и Интранет. В последнем случае, когда разграничение доступа происходит в более безопасной корпоративной среде, применяется облегченный подход с экранированием на сетевом уровне.

Компонентами Gauntlet являются также криптографические модули, поддерживающие виртуальные частные сети и защиту коммуникаций между удаленным клиентом и корпоративной сетью.

Принципы разработки и архитектура Gauntlet

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

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

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

Еще один очень важный принцип — принцип "прозрачного ящика". Тексты инструментария TIS FWTK общедоступны. Исходные тексты Gauntlet Internet Firewall входят в комплект поставки. Длительная проверка текстов большим количеством независимых экспертов позволяет практически исключить наличие "закладок" или серьезных брешей в защите.

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

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

Обслуживаемые сервисы

Семейство продуктов Gauntlet обслуживает следующие сервисы прикладного уровня:

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

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

Поддержка виртуальных частных сетей

В семействе Gauntlet поддержка виртуальных частных сетей реализована за счет использования криптографических средств на IP-уровне. Для шифрования могут использоваться алгоритм DES или программная реализация составных ключей. Последняя обладает высокой криптостойкостью и разрешена к экспорту из США.

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

Продукт Gauntlet PC Extender предназначен для установки на компьютерах мобильных пользователей. Он обеспечивает защиту коммуникаций между клиентом и корпоративной сетью прозрачным для приложений образом.

Проверка подлинности пользователей

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

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

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

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

3.1.3.6. Изменения, вносимые в операционную систему

За счет внесения изменений в ОС компьютера, на котором функционирует Gauntlet, удалось преодолеть многие традиционные проблемы экранирования на прикладном уровне и реализовать следующие возможности:

и ряд других. В результате Gauntlet стал действительно комплексным межсетевым экраном.

Новые возможности межсетевых экранов

Мы уже указывали, что разработчики межсетевых экранов продолжают поднимать планку конкуренции. Так, в конце 1996 года должна стать доступной версия 3 межсетевого экрана компании Check Point. Среди новых возможностей, появившихся в этой версии, отметим следующие:

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

Еще одна очень важная инициатива компании Check Point - выработка концепции единой открытой платформы для обеспечения сетевой безопасности (Open Platform For Secure Enterprise Connectivity, OPSEC). Основой платформы является набор открытых программных интерфейсов к средствам разграничения доступа, проверки подлинности, протоколирования и аудита, криптографии, трансляции адресов, контроля содержимого потоков данных. Достоинства идеологии открытых систем общепризнаны, поэтому распространение этой идеологии на межсетевое экранирование следует всячески приветствовать.

Secure Sockets Layer (SSL) — протокол защиты коммуникаций и поддерживающие его решения

Одним из важнейших фактических стандартов, обеспечивающих информационную безопасность в Интранет и Интернет, является протокол Secure Sockets Layer (SSL, см. [6] ), разработанный специалистами компании Netscape Communications и поддержанный многими крупнейшими производителями программного обеспечения, такими как Microsoft и IBM.

Этот протокол можно отнести к сеансовому (пятому) уровню эталонной модели ISO/OSI, то есть он располагается выше транспортного, но ниже прикладного уровня. Для приложений, опирающихся на SSL, обеспечивается аутентификация пользователей и компьютеров (без передачи имен и паролей в открытом виде), а также целостность и конфиденциальность пересылаемой по сети информации, поддерживается концепция единого входа в информационную систему (когда не надо доказывать свою подлинность каждому серверу в отдельности). Такими приложениями могут быть, например, сервисы HTTP, FTP, SMTP.

В основе протокола SSL лежит использование общепризнанных криптографических решений, таких как алгоритмы RSA, DES, MD5 и сертификаты, соответствующие спецификациям X.509. В то же время, протокол достаточно гибок и допускает применение специфических методов шифрования, например, ГОСТ 28147-89.

Поддержка SSL и ассоциированных протоколов — SET (Secure Electronic Transactions) и S/MIME (Secure Multipart Internet Mail Encoding) — встроена по существу во все продукты компании Netscape Communications. Так, Netscape Navigator обеспечивает проверку подлинности Web-сервера, контроль целостности и шифрование сообщений, пересылаемых между клиентами и сервером, причем при установлении контакта алгоритм шифрования может быть выбран по взаимному согласию.

Семейство серверов Netscape SuiteSpot, включающее такие продукты, как Netscape Enterprise Server, Netscape News Server и Netscape Mail Server, позволяет ассоциировать сертификаты клиентов с элементами базы управления доступом. Это упрощает пользовательские действия, поскольку пользователю достаточно войти в свой экземпляр Netscape Navigator, который будет в дальнейшем автоматически вырабатывать и пересылать пользовательские сертификаты. Упрощаются и действия системного администратора, так как вместо того, чтобы поддерживать списки управления доступом на каждом сервере, он может разграничивать доступ в соответствии с тем, какой центр выдал сертификат данного пользователя.

Сертификаты могут использоваться в программах на серверной стороне для более тонкого управления доступом, выполнения действий по доверенности и т.п.

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

Java — безопасная программная среда для создания распределенных приложений

Как указывалось выше, в Разд. Безопасность программной среды , Java-система предлагает следующие группы средств для обеспечения безопасности при создании распределенных приложений:

Говоря о надежности языка Java, следует указать следующие особенности:

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

Верификатор байткодов, кроме общей проверки формата поступившей информации, пытается убедиться в отсутствии следующих некорректных действий:

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

Чтобы обеспечить безопасное выполнение программ, которые могут осуществлять доступ к локальным файлам и другим ресурсам, в Java-системе используется менеджер безопасности.

Менеджер безопасности представляет собой объект, методы которого проверяют согласованность производимых запросов с политикой безопасности. Стандартная Java-среда содержит абстрактный класс SecurityManager, определяющий программный интерфейс с менеджером безопасности. Среди методов этого класса — checkAccess, checkRead, checkWrite, checkExec и т.п. В свою очередь, библиотечные функции содержат вызовы методов класса SecurityManager. Если некоторое действие разрешено, метод завершается обычным образом. В противном случае возбуждается исключительная ситуация SecurityException.

Подразумеваемая реализация методов checkXxx предельно проста:

public void checkXxx (...) {

throw new SecurityException ();

}

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

Листинг 1

/*  * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.  *  * Permission to use, copy, modify, and distribute this software  * and its documentation for NON-COMMERCIAL purposes and without  * fee is hereby granted provided that this copyright notice  * appears in all copies. Please refer to the file "copyright.html"  * for further important copyright and licensing information.  *  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF  * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED  * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A  * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR  * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR  * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.  */ import java.io.*;  class PasswordSecurityManager extends SecurityManager {  	private String password;  	PasswordSecurityManager(String password) { 		super(); 		this.password = password; 	}  	private boolean accessOK() { 		int c; 		DataInputStream dis = new DataInputStream(System.in); 		String response;  		System.out.println("What's the secret password?"); 		try { 			response = dis.readLine(); 			if (response.equals(password)) 				return true; 			else 				return false; 		} catch (IOException e) { 			return false; 		} 	} 	public void checkRead(FileDescriptor filedescriptor) { 		if (!accessOK()) 			throw new SecurityException("Not a Chance!"); 	} 	public void checkRead(String filename) { 		if (!accessOK()) 			throw new SecurityException("No Way!"); 	} 	public void checkRead(String filename, Object executionContext) { 		if (!accessOK()) 			throw new SecurityException("Forget It!"); 	} 	public void checkWrite(FileDescriptor filedescriptor) { 		if (!accessOK()) 			throw new SecurityException("Not!"); 	} 	public void checkWrite(String filename) { 		if (!accessOK()) 			throw new SecurityException("Not Even!"); 	} }

Менеджер безопасности — чрезвычайно гибкое средство. Очевидно, что в процедурном виде можно выразить любую практически полезную политику безопасности. Дело лишь за корректной реализацией в приложении методов класса SecurityManager.

Следует осознавать границу между концепцией безопасности в языке Java и реализацией Java-среды. Если полнота и непротиворечивость концепции в настоящее время считаются общепринятыми (см., например, [4] ), то ошибки реализации продолжают обнаруживаться. Впрочем, происходит это не очень часто, ошибки быстро исправляются, а их практическое использование в злоумышленных целях сопряжено со значительными техническими трудностями. Каждая организация должна взвесить все "за" и "против" использования Java в своих Интранет-системах. На наш взгляд, достигнутый в Java уровень безопасности можно считать вполне удовлетворительным. Едва ли Java окажется самым слабым звеном.

Разграничение доступа в рамках httpd-сервера

Web-серверы httpd, реализованные Национальным центром суперкомпьютерных приложений (National Center for Supercomputing Applications, NCSA) и совместимые с ними серверы Apache, являются, по-видимому, самыми распространенными в Интернет. В этой связи поучительно рассмотреть, как в них реализовано разграничение доступа.

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

<Directory /usr/local/http/docs>

<Limit GET>

order deny, allow

deny from all

allow from .jet.msk.su

</Limit>

</Directory>

Данная директива разрешает доступ к каталогу /usr/local/http/docs только пользователям из области управления jet.msk.su. Этим пользователям разрешено получение файлов и выполнение CGI-процедур.

В директиве Directory можно задавать опции, управляющие поведением сервера при обслуживании соответствующих каталогов. Например, директива AllowOverride позволяет в пределах каталога отменять действие централизованного конфигурационного файла и задавать права в локальном файле .htaccess. Такая возможность в полной мере реализует концепцию произвольного доступа, со всеми достоинствами в виде гибкости и недостатками в виде потенциальной потери управляемости и создания слабостей.

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

Приведем пример директивы Directory, которая предусматривает ограничения нескольких видов на доступ к указанному каталогу.

<Directory /usr/local/http/docs/secret>

AuthUserFile /etc/http/htpasswd

AuthGroupFile /etc/http/htgroup

AuthName Jet AuthType Basic

<Limit GET>

order deny, allow

deny from all

allow from .jet.msk.su

require user juser1 juser2

require group jetgrp1

</Limit>

</Directory>

Директивы AuthUserFile и AuthGroupFile задают расположение файлов паролей и групп для данного каталога. AuthName определяет имя так называемой области управления разграничением доступа. Пользователь увидит текст "Jet" и поймет, куда его приглашают войти; в пределах области управления Web-навигатор поддерживает концепцию единого входа - он автоматически передает пользовательские имя и пароль при всех попытках доступа (кроме первой) к документам из этой области.

Директива AuthType задает тип процедуры аутентификации. На момент написания статьи серверы httpd поддерживали только Unix-пароли (тип Basic), что, конечно, нельзя назвать достоинством, особенно с учетом многократной передачи этих паролей.

Директивы require user и require group накладывают дополнительные ограничения на доступ к каталогу secret. Мало быть зарегистрированным в файле htpasswd, необходимо еще иметь имя juser1 или juser2, либо входить в группу jetgrp1. Тем самым идея произвольного управления доступом получает дальнейшее развитие.

Отдельного рассмотрения заслуживает такая мощная возможность сервера httpd, как интерпретация файлов во время пересылки пользовательскому навигатору. Такие интерпретируемые файлы называются включаемыми. Директива

Options Includes

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

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

Средства аутентификации в открытых сетях

Как указывалось выше (см. Разд. Аутентификация в открытых сетях ), в сетевой среде проблема проверки подлинности пользователей имеет два аспекта:

Применительно к первому аспекту мы рассмотрим системы, основанные на использовании одноразовых паролей, поскольку они представляются наиболее практичными.

Системы, основанные на использовании одноразовых паролей

Наиболее известным программным генератором одноразовых паролей является система S/KEY компании Bellcore. Идея этой системы состоит в следующем. Пусть имеется односторонняя функция f (то есть функция, вычислить обратную к которой за приемлемое время не представляется возможным). Эта функция известна и пользователю, и серверу аутентификации. Пусть, далее, имеется секретный ключ K, известный только пользователю.

На этапе начального администрирования пользователя функция f применяется к ключу K n раз, после чего результат запоминается на сервере. После этого процедура проверки подлинности пользователя выглядит следующим образом:

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

В настоящее время система S/KEY приобрела статус Интернет-стандарта (см. [9] ).

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

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

Получив идентификационную и аутентификационную информацию, система может, посредством программного компонента ACE/Server Client, переслать ее серверу аутентификации ACE/Server, который и определяет подлинность пользователя.

На Рис. 17 приведена структура сетевой системы, аутентификацию в которой выполняет ACE/Server.

Рисунок 17. Архитектура системы аутентификации компании Security Dynamics.

Следует отметить, что карточки SecurID поддерживаются практически на всех аппаратно-программных платформах и во многих приложениях. Например, эти карточки (как, впрочем, и программа S/KEY) являются одним из возможных вариантов проверки подлинности администраторов при доступе к межсетевым экранам.

Средства единого входа в сеть

В настоящее время существует целый ряд систем, поддерживающих концепцию единого входа в сеть. Такие системы не только повышают удобство работы пользователей (не надо многократно доказывать свою подлинность), но и способствуют усилению информационной безопасности, так как исключают открытую передачу по сети аутентификационной информации и делают возможным протоколирование действий пользователей в рамках всей сети, независимо от смены компьютеров (посредством утилит telnet, ftp, rlogin и т.п.) или имен (посредством команд типа su в ОС Unix).

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

Система SeOS (Security for Open Systems — безопасность для открытых систем) разработана в компании Memco Software. В рамках единой базы пользователей SeOS позволяет гибко управлять такими параметрами доступа, как разрешенные часы работы и способ доступа. SeOS контролирует качество паролей, поддерживает одноразовые пароли и аутентификационные карточки, блокирует неиспользуемые идентификаторы пользователей, следит за сроком годности временных имен и т.д.

SeOS осуществляет еще одну, очень важную для Unix-систем функцию — контролирует права доступа пользователя root, лишая того абсолютной власти. Учитывая это обстоятельство, компания Check Point заключила с Memco соглашение о встраивании возможностей SeOS в FireWall-1 с целью повышения собственной защищенности последнего.

Другим популярным средством поддержки единого входа является система BoKS компании DynaSoft. Функционально она близка к SeOS, однако использует для аутентификации не Kerberos, а RSA-ключи и сертификаты в стандарте X.509 (и вообще опирается на асимметричные криптографические методы). Отметим, что BoKS поддерживает аутентификационные карточки SecurID и может содержать в качестве дополнительного компонента ACE/Server компании Security Dynamics.

Система BoKS стала основой нового продукта компании SunSoft — Solstice Security Manager. Несомненно, стратегический союз двух компаний позволит сделать операционную среду Solaris еще более мощным и удобным инструментом сетевого администрирования. Кроме того, пользователи Sun-систем будут избавлены от поисков сторонних продуктов усиления безопасности.

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

Средства протоколирования и аудита в рамках сетевых конфигураций

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

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

Семейство продуктов компании Haystack Labs

Одним из продвинутых средств протоколирования и аудита является семейство продуктов компании Haystack Labs, способных функционировать в сетях, построенных на основе Unix-серверов. Мы рассмотрим два члена этого семейства - Stalker и WebStalker Pro.

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

Misuse Detector способен отвечать на вопросы типа:

и т.п. Компания постоянно пополняет свою базу знаний.

Подсистема Tracer/Browser позволяет просматривать регистрационные журналы через набор фильтров, отбирая тем самым только нужную в данный момент информацию. Это напоминает организацию конвейеров, являющихся одним из самых мощных средств ОС Unix. С помощью данной подсистемы администратор безопасности может быстро найти ответы на интересующие его вопросы, например:

и т.п. На Рис. 18 представлен отчет о нелегальном прочтении электронной почты.

Рисунок 18. Отчет о нелегальном прочтении электронной почты.

Подсистема Audit Control служит для централизованного администрирования протоколирования и аудита на всех компьютерах сети, а подсистема Storage Manager — для контроля за расходованием памяти под регистрационные журналы.

Отдельный пакет Stalker for Firewalls позволяет следить за функционированием межсетевых экранов (внешних и внутренних). Это повышает собственную защищенность экранов.

Система Stalker может входить в состав интегрирующих окружений, таких как Tivoli Enterprise Console, что облегчает администрирование многокомпонентных, разнородных конфигураций.

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

и т.д. WebStalker Pro поддерживает, пожалуй, все популярные реализации Web-серверов, он способен функционировать на различных вариантах ОС Unix и Windows NT.

Для организаций, желающих выявлять и поддерживать собственные сигнатуры подозрительной активности, предназначено средство разработки Stalker Misuse Detector Developers Kit. Это делает Stalker до некоторой степени открытой, расширяемой системой, что очень важно в динамичном мире сетевой безопасности.

Семейство продуктов AXXiON компании OpenVision

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

Система AXXiON-Authorize предназначена для усиления защиты Unix-систем за счет более развитых (по сравнению со стандартными) средств контроля доступа. AXXiON-Authenticate — продукт, реализующий концепцию единого входа в сеть на основе системы Kerberos.

AXXiON-SecureMax — средство аудита в рамках сетевых конфигураций, включающих операционные платформы Unix, Windows NT и OpenVMS. AXXiON-SecureMax позволяет задать пороговые значения различных параметров, описывающих поведение подобных конфигураций, и затем с одной, центральной консоли контролировать работу всех систем. В число контролируемых параметров могут входить пароли (нет ли среди них слабых?), неиспользуемые идентификаторы пользователей, размеры очередей к устройствам и сервисам, сетевые характеристики. Может проверяться целостность файловых систем. Иными словами, AXXiON-SecureMax позволяет в довольно естественной форме выразить многие аспекты политики безопасности, а затем контролировать проведение этой политики в жизнь.

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

Интеграция с AXXiON-Authenticate позволяет проводить удаленное администрирование узлов сети, а криптографические средства — защищать административные потоки данных, в том числе содержащие регистрационную информацию.

В совокупности AXXiON-Authorize, AXXiON-Authenticate и AXXiON-SecureMax близки по функциональности к рассмотренным выше системам SeOS и BoKS. Еще раз отметим, что на сегодняшний день существует довольно большой выбор высококлассных средств обеспечения информационной безопасности Интранет-систем. Важно "только" грамотно интегрировать эти средства, а для этого необходимо, во-первых, видеть все грани проблемы "безопасность в Интранет" и, во-вторых, представлять себе весь спектр доступных защитных ресурсов, причем не только программно-технических.


Концепции решения Содержание Заключение
Copyright ╘ 1993-2000, Jet Infosystems