论文部分内容阅读
网络技术的飞速发展,极大促进了Web应用平台的广泛应用,同时Web应用安全问题也越发突出,其中造成危害最大最广泛的是注入式攻击。开发者在开发过程中一味追求应用功能的复杂性,却忽略了安全的重要性,使得注入攻击的发生率居高不下。因此,加强对注入攻击的研究与防御具有重要的意义。
当前的注入攻击检测技术存在着很多问题。基于学习的检测技术,其有效性依赖于学习算法的精确度;动态污染传播检测需要外部库的支持,与所开发的环境密切相关;基于语法分析的检测技术在检测过程中会占用系统资源,对应用的性能造成影响。
针对当前的注入检测技术存在的缺点,本文提出了一种基于动静态结合的检测与防御系统。利用静态检测模块对Web应用发布运行前进行预检测,其检测不会在应用运行中占用任何资源;利用动态防御模块弥补静态检测中发现漏洞却不易防护的缺点,且其实现不依赖于任何外部库的支持,与应用的开发环境无关,同时本文提出的基于序列比对的动态检测方法在应用运行中所占用的资源非常有限,比传统的动态检测方法具有一定的优势。
本文的创新点和主要贡献包括:
1.研究分析了常见的Web安全漏洞,介绍了当前对Web安全漏洞的检测技术,在此基础上重点对注入攻击进行了分析研究,总结了注入所使用的攻击模式,介绍了现有的注入攻击检测技术,分析了其中的优势与不足。
2.研究分析了基于网络爬虫的静态检测技术,针对现有Web应用大多存在表单输入的特征,提出了在遍历过程中的授权访问;在页面分析阶段,采用了以网页结构遍历为基础,特征模式分析相结合的页面分析算法,避免了传统分析方法中的多次遍历的缺点,提高了网页遍历的效率。
3.研究设计了数据库,使得检测过程中数据的存储与查询方便迅速,同时占用空间少且冗余度低,在发现新的攻击模式后能够迅速扩展。
4.提出了一种新的基于序列比对的注入攻击检测方法,通过比较用户输入前后的结构与类型来判断注入攻击行为的发生。通过与传统动态检测方法相比,该方法在运行过程中所占系统资源比较少。
5.基于上述研究技术的分析,设计并实现了基于动静态结合的注入攻击检测防御系统。在静态检测模块,能够自动分析应用程序获取检测所需数据,能够识别不同标签数据引起的不同攻击模式;在动态检测模块实现自动插入检测代码的功能,减轻开发者手工插入代码的工作量,在攻击发生后阻止操作的继续运行并统一给出报错信息,避免因错误信息的暴露造成系统信息的泄露。