UML软件工程组织

 

 

在企业级 SOA 中使用 Web 服务,第 10 部分: 使用 IBM Business Modeler 和 Rational Web Developer for WebSphere 为多个 SOA 构建深度防御
 
Judith Myerson (jmyerson at bellatlantic.net), 系统工程师兼架构师
 

本文内容包括:

了解深度防御可以如何保护 SOA 不受攻击——不管是以技术为基础还是以策略和过程为基础构建。本文介绍了要为深度防御考虑哪些防御安全机制。

 引言

应在公司用于检测漏洞和保护 SOA 基础结构的业务策略中包含用于目标和攻击者之间的多个 SOA 的深度防御模型。

“在 Web 服务上下文中使用 SLA,第 5 部分: SLA 保证的防火墙 Web 服务”一文说明了如何集中防火墙管理,以更好地监视面向服务的体系结构(Service-oriented architecture,SOA)中的多个 Web 服务和相关应用程序的多层防火墙——并说明了为何需要为多个 Web 服务使用足够的防火墙来防止恶意通信的危害。建立多级防火墙是构建防御机制层的一个例子。现在我们将讨论如何使用 IBM Business Modeler 和 Rational® Web Developer for WebSphere® 来为多个 SOA 构建深度防御。

深度防御如何工作

如果部署多个防御安全机制,就可以更好地为 SOA 提供保护。为了克服某些技术和控制的固有缺点,可以使这些资源能够动态更改。这将帮助减少受到全面攻击的可能性,或者主动减少对暴露的漏洞的攻击。

为了演示深度防御的工作原理,我们将首先研究包含三个主要层次的中心模型:核心层、中间层和最外层。每个层都具有二级对象层,这些对象层按照层次结构、面向对象或关系顺序排列。

每个层次应包含的内容(相对于防御位置而言)视组织通过动态的资源操作保护 SOA 的业务策略和理念而定。对于一个模型,您可能会希望以技术为基础构建安全策略和控制。对于另一个模型,您可能会希望采用相反的方式:以安全策略和过程为基础构建技术和控制。

对于这两个模型,都可以使用 IBM WebSphere Business Modeler 来对业务流程和技术及控制要求之间的联系进行建模。IBM Rational Web Developer for WebSphere 允许对多个 SOA 中的 Web 服务的业务流程进行优化。此工具提供拖放 UI Enterprise JavaBean 组件,并可通过指向-点击 (point-and-click) 建立 Web 服务和 IBM DB2® Universal Database™、IBM Informix®、Oracle 或 Microsoft SQL Server 之间的 Java 数据库连接,从而缩短 Java™ 学习曲线。

核心层方案 1:技术

此深度防御模型使用以下示例作为技术基础:

  • 入侵检测系统(Intrusion Detection Systems,IDS)
  • 虚拟专用网(Virtual Private Network,VPN)扫描器
  • PKI 扫描器
  • 故障转移
  • 加密
  • 反病毒等内容筛选

图 1 显示了其各自所处的位置。

图 1. 将技术作为模型基础
 
 使用这些技术的组合比只使用单项技术能更好地保护 SOA 不受攻击。如果其中一个核心技术工作不正常,其他技术(如故障转移)可以临时接管其相应的工作。您将有可能需要更改现成的软件包的缺省设置。

Web 服务硬件缺省检测程序

为了更方便地检测缺省设置并管理设置配置,将需要开发一个 Web 服务硬件缺省检测程序,用来编译一个硬件缺省设置列表。查看该列表后,可以确定是否需要开发 Web 服务来更改设置和反映在配置管理配置文件中的更改。硬件缺省检测程序如图 2 中所示。

图 2. Web 服务硬件缺省检测程序
 

对设置更改(如加强防火墙)满意后,就可以进行控制的中间层方面的工作了。如图 3 中所示,其中包括访问、审核和加密。

图 3. 控制层
 
 您将需要确定可以基于核心层的风险消除技术自动实现何种类型的控制。需要确定用户可以在哪些级别访问系统,并基于其角色、职责和适用法律法规来授予权限。

Web 服务更改检测程序

为了在核心层和控制层间建立联系,需要一个操作系统:Linux 或 Windows。需要开发一个 Web 服务更改检测程序,以检测这两个层中的更改。此 Web 服务将编译一个列表,列出何时以何种方式对软件和硬件设置进行了何种更改。查看此列表后,可以确定是否需要开发 Web 服务来对控制和技术进行调整。更改检测程序如图 4 中所示。

