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

  作者:畅享网
2010/1/8 11:06:38
许多企业正在开始投向SOA的怀抱,使之作为一个增加应用软件灵活性以及整合更易于管理,更低开发成本,更统一的技术体系的方案。

本文关键字: SOA 理论探讨

许多企业正在开始投向SOA的怀抱,使之作为一个增加应用软件灵活性以及整合更易于管理,更低开发成本,更统一的技术体系的方案。SOA的吸引力在于:它把公司的IT基础设施分解成服务,每一个服务实现了一隹晒┯没Щ蛘叻裣训纳桃倒獭?/p>

举个例子,某个服务可能会暴露添加一个新雇员到雇员工资名单和福利系统中的功能。为了使服务在多种环境中可用,也为了降低成本和增加处理的一致性,每一个服务都提供一个契约(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。

由于有了消息层安全,攻击者通过被动地监控网络可以获取在发送者和接受者之间传递的关于应用层消息的深入信息。有选择地应用安全增加了复杂性,开发人员或管理员对特定消息实施关键安全保护失败的可能性也会增加。——51CTO王文文:骇客可以用Sniffer工具监控网络,但加密的数据会对他们造成一些麻烦。

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

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

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

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

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

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

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

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

共2页: 上一页1 [2]
责编:赵恒
vsharing微信扫一扫实时了解行业动态
portalart微信扫一扫分享本文给好友

著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。
推荐博客
创新平台技术,助力政企私有云..

创新平台技术,助力政企私有云建设金蝶中间件有限公司 奉继承 博士第16届软博会高峰论坛,2012.05.31……

畅享
首页
返回
顶部
×
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918