为什么传统的安全措施不适合SOA

 
   | |

导读:本文介绍了在SOA部署中面临的各种问题和挑战,同时表示如果从一开始就采取正确的步骤,保证系统的安全性也不是一件不可能的事情。

关键词:SOA ESB 企业服务总线 服务契约

 
正在加载数据...

  许多企业正在开始投向SOA的怀抱,使之作为一个增加应用软件灵活性以及整合更易于管理,更低开发成本,更统一的技术体系的方案。SOA的吸引力在于:它把公司的IT基础设施分解成服务,每一个服务实现了一个可供用户或者服务消费的商业过程。

  举个例子,某个服务可能会暴露添加一个新雇员到雇员工资名单和福利系统中的功能。为了使服务在多种环境中可用,也为了降低成本和增加处理的一致性,每一个服务都提供一个契约(contract)来描述它如何被使用及包含的功能。

  但是,SOA方法和今天企业使用的传统安全方法截然不同。SOA服务的“混合和匹配”(mix-and-match)的性质,以及它使用消息作为SOA的复合应用程序的协调机制,使得企业无法建立明确边界和安全屏障。非常特别的一点是,SOA的灵活性反而也增加安全风险。

  服务契约(Service contract)会暴露你的宝藏

  让我们来考察一下典型的服务是怎样在典型的SOA基础设施上执行的:用户和服务的通信依赖于彼此间通过ESB(企业服务总线)传递的消息。ESB作为企业的消息管道,需要理解可用的服务,它们的语义和怎样在点和点之间获取一个应用程序的消息。每一个在ESB上的服务必须使用ESB的标准消息传递协议(通常是SOAP)来寻址。

  为了使服务易于使用,每一个服务必须有一个方法来描述自身以及服务是怎样被使用的。这个描述被称为服务契约(Service contract),并通常通过WSDL(网络服务描述语言)来描述。很少有像SOA这样严格执行交互契约的开发方法。为了简化收集和发现新的契约,在许多SOA构架中,每一个服务提供给客户询问和找回契约的方法。这个找回契约的方法常常是标准化的,不是由应用程序框架供应商操作,就是由SOA从业者自己操作。

  标准化的契约和契约找回方法使SOA系统更加容易被攻击者发现,因此这些都是SOA潜藏着的新的安全风险。

  虽然这种免费提供的契约非常有助于开发商为整个企业构建新的服务和重用现有的服务,但不幸的是,有利于开发商的元素同样也有利于想要了解企业及其服务的攻击者。攻击者可以收集这些契约,并利用它们轻易地创建一个企业内部的“藏宝图”。为了确定高价值目标,攻击者可以使用这种“地图”,并审查那些认证薄弱的、或者负责高价值服务(如安全管理)的契约。

  SOA从业者可以通过在认证或离线分配时禁用匿名发布服务契约来禁止攻击者建立这样一张地图。虽然这是一个很实在的安全决定,但它并不适用于所有服务和所有企业。这是因为限制契约的分配会使得合法用户更难发现服务,还使得开发工具无缝引入契约变得更加不可能。

  消息层安全反而有助于攻击者找到入侵的途径

  具有讽刺意味的是,消息层安全的使用和另一个SOA的漏洞相关。消息层安全使开发人员能够挑选出消息中需要签署或加密的部分。为了支持寻址和ESB上的路由,邮件的目的地信息往往被排除在该邮件的加密部分。选择性加密/签名的方式不同于其他点到点或传输层安全协议,诸如保护整个连接的SSL。

  由于有了消息层安全,攻击者通过被动地监控网络可以获取在发送者和接受者之间传递的关于应用层消息的深入信息。有选择地应用安全增加了复杂性,开发人员或管理员对特定消息实施关键安全保护失败的可能性也会增加。

  在某些环境下,服务信息的暴露可能不会存在高风险,但也不能掉以轻心。攻击者获得的信息越多,攻击就越有具有针对性。在SOA以前,通过使用广泛的协议来实现分离的系统还具有一定的模糊性,在这样一个环境中攻击者很难发现和理解所有的系统,然而SOA却消除了这一障碍,反而大大提高了攻击者执行探测的能力。

  中介信息的使用增加了潜在的攻击目标数

  SOA改变单一软件为自我包含的软件的情况,可以根据需要精心配制相应的组件,这使系统变得更加动态。为了协调这些组件,SOA推荐当消息在ESB上传送时使用消息路由器和服务注册。为了消息路由器能够操作消息,要么让部分的消息不能加密,要么邮件路由器必须能够解密关键信息。这种方法意味着你不能在服务提供商和服务客户之间使用传输层安全协议。同时它还意味着,黑客可以利用这些管理信息和协调中介机构来对终端发起攻击。

  乍一看,你可能认为在“以明码传递路由信息”和“在SSL一类的协议报文中以明码表示IP和TCP头”并没有多大的不同。但这实际上却很不相同:作为中介的SSL在保证整个信息已签名和加密的条件下,只提供关于消息流内容很少的信息,并且不允许中介进行“转发信息”以外的操作。但是作为中介的SOA通常更进一步,而且往往在签名还未失效的情况下就对信息本身进行了修改。在攻击者试图改变SOA环境时,这种操纵窗口给攻击者提供了一个可用的工具。

  的确,在消息安全上,WS-Security可以提供类似SSL的保障,但WS-Security标准的灵活性和复杂性却增加了“消息中的敏感信息不能被恰当加密和完整保护”的风险。

  同样,服务注册表是有风险的中介机构,SOA方法依赖它来工作的。它们类似于DNS提供服务的方式,当一个服务消费者希望找到适当的服务供应商,消费者从服务注册表找到该服务提供者的当前地址。在许多部署方式中,服务注册表可以由管理员或由提供者动态地更新。这为SOA可以更容易的重新配置,因为服务的地址会随着服务地址而相应的改变。

  但是,正是配置控制功能使服务注册表成为了对攻击者来说有吸引力的目标。例如,黑客可以操纵注册表返回地址,让其指向被黑客攻击的服务主机的地址。如果攻击者锁定了正确的服务(如安全服务),攻击者可以给尝试使用安全服务的客户伪造客户响应。在一个客户端的部署中,已证明能够劫持安全服务,并完全批准所有的访问请求。

  部署一个安全、动态的SOA,开发者和架构者必须考虑系统的哪些部分需要动态处理、哪些部分需要保持静态。使的重配置生效的 SOA的配置元素 必须再次审查,从而使得攻击者无法全面了解系统的信息。

  在ESB内部和ESB直接的通讯为攻击者提供了新的切入点

  任何重大SOA部署的中心都是一个能够处理消息路由、并提供所需基本服务的ESB。通常情况下,企业会使用数个通过网桥连接的ESB。

  不管你有一个还是多个ESB,只要是使用了ESB就无法安装传统的“软”防火墙,这使ESB成为一个攻击目标——特别当它是关键服务(如记录和认证)的主机时。“软”防火墙是当连接方没有使用相同的协议时对通信所采取人为限制。因此,即使攻击者登录了某个系统,协议的不兼容将限制其攻击范围。例如,攻占了Web服务器的攻击者可能无法到达大型主机,因为大型主机使用令牌网协议,而在TCP / IP网上的Web服务器并没有把二者连接起来。

  ESB的目的是为了消除通信障碍,这意味着如果部署了SOA攻击者可以很容易的从Web服务器到达大型主机。同样,SOA再次有利于攻击。

  ESB高连通性使得内部、外部和ESB服务的部署更加需要一个坚实的应用程序安全措施。在把那些防护脆弱的传统大型机连接到ESB上时,需要审查其安全属性,从而确保该系统能够在充满威胁的环境中运行。你需要站在攻击者的角度,考查在你的SOA中所实现的全新通讯环境,并对攻击可能从一个被攻克的服务器中蔓延开来的距离进行建模,然后再制定出一个缓解方案,从而控制和制止攻击的蔓延。

  部署类似于SOA这样灵活的系统是一种真正的安全挑战,但如果你从一开始就采取正确的步骤,保证系统的安全性也不是一件不可能的事情。

