С защитой Web-служб, которые уже используются во многих организациях, традиционные брандмауэры, к сожалению, справиться не в состоянии. Для связывания воедино разнородных систем в сфере бизнеса в Web-службах широко применяются технологии SOAP (Simple Object Access Protocol — простой протокол доступа к объектам) и XML (обзор Web-служб приведен во врезке «Перспективы Web-служб»). Но SOAP и XML — новые мишени для взломщиков, открывающие путь в самое ядро важнейших бизнес-систем. Брандмауэры пакетного уровня не могут надежно защитить трафик Web-служб, так как не распознают трафик SOAP и XML. Например, SOAP обычно работает с трафиком HTTP или SMTP, который легко проходит через традиционные брандмауэры (данное явление известно как проблема порта 80).

Итак, как раз в то время, когда брандмауэры достигли зрелости и можно было бы сосредоточиться на других проблемах безопасности, появилась их новая разновидность: брандмауэр SOAP/XML. Именно этому сегменту рынка и его основным участникам посвящена данная статья.

XML и SOAP

Прежде чем рассказать о брандмауэрах SOAP/XML, следует остановиться на особенностях XML и SOAP. Как и HTML, XML — язык разметки, который служит независимым от платформы стандартом для обмена информацией между системами в корпоративных сетях и Internet. Однако, в отличие от XML, язык HTML — статический: в нем предусмотрено конечное число способов структурирования текстовой информации. При появлении новых потребностей необходимо вносить в стандарт HTML соответствующие изменения. XML представляет собой более абстрактный язык разметки со встроенными возможностями расширения через схему, которую определяет пользователь.

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

Благодаря SOAP приложения могут пересылать XML-сообщения через сеть по протоколам HTTP или SMTP. Если одно приложение нуждается в службах другого, то первое приложение форматирует служебный запрос (то есть имя и параметры функции) в XML, затем упаковывает запрос в конверт SOAP и отправляет его. Целевое приложение открывает конверт, выполняет запрос, а затем использует SOAP, чтобы передать ответное сообщение. В таких средах, как Windows .NET Framework, разработчики приложений могут работать на высоком уровне абстракции, но тем не менее Framework интенсивно использует SOAP и XML, поэтому проблемы, связанные с их безопасностью, остаются актуальными.

XML — независимый от платформы язык, с помощью которого легко связывать разнородные системы; большинство Web-служб используют хорошо известные схемы и потому более уязвимы, чем такие узкоспециальные технологии, как Distributed COM (DCOM) и EDI. В результате увеличивается вероятность перехвата данных, непосредственного подключения неавторизованных клиентов с целью извлечения данных с сервера Web-служб и атак типа DoS (Denial of Service — отказ в обслуживании) с применением искаженных сообщений, рассчитанных на недостатки широко известных схем. Web-службы, предоставляющие функции важных приложений (например, SAP R/3), и организации, которые развертывают Web-службы, не приняв мер защиты, становятся уязвимыми для атак. Возможно даже, что пользователю ничего не известно об активных сетевых Web-службах; например, в пакете SAP R/3, охватывающем все виды операций от закупок до финансов и кадров, имеется более 2000 встроенных интерфейсов SOAP/XML.

Традиционные брандмауэры, работающие с IP-адресами, портами и протоколами, устраняют опасности на гораздо более низком уровне, чем уровень SOAP и XML. Вместо того чтобы определить, следует ли передавать данный пакет во внутреннюю сеть, брандмауэры SOAP/XML оценивают трафик в критериях Web-служб, отдельных сообщений и элементов данных, и проверяют, можно ли предоставить тому или иному запросчику (requester) доступ к конкретной операции. При работе с SOAP и XML опасность представляют встраиваемые в XML вредоносные программы, «черви», «троянские кони» и атаки типа DoS.

Защита SOAP/XML

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

Поставщики традиционных брандмауэров начинают признавать недостатки своих продуктов в отношении SOAP и XML. Например, в 2002 г. компания Check Point Software Technologies объявила, что дополняет продукт FireWall-1 функциями безопасности SOAP/XML. Теперь широко распространенный и проверенный временем классический брандмауэр FireWall-1 распознает сообщения SOAP и контент XML, а также блокирует сообщения SOAP в соответствии с такими критериями, как адреса источника и назначения.

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

