论文部分内容阅读
随着互联网和Web2.0的发展,Web应用越来越普遍,深入人们的生活。但在给我们带来便利的同时,Web应用也伴随着巨大的风险。各种Web漏洞威胁着Web应用及用户数据的安全。其中,跨站脚本漏洞由于数量众多、形式多样且危害严重,位列OWASP Web漏洞排行榜第三名。一旦被攻击者利用,跨站脚本漏洞可以导致用户隐私泄露、用户会话劫持、网页钓鱼挂马等一系列严重后果。多年以来,学术界和工业界一直都致力于跨站脚本漏洞的检测防护等方面的研究,取得了很多进展。但是由于跨站脚本漏洞形式多变防不胜防,加上针对Web应用的程序分析技术的局限,跨站脚本漏洞的检测仍然面临着很多挑战。本文围绕白盒检测和黑盒检测两方面,分别从输入点选取和漏洞利用生成两个阶段作为切入点,主要工作与创新点总结如下:第一,针对浏览器扩展的特殊性,提出了一种引入了DOM作为新的攻击面的漏洞类型,即源于DOM的跨站脚本漏洞。同时针对该漏洞,提出了一种结合静态分析和动态分析的检测框架。该框架利用文本过滤、AST解析等轻量级静态分析技术进行初步筛选,利用影子DOM扩展动态符号执行对于结构化DOM文档的支持,并能够生成漏洞利用的DOM文档。从现实世界的浏览器扩展Greasemonkey的用户脚本中,我们成功地检测出了58个源于DOM的跨站脚本漏洞,潜在影响用户数达到676,174。第二,针对Web应用中广泛存在的正则表达式问题,提出了一种面向正则表达式增强的跨站脚本漏洞检测技术。该技术通过扩展约减规则,增强了现有技术对于边界、反向引用、断言等一系列高级正则表达式特性的支持;通过引入更具有表现力的正则表达式约束描述语言,简化了对于正则表达式的描述和表达;通过“延迟生成”、“按需展开”等一系列优化措施,提高了正则表达式相关约束的求解效率。第三,针对污点推断过程中受到的URL重写和HTML净化的影响,提出了一种借鉴生物信息学的基因序列比对技术的跨站脚本漏洞污点推断技术。通过局部序列比对解决了Web服务器URL重写对URL输入带来的问题,利用空位罚分机制缓解了Web应用HTML净化措施对HTML输出造成的影响。这些措施使得污点推断在这两种场景中的准确率和精度得到了有效的提高。第四,针对现有黑盒跨站脚本漏洞扫描器对于人工知识的依赖问题,以及现有基于机器学习脚本漏洞检测技术的误报问题,借鉴自然语言处理领域生成式智能问答系统的解决方案,提出了一种基于序列到序列模型的跨站脚本漏洞检测技术。通过将跨站脚本漏洞检测问题建模成序列到序列模型,生成可验证的漏洞利用攻击载荷,从而消除了误报。通过采用引入注意力机制的编码器-解码器框架,其中编码器解码器均采用数据驱动的长短期记忆循环神经网络,从而摆脱了对人工知识的依赖,根据不同的上下文有针对性地生成攻击载荷。我们的方法有效提高了跨站脚本漏洞的检测率和检测效率。