论文部分内容阅读
随着互联网技术的发展,Web应用所涉及的领域愈加广泛,Web应用的安全问题也越来越多。由于Web开发框架是Web应用的开发基础,其一旦出现安全问题,便会对数以万计的Web应用产生影响。在Web开发框架中,CMS框架是最常见的,也是应用范围最广的,其中WordPress占整个互联网的26%以上,Joomla网站也占据了2.6%。近年来,CMS框架安全问题愈发严峻,频繁曝出各种安全漏洞,动辄影响互联网成百上千的网站。2016年,Wordfence曝光CMS框架WordPress的自动更新机制存在严重漏洞,整个互联网上大约27%的站点均受到影响。因此,CMS框架的安全问题已经成为国内外研究的热门课题。本文基于代码层对CMS框架进行安全审计,首先介绍了CMS框架的特点和安全现状,然后基于CMS的实现语言PHP,介绍了相关的安全审计技术。在PHP安全审计技术的基础上,对CMS框架的安全审计技术进行研究,主要工作内容如下:(1)提出了基于污点型漏洞的CMS框架的安全审计方案,采用静态分析技术实现,并解决审计方案中的关键技术,改进了基于块结构的控制流图生成算法,并采用基于类摘要和文件摘要的过程间分析技术和基于边界逆推的敏感参数审计方法进行检测,改善了分析效率,保证了分析结果的可靠性。(2)提出了基于块结构的改进的控制流图生成算法。本算法通过抽象语法树中的控制节点将其分解为基本块,生成的基本块使用有向边连接,算法重新定义了控制节点分类及各类节点对抽象语法树的分解方法,改善了控制流图的完整性和准确性。此外,在构建基本块的过程中,收集数据流、常量、返回值等信息生成面向数据流分析的基本块摘要。(3)提出了基于类摘要和文件摘要的过程间分析方法。首先,结合PHP的语言特点,定义了类摘要和文件摘要结构,设计实现通过抽象语法树获取类摘要和文件摘要的方法。然后,基于类摘要和文件摘要准确定位调用函数的所在位置,获取调用函数的函数体进行分析。该方法依赖更具体的信息确定调用函数位置,改善了分析结果。(4)提出了基于边界逆推的敏感参数审计方法。本方法定义了敏感参数传播路径的边界,提出基于控制流图的以危险函数调用节点为起点的敏感参数边界逆推算法。并将敏感参数边界逆推算法与污点分析相结合,基于危险路径对基本块内和基本块间的数据流进行污点分析。本方法减少了分析路径,避免分析过程中产生大量冗余,提高了分析效率和分析结果的准确性。最后,设计实现了CMS框架安全审计系统WFVFinder,该系统由前端编译模块、中间模块、后端分析模块、配置模块和应用界面模块五个部分组成。经测试表明,本文实现的WFVFinder系统可以有效的检测出框架中的污点型漏洞,并且误报率和漏报率的综合性表现良好。