Web应用自动修复

简介

研究表明,bug对于流行软件非常常见,无论是操作系统还是应用程序中bug的数量达到了一个惊人的数量。无论是系统级的Bug还是应用级的bug,都可以恶意的利用,制作相应的exploit盗取/篡改信息,从事诈骗活动或者单纯的恶作剧。因此,无论从用户隐私信息安全,或是用户的互联网体验满意度还是用户财产安全角度出发,能否快速高效的修复bug是一个至关重要的问题。

软件工程领域已经有针对C、Java等语言的自动patch方法。这些方法的流程:首先,根据已有patch先验的抽象出一些修复模版;第二,利用测试案例定位bug出现的大致位置;第三,使用修复模板对bug进行尝试性的修复(类似于穷举);最后,进行适应性评估。这些方法能在一定程度上修复C、Java等语言中的一般性bug。

针对Web应用的安全性bug,高效准确的对其进行修复,并且确保这样的修复不会给程序带来二次bug。通过参考基于模板的修复方式,我们会对Web安全漏洞进行统计分析,这一阶段会尝试一些自动化的方法;然后根据分析安全漏洞相应的patch,抽取出一些常见的模板。由于Web应用中的脚本语言与C和Java等语言存在差异,如何对Web应用进行错误定位是一个关键的问题。