Web的入侵防御系统的设计与实现
摘 要
Web服务器往往得不到传统防御方式的有效保护,使其成为整个网络环境中安全最薄弱的地方。缓冲区溢出、SQL注入、基于脚本的DDos、盗链和跨站等攻击行为对Web服务器的安全和稳定造成极大的威胁,而目前缺少有效的防御和保护的方式。本课题中首先调研了当前Web服务器所面对的威胁,然后针对这些安全威胁设计了一套入侵防御系统,并通过ISAPI实现了对Windows平台下的IIS服务器的保护。在这套入侵防御系统中,可以通过制定策略来检测所有访问Web服务器的行为,可以有效地阻止恶意攻击从而保护Web服务器的安全。这套入侵防御系统的策略引擎可以加载和调用Lua语言编写的策略脚本,使策略脚本的编写更加简单。http://www.16sheji8.cn/
关键词: 入侵防御;网络安全;ISAPI;Lua
Design and Implementation of Web Intrusion Prevention System
Abstract
Web server can not often get the effective protection of traditional defense mechanism, makes it become the weakest area in the whole network. The attacks, such as Buffer overflow, SQL injection, DDos based on script, Resource steal and Cross-site, cause the great threat to the security and stability of Web server, and lack effective defense and protection way at present. This paper introduces the different attack ways to a Web server at first, then designs an intrusion prevention system for the Web server and implements the protection of IIS server under Windows platform through ISAPI. The intrusion prevention system can measure the behaviors of all visiting Web servers through the strategies and protect the Web Server against the malicious attacks. The security strategies engine of the system can load and transfer the strategy scripts written in Lua language, It make strategy scripts writing more simpler.http://www.16sheji8.cn/
Key words: Intrusions prevention; network security; ISAPI; Lua
目 录
论文总页数:20页
1 引言 1
2 Web服务器所受的威胁及防御 1
2.1 缓冲区溢出 1
2.2 SQL注入攻击 1
2.3 基于脚本的DDos攻击 2
2.4 其他的不安全因素 3
3 Web的入侵防御系统的设计 4
3.1 体系结构 4
3.2 处理流程 5
3.3 对客户端访问的响应 7
3.4 策略引擎的设计 8
3.4.1 策略的属性 8
3.4.2 策略的加载 9http://www.16sheji8.cn/
3.4.3 策略的调度 10
3.4.4 策略的接口 10
4 Web的入侵防御系统的实现 11
4.1 基于ISAPI 的解析及响应模块的实现 11
4.1.1 使用ISAPI Filter获取Http报文信息 11
4.1.2 使用ISAPI进行Http响应 13
4.1.3 在服务器上的安装配置ISAPI Filter 14
4.2 基于Lua的策略实现 15
4.2.1 对策略的封装 15
4.2.2 Lua策略脚本示例 15
4.3 基于xml的策略管理 16
5 系统运行过程及测试 16
结 论 18
参考文献 18
致 谢 19http://www.16sheji8.cn/
声 明 20
1 引言
连接入互联网中的每一台服务器每时每刻都会受到来自病毒蠕虫的侵扰和黑客的入侵。目前,很多针对Web服务器的攻击都是通过Http协议发起的,所以传统的防火墙对诸如SQL注入这种攻击方式不能提供很好的保护。在很多网络环境中,正是由于Web服务器同时对内部网络和外部网络提供服务,使其成为整个网络中最常被攻击的目标。恶意的攻击者往往通过Web服务器上的突破口,来进一步对内部网络进行渗透。所以,Web服务器的安全显得尤为重要。http://www.16sheji8.cn/
本课题的首先对Web服务器所受到的威胁及相应的防御方式做了一些调研,然后针对Web服务器所受的这些威胁设计了一套专门针对Web服务器安全的轻量级的入侵防御系统, 并通过ISAPI实现了Windows平台环境下保护IIS服务器的系统。这套系统通过策略来控制访问Web服务器的行为,它的策略引擎可以加载Lua脚本编写的策略,所以策略的编写十分容易。通过对这套系统的运行检测可以发现它能有效的保护Web服务器的安全。
2 Web服务器所受的威胁及防御
Web服务器在互联网环境中会遭受格式各样的安全威胁,下面列出的是一些当前主流的针对Web服务器的攻击方式,它们有的会导致服务器被非法控制,有的会使服务器无法提供正常的服务,而有的甚至会对访问者的机器造成破坏。
2.1 缓冲区溢出
缓冲区溢出[1]主要是因为Web服务器程序对客户端提交的数据缺少安全必要的长度检测,服务器程序的堆栈被恶意数据填充,导致服务器程序执行非法的指令或产生拒绝服务。如曾经造成十分大危害的蠕虫“红色代码(Red Code)”和“尼姆达(Nimda)”都是利用IIS的缓冲区溢出的漏洞而传播的。目前,缓冲区溢出是很难杜绝的,因为Web服务器程序开发的测试阶段无法对所有客户端可能提交的数据进行测试,所以不能确保Web服务器程序完全没有缓冲区溢出威胁的存在。
因为Web服务器程序提供专有的HTTP服务,所以我们可以通过HTTP协议确定客户端提交数据中每个字段的长度的合理范围,通过对所有用户提交的数据都进行严格的长度检测是对缓冲区溢出攻击的有效防御方式。http://www.16sheji8.cn/
2.2 SQL注入攻击
SQL注入攻击[2]是近几年非常流行的攻击方式。对一个内部网络的渗透往往是从Web服务脚本入手(如ASP,PHP等),而SQL注入漏洞通常是Web服务脚本中最容易找到的。目前互联网上仍然存在很多有此风险的服务器。
SQL注入同样也是对客户端提交的数据没有进行必要的检测过滤造成的。构造特殊的数据提交到存在此缺陷的Web服务器上后,可以导致恶意的SQL语句注入到Web脚本的SQL调用中,从而泄露敏感信息或者执行威胁的SQL指令。无论是何种Web脚本语本语言或何种数据库,如果编码人员缺乏相关的安全意识,都可能会导致此缺陷的存在。
目前对SQL注入攻击提出的防御方案有:http://www.16sheji8.cn/
(1) 在服务端正式处理之前对提交数据的合法性进行检查;
(2) 封装客户端提交信息;
(3) 替换或删除敏感字符/字符串;
(4) 屏蔽出错信息。