信息化 频道

SOA安全:允许的安全技术 接驳云计算

【IT168 评论】  在本文中,我们将讨论如何在SOA中部署安全措施。在此之前,我们先了解一下什么是SOA,SOA是一种涉及应用程序(即“服务”)架构方法。最初,SOA中的服务是与很多技术相关的,包括SOAP、WSDL以及UDDI。然而,很多基层开发者随后证明REST(表象化状态转变)比SOAP信息更加优先,这也使REST现在成为SOA被接受的部分。Web2.0的发展以及REST在Web2.0的广泛运用更加巩固了REST在SOA世界的地位。最近,云服务(如Amazon的SQS)以及一些本地服务可能会被用来创建一种“混合的”SOA环境。所有这一切的结果就是,SOA现在已经结合了原先的 SOAP/REST/UDDI、REST服务以及云计算。从专业的安全角度来看,SOA必须受到保护。

  那么为什么要在SOA部署安全措施呢?明显的答案就是需要保护SOA基础设施免受攻击。这是个不错的理由,当然也包括很多其他原因,例如检测SOA 中服务的用法的功能等。我们将从针对SOA技术(SOAP和REST)的攻击开始探讨,然后,哪些标准(如WS-Security等)是允许用于SOA 的,最后探讨企业将本地应用与云计算服务混合时的安全问题。

  SOA威胁

  在SOA中,主要有哪些影响XML和REST的基于内容的威胁呢?在XML方面,存在几种公开的攻击,例如XML Entity-Expansion和SQL注入式攻击。

  1 SQL注入式攻击

  在SOA中,SQL注入式攻击会将SQL碎片插入XML数据,然后将错误的数据返回,或者制造泄露数据库访问信息的错误。

  在SOA中能实施成功的SQL注入式攻击需要两个先决条件:

  --SOA中服务接受的数据被直接插入SQL语句中

  --SQL语句在执行攻击时有足够的优先权

  为了避免受到攻击,必须确保从可疑用户处接受的数据不会直接插入SQL语句。对接受的文件内容执行内容验证和风险侦测以便进行防范。

  2 抓取-重放攻击

  想象一下这种情况:SOA中的服务受到协议的保护,以确保服务请求进行了数字签名。这虽然看起来很安全,但真是这样吗?这种系统很容易受到重放攻击,只需简单的重新播放有效的签名信息,就能进行未经授权的访问。

  解决这种问题的答案涉及时间戳的使用。WS-Security标准就能够支持时间戳,而网络服务协议(WS-Policy)可以用来掌控信息中出现的签名时间戳,那么重放的信息时间戳如果过期就会被系统侦测到。用户必须认真制定时间戳信任间隔,因为只有当这个间隔足够短,这样攻击者才没有时间捕捉,破解和重放有效签名信息。但是时间戳信任间隔又必须足够长,以便在网络服务系统时钟和网络服务请求之间细微的差别不会导致有效信息被阻拦。

  3 XML外部实体攻击

  “XML外部实体攻击”主要是利用这样一个事实:外部数据可以通过DTD(文件类型定义)被嵌入到XML文档中。通过指定一个本地文件,某些XML 引擎就可以从本地文件系统中访问未经授权的信息。请注意SOAP不允许使用DTD。

  4 XPath注入攻击

  XPath注入式攻击与SQL注入类似,它被用于从XML数据库中窃取信息。如果能确保进入XPath的数据本身不包含XPath, XPath注入攻击就能被阻断。

  5 XML拒绝服务(XDOS)

  这种攻击包含了文件类型定义的特性,即攻击可以进入DTD定义的实体。通过递归进入实体,攻击者可以制造在内存中爆炸的XML信息(因此这个术语也被称之为“XML炸弹”),从而导致拒绝服务。

  6 SOAP附件攻击

  与电子邮件信息一样,SOAP信息也包含附件。通常情况下,如果这些附件很大而且很难打开,那么它可能含有病毒。解决这个问题的方法是确保SOAP 附件可以基于MIME类型进行阻断和过滤,或者通过病毒扫描进行侦测。

  7 XML签名差异攻击

  XML签名包括指向签名数据的参考要素。解析应用软件必须对参考URI解除参照。XML签名标准陈述如下:“XML签名应用软件必须能够解析URI 语法。我们推荐在HTTP中对URI进行参照解除”。不过如果参考数据是伪造的就会带来风险。

  8 REST Web 2.0和SOA

  尽管SOA最初是和SOAP,WSDL和VDDI三者联系在一起的,但许多研发人员宁愿使用REST服务,因为REST更加接近网站上的浏览器界面。Web 2.0的蓬勃发展对其起到了推动的作用,因为“富互联网应用软件”(RIS,或称“胖互联网应用软件”)就是利用REST服务将数据从网络服务器传递到浏览器。能利用Web 2.0的技术包括浏览器端的JavaScript,多数称之为REST网络服务的部分都是在服务器端发生的。举例来说,Flickr网站包括在浏览器中运行的JavaScript脚本,我们称之为服务器端的网络服务,可以对照片进行更名。为了撤销XML或者JSON(JavaScript目标符号)数据,客户端的“AJAX”(非同步JavaScript和XML)可以召回服务器上的网络服务。这种行为不是同步发生的,用户无需浏览新的网页。

  在Web 2.0的世界中,这成为攻击关键点的后端网络服务。有时这种网络服务被定义为Web 2.0的“大型攻击界面”。攻击者会试图通过它的客户端界面攻击应用软件,或者他们会简单地绕过后端网络服务界面长驱直入。

0
相关文章