原文出处:http://tech.it168.com/a2010/0111/835/000000835589.shtml
 
来源:IT168    作者:51cto    
 
 
 
 
 

SOA与Web服务安全

 
由于微软Azure在市场上可以买到并且于二月份开始付费使用,微软就云计算向美国国会献策。本周微软高级副总裁Brad Smith就颁布一项……
 
由于Web服务的安全要求至少有点模糊的事实,这个情况恶化。Web服务应该是灵活的,以至于其他程序员能用他们来编排Web服务创建者也许没有想象……
 
可扩展标识语言(XML)、Web服务和面向服务架构(SOA)在软件开发领域是最流行的东西。这些流行词在拥有成百上千个独立系统的大型企业中……
 
在面向服务架构中,测试并不能够节省应用程序的运行时间。 没错,运行时间进程和环境必须被测试,但是,通过在细微的视角审视服务的能力极限……
 
如果Wall Street实施健壮的企业架构,经济萎缩应该已经避免了——至少如果你问企业架构新书编者Leon Kappelman……

热门技术手册排行

 

随着开源技术越来越成熟,一个稍有开发经验的人通过学习就可以用开源的产品和技术构建一套可用的系统。对于从事软件开发的人员,尤其是对Java或动态语言相关领域的人来说,“开源”也许是他们最喜爱的单词。但是,很多时候我们需要的不仅仅是一个可用的系统,而是希望这个系统开发更简易、性能更高和扩展性更好等。这确实是一个令人头痛的问题。本指南很多地方都是点到为止,要深入了解相关信息的读者请借助参考资料、网站等自行挖掘。

 

本专题分六部分探讨SOA设计模式,当初设计面向服务架构的一大初衷就是降低服务间耦合度,由此提高服务的灵活性和自由度。

 

业务流程管理(business process management,bpm)不是一个新概念,甚至不是一个新名词。它是从相关的业务流程变革领域,如业务流程改进(bpi)、业务流程重组(bpr)、业务流程革新中发展起来的。流程管理技术也是从早期的工作流管理、eai、流程自动化、流程集成、流程建模、流程优化等技术中发展起来的。

 

TOAGF是一个架构框架,简而言之,TOGAF是一种协助发展,验收,运行,使用,和维护架构的工具。它是基于一个迭代(Iterative)的过程模型,支持最佳实践和一套可重用的现有架构资产。

 

云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。

 

Mashup是一个非常cool的新的应用程序种类。如果你想真正的了解它们,我们需要回过头来看看你现在的计算机,其实它就是一个非常好的帮助你理解mashup的模型。现在开源的操作系统无疑是非常好的apis的集合或应用程序编程接口,帮助开发者去构建其应用程序。计算机本身也是一个很好的为用户提供接口的例子,键盘和鼠标可以被理解为你通过计算机的接口而使用的不同的应用程序。本技术手册为读者提供了一些相关信息,如果需要深入了解mashup,读者可以借助其他参考资源。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录