soa安全:如何在SOA中部署安全措施

        在本文中我们将讨论如何在SOA中部署安全措施在此的前我们先了解下什么是 SOASOA是种涉及应用(即“服务”)架构思路方法最初SOA中服务是和很多技术相关包括SOAP、WSDL以及UDDI然而很多基层开发者随后证明REST(表象化状态转变)比SOAP信息更加优先这也使REST现在成为SOA被接受部分Web2.0发展以及REST在 Web2.0广泛运用更加巩固了REST在SOA世界地位最近云服务(如AmazonSQS)以及些本地服务可能会被用来创建种“混合 ”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炸弹”)从而导致拒绝服务


="xspace-totlerecord">3="xspace-totlepages">1/3="xspace-current">123>
Tags:  计算机安全 安全检查 安全小常识 soa安全

延伸阅读

最新评论

发表评论