关键词:
Java Web应用
源码缺陷检测
静态分析
动态检测
双向污点分析
摘要:
随着互联网技术的不断发展,Web应用项目的不断推广和使用,Web应用的复杂度也在随着提高。为了适应云计算、大数据等新技术的需求,Web系统架构变得越来越复杂,同时也就带来了很多潜在的安全隐患。目前导致软件缺陷存在的主要原因是大多数开发人员将关注点放在了业务实现上,而忽略了编写安全代码的重要性。如果能在开发阶段对软件代码进行检测,及时修正代码中存在的安全缺陷,那么恶意攻击者的可乘之机就会大幅减少。随着JavaEE的迅速发展,Web开源框架得到推广,安全性和保密性较高的大型企业多是基于JavaEE进行软件开发。所以本文对Java Web应用的源码缺陷检测技术进行研究与实现具有一定的现实意义。本文对当前Java Web应用架构进行分析,着重研究了服务器端Java构件的原理和应用场景,包括JSP,Java Servlet和JavaBean。对于Web应用中的高危漏洞SQL注入和XSS跨站脚本攻击的原理和防范进行了深入研究。在源码静态分析部分,创新性地提出了一种双向污点传播分析方法,提高静态分析准确性的同时还能够获取污点数据的传播路径。在程序动态检测部分,创新性地提出了利用静态分析得出的污点传播路径和污点引入点程序切片信息来指导测试用例生成和监测代码植入的方法。并且在深入研究java web应用缺陷检测技术的基础上开发实现了一个针对Java Web应用的源码缺陷检测系统JavaChecker,实验结果表明本文提出的缺陷检测技术能有效的提高结果准确率。