Во-вторых, можно построить собственный брандмауэр SOAP/XML. Вряд ли в большинстве организаций такая идея будет воспринята с энтузиазмом, но построить собственный брандмауэр можно, и существуют инструменты, которые облегчают эту задачу. Например, с помощью Microsoft Internet Security and Acceleration (ISA) Server 2000 можно подготовить фильтры Internet Server API (ISAPI) на ISA-сервере. Компания Microsoft поставляет образец ISAPI-фильтра для проверки сообщений SOAP/XML, когда они находятся на ISA-сервере. Более подробную информацию об этом ISAPI-фильтре Microsoft можно найти по адресу http://www.microsoft.com/isaserver and select Ensuring trusted Web services.

Третий и, как правило, лучший способ — использовать брандмауэр прикладного уровня, работающий за классическим брандмауэром и проверяющий только трафик SOAP/XML. Подобно proxy, продукты этого типа получают сообщения так, как будто брандмауэр прикладного уровня на самом деле является Web-службой. Сообщение анализируется; выполняется аутентификация пользователя, программы и организации, отправившей его; затем выясняется, имеет ли отправитель право обращаться к Web-службе и запрошенной операции. Для аутентификации можно задействовать простое имя пользователя и пароль, сертификат или объединенную систему на основе языка разметки SAML (Security Assertion Markup Language).

Брандмауэр прикладного уровня может сопоставить учетные данные с такими источниками, как каталог LDAP (например, Active Directory, AD) или сервер RADIUS (Remote Authentication Dial-In User Service — служба дистанционной аутентификации пользователей коммутируемых соединений). Затем брандмауэр исследует запрошенную Web-службу, а также операцию и элементы данных (то есть параметры) внутри сообщения, проверяя, правомочен ли запрос и авторизованным ли пользователем создан. До или после аутентификации (в зависимости от продукта) брандмауэр удаляет все некорректные сообщения и возможности для атаки типа DoS, требуя совпадения формата запроса с соответствующей схемой. Сообщения, прошедшие проверку, направляются в подходящую Web-службу.

С помощью функций аудита и протоколирования, которые имеются в большинстве SOAP/XML-брандмауэров, можно вести мониторинг Web-служб. Процедуры шифрования и грамматического анализа XML создают большую нагрузку на процессор, поэтому сложная архитектура с proxy — важное условие реализации SOAP/XML-брандмауэров в средах с многочисленными Web-службами и высокими требованиями к безопасности. SOAP/XML обеспечивает информационную защиту на транспортном уровне, поэтому брандмауэр SOAP/XML может использовать SSL (Secure Sockets Layer) и TLS (Transport Layer Security) для шифрования всего потока HTTP-сообщений.

Иногда необходимо зашифровать или заверить цифровой подписью часть XML-документа (например, для многосторонних транзакций). Проблема внутридокументного шифрования решается с помощью стандартов безопасности XML Encryption и XML Signature. Поскольку SOAP/XML-брандмауэр функционирует как посредническая Web-служба, все операции аутентификации, шифрования и дешифрации выполняются в брандмауэре, и администратор может централизованно и регулярно контролировать процедуры аутентификации, шифрования и применения политик, даже если Web-службы разбросаны по различным серверам сети. Еще одно преимущество заключается в том, что, поскольку можно анализировать только расшифрованный трафик, контент расшифровывается в брандмауэре и сопоставляется с его политикой.

Варианты брандмауэров

Поставщики реализуют брандмауэры SOAP/XML в виде специализированных устройств или программ на Web-сервере. Оба подхода имеют как достоинства, так и недостатки. Специализированные устройства предназначены только для одной цели, поэтому, как правило, обеспечивают более высокую пропускную способность. Такие устройства, как Westbridge XA2500 Security and Management Appliance фирмы Westbridge Technology и XS40 XML Security Gateway компании DataPower Technology, обеспечивают скорость обработки трафика на уровне проводных сетей и более высокую надежность, чем серверные программы. Reactivity XML Firewall работает как посредник в демилитаризованной зоне. Существует несколько способов развертывания устройства Forum Sentry 1500 компании Forum Systems, в частности неискажающий режим с брандмауэром в линии (Nonintrusive Inline), в котором устройство работает в качестве сетевого моста с прозрачной ретрансляцией пакетов TCP/IP.

