论文部分内容阅读
随着互联网的快速发展,中国的网民规模日益扩大,网站总量也在呈现不断上升的趋势,使得现实生活中的种种实际需求对Web网站的开发提出了更高层次的要求,Web网站也从最原始的静态HTML页面转变为由各种动态语言编写的提供各式各样复杂服务的综合型站点。而PHP由于其语言的简便性和灵活性,在网站开发中一直占据着极高的比例,但是由于Web系统往往需要存储用户的个人信息和商业数据等高价值信息,使得Web系统逐渐成为黑客攻击的首要目标,同时开发人员的安全意识不足,导致网站的安全质量良莠不齐,漏洞频出。因此,研究并设计一款准确可靠的Web应用安全审计系统是当前Web安全领域的热点。本文在对静态分析中的词法分析、语法分析、数据流分析和动态分析中的Fuzzing技术、HOOK技术作了深入研究后,结合实际场景和Web应用安全漏洞的挖掘、利用经验,提出了一种基于图遍历的Web应用安全审计系统。其中在静态分析过程中,引入了图谱构建技术,将程序源代码转化为图谱形式,构建全局的代码属性图,通过在图谱中定位危险函数和图谱遍历的方法来进行污点回溯,准确输出污点路径图。同时建立攻击向量库,构建基于污点路径的约束条件,利用约束求解来自动化生成可利用的攻击向量。在动态分析过程中,引入了爬虫技术,通过爬虫机制构建站点页面间的访问关系,进而构建Web站点的访问路径图谱。同时在比较了传统的最短路径算法后,选择使用穷举深度优先遍历算法来寻找漏洞利用路径。接着通过定义两种漏洞验证规则,从漏洞验证的结果和漏洞验证的数据流出发,两者相辅相成,共同为提升漏洞利用的成功率和准确率而努力。最后,通过实验对文中提出的方法进行了功能性测试和性能测试,验证了本文方法在漏洞检测和漏洞验证的可行性。实验结果显示,本文实现的基于图遍历的Web应用安全审计系统可以有效的检测出Web应用中的污点型漏洞,同时可以将静态结果应用到动态分析中去,将两者结合有效提升了漏洞验证的速度和准确性,并且在误报率和漏洞检测的准确率上表现良好。