С защитой 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-сообщениях, не дошедших до места назначения |
SAML | XML-стандарт для реализации 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-документа |