Стоимость серверных решений, как правило, ниже, но по мере расширения Web-служб обеспечить согласованное выполнение политик и стандартов безопасности становится труднее. Программный пакет Westbridge XML Message Server (XMS) можно разместить как на сервере, на котором развернуты Web-службы, так и на специализированном устройстве XA2500 Security and Management Appliance этой же компании. Преимущество шлюза безопасности прикладного уровня Quadrasis/Xtradyne SOAP Content Inspector фирмы Quadrasis — совместимость с SAML. Flamenco WSM компании Flamenco Networks — решение для управления Web-службами и брандмауэром, состоящее из контроллера и нескольких proxy. Его можно приобрести как управляемую службу или как лицензируемую программу. Интересная разновидность программного брандмауэра SOAP/XML — VordelSecure 2.0 фирмы Vordel, который можно развернуть как автономный брандмауэр на сервере Windows, Solaris производства Sun Microsystems или Linux либо разместить агентов на брандмауэрах и Web-серверах по всей организации.

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

Рано или поздно всем нам придется иметь дело с Web-службами, и инфраструктура безопасности предприятия должна быть к этому готова. Рынок брандмауэров SOAP/XML предоставляет большой выбор продуктов. Рассматривая их, следует обращать особое внимание на точное соответствие стандартам и совместимость с технологиями Web-служб, используемых на предприятии (например, Framework, платформа WebSphere фирмы IBM, BEA WebLogic Server компании BEA Systems), и инструментами управления (IBM Tivoli, Microsoft Operations Manager). И наконец, продукт должен обладать достаточной масштабируемостью.

Рэнди Франклин Смит — редактор Windows & .NET Magazine и президент компании Monterey Technology Group, которая занимается обучением и консалтингом в области защиты Windows NT. Связаться с ним можно по адресу: rsmith@montereytechgroup.com


Перспективы Web-служб

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

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


Информация о поставщиках
FIREWALL-1
Check Point Software Technologies http://www.checkpoint.com
FLAMENCO WSM
Flamenco Networks http://www.flamenconetworks.com
FORUM SENTRY 1500
Forum Systems http://www.forumsys.com
QUADRASIS/XTRADYNE SOAP CONTENT INSPECTOR
Quadrasis http://www.hi.com
REACTIVITY XML FIREWALL
Reactivity http://www.reactivity.com
VORDELSECURE 2.0
Vordel http://www.vordel.com
WESTBRIDGE XA2500 SECURITY AND MANAGEMENT APPLIANCE, XML MESSAGE SERVER (XMS)
Westbridge Technology http://www.westbridgetech.com
XS40 XML SECURITY GATEWAY
DataPower Technology http://www.datapower.com

Основные стандарты на базе Web-служб
СтандартОписание
Extensible Access Control Markup Language (XACML)Язык на базе XML для определения политик безопасности и прав доступа к Web-службам
Extensible Rights Markup Language (XrML)Язык для управления правами собственности в мультимедиа (Digital Rights Management, DRM) для Web-служб
Extensible Style Language (XSL)Язык для описания данных XML, предоставляемых пользователям
Liberty Alliance ProjectОткрытый стандарт для интегральной сетевой идентификации и единой процедуры входа (SSO) на различные Web-узлы
Microsoft PassportРешение SSO от Microsoft для Internet
Online Certificate Status Protocol (OCSP)Протокол проверки сертификатов сетевых ресурсов, например серверов
Reliable HTTP (HTTPR)Протокол оповещения об HTTP-сообщениях, не дошедших до места назначения
SAMLXML-стандарт для реализации SSO для отдельных Web-узлов
Web Services Description Language (WSDL)Язык описания и предоставления доступа к Web-службам
Web Services Routing Protocol (WS-Routing)Протокол маршрутизации сообщений SOAP
Web Services Security (WS-Security)Предлагаемый стандарт подписывания и шифрования сообщений SOAP
World Wide Web Consortium (W3C) XMLСтандарт определения и описания схем XML
XML Encryption Schema Definition LanguageСтандарт записи служб шифрования внутри документа XML
XML Key Management Specification (XKMS)Использование инфраструктуры открытого ключа (PKI) для защиты соединений между приложениями
XML SignatureСтандарт служб аутентификации сообщений и автора подписи
XPathЯзык для поиска и обработки фрагментов XML-документа