基于程序切片技术的Web服务安全分析方法技术

技术编号:7647086 阅读:206 留言:0更新日期:2012-08-05 13:54
本发明专利技术给出了一种基于程序切片技术的Web服务安全分析方法,该发明专利技术以Java开发的Web服务为研究对象,以Java源代码中的关键信息作为研究出发点,将Java源代码中的漏洞分为显式漏洞和隐式漏洞两种。对于显式漏洞的检测,可以通过传统的语句级别的切片对源代码进行分析和抽取,得到显式漏洞的分析结果。对于隐式漏洞的检测,该方法首先分析了源代码中方法之间的依赖关系,生成了方法依赖图,并使用方法级别的切片对方法依赖图进行切片,得到隐式漏洞的分析结果。结合对显式和隐式漏洞的分析,使用漏洞修复模块对漏洞进行修复,并使用服务发布模块对修复过的Web服务进行发布。

【技术实现步骤摘要】

本专利技术给出了一种基于程序切片技术的Web服务安全分析方案,主要分析Java语言开发的Web服务源代码中可能存在的安全漏洞,并对漏洞进行修复,属于Web服务安全的领域。
技术介绍
随着Internet的迅速发展,大量网络应用体系结构应运而生,主要可分为B/S(Browser/Server)结构的纯Web应用方式和传统桌面程序的分布式应用。这些体系在当前都得到了大量的应用,并取得了较大的成功。Web服务使应用程序的集成比以前更快、更容易而且更便宜。Web服务集成在协议栈中较高层,可以实现业务功能的松散集成。很多企业之间和企业内部都可以通过Web来连接业务。企业内外都可以使用一致化编程模型的方法,通过基础设施并以ー种通用的方法进行应用程序集成。在利用现有的语言和平台以及旧应用程序的情况下,可以以ー种增量的方式来集成和应用Web服务。引领业界的许多公司,例如IBM、Microsoft以及Sun公司等,都支持Web服务,他们不仅在市场上推广Web服务,而且还各自开发和发布了自己的Web服务产品。此外,现有的许多工程应用类的产品都将Web服务的功能集成到它们的特征集中,这就意味着我们现在拥有大量的Web服务平台和可供利用的Web服务开发工具。随着Web服务的大规模使用,其安全问题却日益凸显。自从1988年的Morris病毒袭击应用程序以来,应用程序中存在的安全问题就呈几何级数增长,特别是近年来,随着Web 2.0的普及,互联网应用中的安全问题也越来越多,导致的损失也日益巨大。因此不管是从经济角度还是安全角度来考虑,怎样消除应用程序中存在的安全问题已经成为业界关注的重要课题。一般情况下,可以针对软件开发过程的不同阶段,包括需求分析、设计、编码、测试、维护等阶段,分别添加安全措施来减少软件中的安全问题,此过程有助于软件抵御外部恶意攻击。Web服务作为一种网络应用软件,构建在XML(Extensible Markup Language,可扩展标记语言)基础之上,提供了ー种面向服务的架构(Services Oriented Architecture,简称S0A)。在ー个分布式的计算环境中,Web服务器动态地描述、发布、发现和调用Web服务。随着Web服务普及程度越来越高,越来越多的攻击者将注意力都放到了对Web服务及服务器的攻击方面。攻击目的主要是试图恶意访问数据或者服务。Web服务安全问题引起了企业的注意,企业关注如何构建安全方案来保障企业间的Web服务的安全数据传输;研究如何既提高数据交互效率,又能提高安全性能。在保护Web服务的安全性方面,可以利用一些已经成熟的安全技术来实现,如基于防火墙的保护、使用SSL(Secure Sockets Layer,安全套接字层)、使用VPN(Virtual Private Network,虚拟私有网络)等。对于已经发布的Web服务,考虑到外部用户的攻击,可以设计入侵检测系统对外部用户身份进行验证;对于尚未发布的Web服务,可以考虑分析Web服务的源码,分析安全漏洞及它的传播与扩散情况,并采取相应的解决方案,达到增强安全性的目的。Web服务被设计成能够通过防火墙的一种应用,这就导致Web服务暴露了更多的功能接口。Web服务允许连接不同的应用程序,使得Web服务面临很多的威胁和攻击,而且通常在一个Web服务的源代码中的许多接口可能有一些是其他一些重要接口的辅助函数,也可能是一些只能被Web服务管理员调用的一些重要接口。对于是辅助函数的接口,如果将其发布出去,不会造成严重的后果,但是如果将一些只能被管理员调用的重要接口发布出来,那么就是一个严重的Web服务安全漏洞。如果该接口被攻击者恶意使用,那么就会造成严重的后果。在实际发布的过程中,发布者往往使用一些工具直接对Web服务源代码进行发布,缺少必要的对待发布的Web服务源代码进行检测分析的过程,如果这些服务代码中就存在上述说的有安全漏洞的接口,发布这些接口就会产生安全漏洞,就会被攻击者利用。这样的安全问题往往难以被察觉,因此对于一个达到功能要求的Web服务来说,往往可能他的可靠性并没有达到设计者的要求。尽管Web服务发展很迅速,但是传统的一些Web服务安全技术并不能有效地保证Web服务的安全性,这阻碍了 Web服务更进一步的发展。传统的技术只是在Web服务发布以后进行一些保护措施,而实际上引发Web服务安全的漏洞并没有彻底被解决,存在安全漏洞的接口仍然暴露给用户,只是通过其他方法使得用户暂时不能访问,如果攻击者通过其他一些方法间接调用了存在安全漏洞的接口,同样可以对Web服务进行破坏。因此,需要在根源上对Web服务进行安全分析检测。由于Web服务的安全问题日益凸显,因此很多研究学者也对Web服务安全进入了深入的研究,提出了许多不同的方法,对Web服务各个层次的安全都进行了研究,包括Web服务的协议层、Web服务的实现层以及Web服务的应用层等等。有学者对现有的Web服务安全技术如XML签名、XML加密和ws-Security规范进行了详细的研究,在此基础上对网上商店的业务进行了安全设计。有学者实现了具有一定通用性的安全模型,能够提供一种端到端的安全解决方案,如加密机制、签名机制、安全管理、存取控制等等。有学者提出的安全措施既利用了一系列最新的、基于XML消息的Web服务安全技术,又包含了法律法规、管理制度、教育培训等非技术性措施。也有的学者着重分析研究了 XML加密解密、XML签名验证和XML密钥管理规范,介绍了基本原理和处理流程,提出了 Web服务安全性模型,这个基于消息层的Web服务安全模型不仅保证了 S0AP(Simple Object Access Protocol,简单对象访问协议)消息的机密性和完整性,还提供了端到端的安全性和可扩展性,对Web服务提供了全面的安全保障。在本专利技术中,我们创新性地使用了程序切片技术。程序切片的思想是于1979年在Mark Weiser博士论文中首次被建立的,程序切片在程序理解、分析、调试以及软件的测试、度量和维护等方面有着广泛的应用。程序切片可以被划分为前向切片和后向切片前向切片包含受该变量影响的所有语句和断言;后向切片包含影响该变量的所有语句和断言。程序切片还可分为静态切片和动态切片方法静态切片仅仅在静态程序中被使用,动态切片考虑输入值所带来的影响,更方便分析切片,但是存在着有效性的限制。直观上讲,程序切片技术可以根据服务间的依赖关系来发现服务所依赖的其他服务。在Web服务中,服务是与语言无关的,理论上,这个服务可以是使用任意语言编写的,可以是C,Java, Haskell等等一系列的语言。其中Haskell是现代的、描述式的、高价的 、纯函数式程序设计语言,具有代码简洁、安全可靠、无副作用、易扩展、易理解、高组合性等特性,它还拥有表达力强的语法,以及丰富的内置数据类型,包括任意精度的整数和有理数。国内外已有越来越多的程序设计爱好者使用该语言,用该语言实现的软件系统也越来越多,规模也越来越大。考虑到该Web服务分析方法的安全性和易用性,采用Haskell语言来实现本专利技术中的安全分析方法。参考文献Web-Service website,2009. http://en. wik本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:张迎周符炜张卫丰周国强朱宪庭郑梁须刘玲玲顾帅帅许晓曼邹德国
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术