论文部分内容阅读
Web 2.0时代的到来,人们在享受Web应用带来便利的同时,安全问题却显得日益突出。大部分Web应用都存在安全漏洞从而为攻击者提供了新的攻击层面,敞开了一扇方便攻击的大门。传统安全设备如网络防火墙、入侵检测系统只能保护开放系统互连(OSI)参考模型的较低层,并不能有效防御应用层的攻击。Web应用的核心安全问题是用户可提交任意输入,而大部分Web应用开发者对应用安全并不了解,对用户输入的数据没有做有效过滤,从而攻击者可以绕过传统的安全防御措施,直接将恶意代码注入到Web应用中,通过Web应用执行这些恶意代码实现操控数据库、更改文件系统、执行系统命令,最终甚至可以控制整个应用系统。Web应用防火墙通过在应用层设置安全规则来弥补传统安全设备的缺陷,是解决当前日益严峻的Web安全的最有效方法。本文首先深入分析了主流的Web攻击技术及相应的防御策略,总结了常见Web应用的编码方式并提出了一些绕过现有防御措施的变种攻击技术。在此基础上提出了一个Web应用防火墙的整个系统架构和具体实现方式。Web应用防火墙主要由核心引擎、管理模块和数据库三部分组成。其关键部分是核心引擎,由预处理模块、检测模块、输出过滤编码模块和日志审计模块组成。通过预处理模块实现SSL解码和输入编码及字符集的归一化,达到解密HTTPS流量与阻止各种变种攻击的目的。检测模块通过使用新型过滤规则来防止各种恶意输入如SQL注入等,使用URL规则实现细粒度的访问控制和增加会话管理模块来修复Web应用系统中可能出现的会话管理漏洞与防御应用层DDOS攻击。输出过滤编码模块通过自定义关键字防止敏感信息泄露,并且实现轻量级的HTML解释引擎对输出的恶意HTML标签和其属性进行安全编码,阻止各种跨站攻击。最后通过单向散列函数和消息鉴别码实现日志审计系统的完整性与一致性保护,便于日后分析与取证。Web应用防火墙系统使用Python实现,通过使用该Web应用防火墙对一典型Web应用漏洞框架进行防御,在部署Web应用防火墙之前与之后分别对漏洞框架进行模拟漏洞攻击和模拟应用层DDOS攻击。实验结果表明该Web应用防火墙可以有效地阻止主流Web应用层的恶意攻击及其变种,而正常的Web流量可以顺利通过,有效地保障了Web应用的安全。