图 4. 连接部分和 Web 服务更改检测程序
 
 例如,对核心层的加密技术的更改要求对加密控制进行更改,反之亦然。类似地,对访问控制的更改要求更改核心层中的内置访问机制。

Web 服务安全策略

根据更改检测程序的结果对控制进行了自定义后,就可以进行最外层的相关工作:安全策略和过程(如图 5 中所示)。可以开发 Web 服务安全策略应用程序来让系统管理员为具有不同角色和职责的用户自定义设置。

图 5. 安全策略和过程层
 
 安全策略分为三类:内置、自定义和高级策略。内置策略是 Web 服务应用程序的缺省设置。高级安全策略是硬拷贝或数字格式的文档。其中包括基础设施安全、外包、资产控制、个人安全、安全事故、物理安全、通信安全、系统开发、偶发事件计划以及法规遵从。

核心层方案 2:策略和过程

如图 6 中所示,核心层以安全策略和过程作为基础。其上部是包含访问、审核和加密控制的中间层,然后是技术所在的最外层。

图 6. 核心层:安全策略和过程

 
 和第一个模型类型类似,安全策略也分为三类:内置、自定义和高级策略。系统管理员可以更改设置来扩大防御位置。内置策略通常为 Web 服务应用程序或技术的“工厂”设置。高级安全策略是以硬拷贝或数字格式准备的文档。为了实现文档中指定的流程的自动化,请考虑开发遵从性检查(如 Sarbanes-Oxley 法案和 Gramm-Leach-Billey Financial Services Modernization 法案)和流程协调方面的 Web 服务应用程序。

核心层可提供用于构建具有访问、审核和加密控制的中间层的基础。可以确定用户和组能在哪些级别访问系统,并基于其角色、职责和适用法律法规授予权限,并确定能实现何种类型的加密和审核控制。这些控制由相关技术的参数的设置方式决定。

最外层是各项技术,使用这些技术的组合比使用单项技术能更有效地保护 SOA。如果其中一个出现故障或工作不正常,其他资源(如防火墙、IDS 和故障转移资源)可以接管其相应的工作负载,并动态分布到多个位置,以保护组织不受可能的攻击的影响。可以使用 Web 服务缺省检测程序来检测需要更改的缺省核心设置。这将帮助系统管理员更改缺省设置,以对 SOA 进行加强。

为了在最外层和中间层之间建立联系,需要一个操作系统。另外,还需要 Web 服务更改检测程序来检测这两个层中的更改,以便进行必要的调整,例如调整访问控制和内置访问策略。

多级深度防御

在现实世界中,某些技术是第一深度防御框架提供的,而其他的则是第二深度防御框架提供的——在共享环境中。例如,除非为原始深度防御配备了最新的技术,否则第一深度防御的内容筛选和 IDS 可能需要与第二深度防御共享,如图 7 中所示。在另一个例子中,第一深度防御的审核控制中的一部分可能需要与第二深度防御共享——对于一个或多个 SOA。

图 7. 共享技术层
 
 流程协调

很有可能由于组织的全球特性而将深度防御框架作为更小的深度防御组件的协调机构对待。例如,不同的国家(地区)对于技术和控制的部署和安全策略的建立有着不同的法律法规。协调机构——如公司总部——可以对各个组件间的技术进行调整,以更好地保护多 SOA 不受协作攻击的影响。

系统管理员必须谨慎,以免协调工作导致系统过载。将性能保持在最优水平的一个方法是开发一个 Web 服务度量应用程序(请参见图 8),以测定深度防御的协调程度。还可以使用此应用程序来确定其与其他深度防御的类似部分的交互情况或共享部分深度防御的情况。

图 8. Web 服务度量应用程序
 
 结束语

开发多个深度防御要求事前进行规划,以确定应如何进行设计,以保护多个 SOA 和避免在高峰期出现过载。您应与系统管理员、业务分析人员和开发人员团队沟通,探讨应如何在各个防御位置动态地使用资源来开发深度防御,以便保护 SOA。

您将发现,解决这些问题后,可以更轻松地开发多级深度防御。使用 IBM Relational Web Developer for WebSphere Software,您可以基于使用 WebSphere Business Modeler 建模的业务流程来开发 Web 服务。解决了这些问题后,管理员将发现管理 SOA 变得更加容易了。他们能够确定在不引起系统过载的前提下可以开发多少深度防御。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号