基于nginx的web服务器CC攻击保护实现精品资料.doc
《基于nginx的web服务器CC攻击保护实现精品资料.doc》由会员分享,可在线阅读,更多相关《基于nginx的web服务器CC攻击保护实现精品资料.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、开题报告毕业设计题目: 基于nginx的web服务器CC攻击保护实现20本科毕业设计(论文)开题报告班 级姓 名课题名称目录:一、选题意义与可行性分析二、国内外研究现状三、研究的基本内容与拟解决的主要问题四、总体研究思路(方法与技术路线) 五、预期研究成果六、研究工作计划参考文献成绩:答 辩意 见答辩组长签名: 年 月 日系主任审核意见签名: 年 月 日一、 选题意义与可行性分析1.1 选题意义据中国互联网络信息中心(CNNIC)发布的统计报告显示,截至2010年6月底,中国网民规模达到了4.2亿,突破了4亿大关,其中大部分为年轻一代,他们每天总上网的时间也已突破10亿小时,随着网民快速增长,
2、中国地区的中文网站总数达到了363万家,中国的年轻一代已离不开网络。可是随着互联网的快速发展,CC攻击却也成为一种被广泛使用的、典型的应用层攻击,它实施简单,攻击效果显著,它是针对应用层的DDoS攻击是一种新型的DDoS攻击1。起先,拒绝服务(DoS)攻击开始可能只是为了“取乐”,或是对系统操作员进行某种报复。因此,这种情况下攻击都是有限制的行为,对网站服务器等造成的影响也是微乎其微的。但是如今,网络已经成为一种重要的交流通信平台,hacktivism(网络激进主义)越来越流行。地理政治形势、战争、宗教问题、生态等任何动机都可能成为对公司、政治组织或甚至国家的IT基础网络架构发动进攻的动机2。
3、前一段时间,拒绝服务攻击更多的是与网络游戏有关。有些玩家对在游戏中被人杀死或丢失他们喜爱的武器而感到不满,因此对游戏服务器发动拒绝服务攻击,已许多服务器在这种攻击下受到损害,瘫痪。事实上,这还不是最严重的,目前已出现通过拒绝服务攻击而达到敲诈勒索的案件。如今,越来越多的企业对网络的依赖程度呈直线上升的趋势。邮件、关键数据、甚至电话都通过网络来处理。如果没有这些主要的通信渠道,大多数公司都难以在竞争中幸存。而且,网络已成为一种生产工具。例如,搜索引擎和博彩web站点等都完全依赖网络连接。因此,随着公司直接或间接地依赖网络,犯罪分子就开始进行有目的有组织的拒绝服务攻击,迫使受害者就不得不支付“保护
4、费”3,4,5。当然,也有可能是同行业的恶意竞争,这都已成为当今互联网的一大害。1.2可行性分析如今,庞大的网民造就了中国互联网的辉煌,而如此数量的网站,都离不开web服务器。而Nginx就是一个高性能的HTTP和反向代理服务器6,7,也是一个IMAP/POP3/SMTP代理服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,它已经在该站点运行超过两年半。虽然时间短暂,但是Nginx已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。所以Nginx是一个很牛的高性能Web和反向代理服务器,它具有有很多非常优越的特性:在高连接并发的
5、情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一,能够支持高达50,000个并发连接数的响应。8Nginx作为负载均衡服务器:Nginx既可以在内部直接支持Rails和PHP程序对外进行服务,也可以支持作为HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal要好很多。Nginx的安装非常的简单,配置文件非常简洁(还能够支持perl语法),Bugs也非常好,而且启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行
6、软件版本的升级。正因为如此优秀,国内已有大量网站开始引进并在web服务器上安装Nginx。如新浪、网易、腾讯等门户网站,六间房、酷6等视频分享网站,Discuz!、水木社区等知名论坛,豆瓣、YUPOO等新兴Web2.0网站,宏博cms等建站系统网站。Nginx作为一款年轻的高性能服务器,随着它的普及,其受到CC攻击的现象也在大量增加。9二、 国内外研究现状在2005年的时候,CC的作者Fr.Qaker在国内知名网络安全技术杂志上公开了CC攻击的原理和防范方法10,这种新型的攻击方式立即引起了网络安全界的滔天大浪,虽然当时Fr.Qaker只发布了一份简单的示例代码,也就是CC1.0。此后CC攻击
7、,凭其攻击的高效性,在网上快速蔓延,针对它的防御方法也层出不穷,概括起来主要有五种,但都有自己的优缺点:1、使用Cookie认证。这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了。2、利用Session。这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号。这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么
8、影响。3、通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP11,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数。通过代码,可以生成一个CCLog.txt,它的记录格式是:真实IP(代理的IP)时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了。将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人。4、还有一个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去12。5、在存
9、在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。三、 研究的基本内容与拟解决的主要问题 本课题研究的内容为如何保护Nginx高性能服务器来自网络的安全问题,尤其是现在最热的CC攻击的防护问题。最主要的研究问题是如何找到一种优秀的算法,实现服务器对于CC攻击的保护最优化。本课题的主要解决问题有:1、熟悉在linux下的C语言开发2、Web服务器访问次数统计3、了解nginx的web服务器,反向代理实现原理4、CC攻击的实现和预防方法四、 总体研究思路针对CC攻击的保护,主要需从两个方面实施,一是CC攻击的检测,这是最重要的,因为CC攻击的链接请求都属于正
10、常请求,很难做出判定,二是对检测出的攻击进行处理。4.1 基于令牌桶算法的CC攻击检测4.1.1 令牌桶算法令牌桶算法13,14是控制网络流量中最常使用的一种算法。典型情况下,令牌桶算法用来控制发送到网络上的数据的数目,并允许突发数据的发送。令牌桶这种控制机制基于令牌桶中是否存在令牌来指示什么时候可以发送流量。令牌桶中的每一个令牌都代表一个字节。如果令牌桶中存在令牌,则允许发送流量;而如果令牌桶中不存在令牌,则不允许发送流量。因此,如果突发门限被合理地配置并且令牌桶中有足够的令牌,那么流量就可以以峰值速率发送。但是当访问请求流量突破这个门限时,则需要引起重视,因为这有可能服务器正受到攻击,比如
11、CC攻击。4.1.2 算法实现令牌桶算法的基本过程如下:假如用户配置的平均发送速率为r,则每隔1/r秒一个令牌被加入到桶中;假设桶最多可以存发b个令牌。如果令牌到达时令牌桶已经满了,那么这个令牌会被丢弃;当一个n个字节的数据包到达时,就从令牌桶中删除n个令牌,并且数据包被发送到网络;如果令牌桶中少于n个令牌,那么不会删除令牌,并且认为这个数据包在流量限制之外;算法允许最长b个字节的突发,但从长期运行结果看,数据包的速率被限制成常量r。对于在流量限制外的数据包可以以不同的方式处理:它们可以被丢弃;它们可以排放在队列中以便当令牌桶中累积了足够多的令牌时再传输;它们可以继续发送,但需要做特殊标记,网
12、络过载的时候将这些特殊标记的包丢弃。这里,我们将对超出限制外的流量进行等待处理。图1 令牌桶算法示意图4.1.3 防御策略在正常访问情况下,由于客户访问的稳定性,总体的访问流量浮动在一个相对稳定的水平上,而CC攻击将会严重破坏这种稳定性,导致流量瞬间突破峰值,我们可以设置一个定时器,当这种情况持续超过一定时间T,即判断为发生CC攻击,并启动防御策略。防御策略是对接下来的访问请求实施重定向15,16,然后再检测客户端对重定向报文的响应,若在规定时间内没有收到响应或收到响应错误,则判断该客户为攻击者,阻断其连接,直至网络访问情况恢复正常。由于CC攻击是通过代理服务器发动的请求,而代理服务器不具备正
13、确解析重定向报文的能力,因此通过重定向的方法也可以很好的过滤掉CC攻击的请求。4.1.4 总体设计这种利用令牌桶算法实现CC攻击检测的方法,其实是属于基于流量检测的范畴。在检测防御模块中,通过令牌桶算法,设定一个网络上限(上限根据网站实际访问量和服务器处理能力计算得出,即为令牌桶容量B),对所有进入流量进行控制,当访问流量超过设定上限时,则有可能收到攻击,启动安全策略。但是,实际应用中,由于上限是人为指定,存在一定局限性,有时突发事件,也会造成正常的访问在短时间内超过上限,为了排除这种误报率,在模块中,增加一个计数器t(t根据现有突发事件发生时产生的超流量持续时间计算得),只有当访问流量超限持
14、续一定时间后,才启动安全策略,这样在最大努力检测CC攻击的同时,减少了因误报造成正常访问失败的情况发生,避免对正常客户端访问的影响。当安全策略启动,并阻止攻击后,则重置t=0,检测防御模块重新正常工作。读取访问请求请求发送到服务器令牌数足够b0计数器t+5启动安全策略NYt100NY按流量减少令牌数开始结束增加令牌数b+n重置t|t-1|图2 CC攻击的检测4.2 测试环境搭建4.2.1 环境描述实验环境为一个简单的模拟站点17,三台网络服务器,系统都为Linux fedora,一台安装nginx 0.9.1 修正版作为反向代理服务器,两台安装apache 2.2 作为web服务器,提供网络服
15、务。另外设一台客户端,运行winXP系统,其作用为在测试时,实现模拟CC攻击。客户端NGINX反向代理服务器APACHE web服务器1APACHE web服务器2图3 测试环境示意图4.2.2 性能测试首先,我们在服务器上使用Webload来进行正常情况下的性能测试。它是RadView公司推出的一个性能测试和分析工具。Webload能通过模拟真实用户的操作,生成压力负载来测试web的性能。并能在测试会话执行期间对监测的系统性能生成实时的报告,这些测试结果将会通过一个易读的图形界面显示出来。然后我们在客户端安装一个超强CC攻击器,用来模拟CC攻击,并在webload上读取攻击前后的web服务器
16、的性能数据变化,从而得出基于此算法的CC攻击检测防御的实际效果示意图。五、 预期研究成果 1、通过令牌桶算法实现网络流量控制2、通过linux下C语言实现令牌桶算法3、实现对进出网络流量峰值控制4、实现及时发现CC攻击企图5、实现对CC攻击企图的防御策略6、实现web服务器在CC攻击中正常工作六、 研究工作计划计划进度:起止时间内 容2010.10.15-2010.11.30开题报告、文献综述、英文翻译上交2010.12.01-2010.12.25开题报告、文献综述、英文翻译修改,开题报告答辩2010.12.26-2011.1.10基于Nginx的web服务器环境搭建2011.01.10-20
17、11.02.10Linux下C语言算法实现2011.02.11-2011.02.28模拟实验环境并对算法进行测试2011.03.01-2011.03.26撰写论文,修改程序2011.03.27论文初稿上交,指导教师评阅2011.03.28-2011.04.02根据导师意见,再次修改论文和程序 2011.04.03-2011.04.08论文定稿上交,评阅教师评阅2011.04.10论文答辩参考文献 1 P. Ferguson, D. Senie. RFC 2267, Network Ingress Filtering: Defeating Denial of Service Attacks wh
18、ich employ IP Source Address Spoofing. Cisco Systems Inc., BlazeNet Inc, January 1998. Page(s):61 - 622 嵇海进. DDOS攻击的原理及防御对策J. 科技信息, 2009(28), 2313 孙知信, 李清东. 路由器端防范DDos 攻击机制综述J. 南京邮电大学学报, 2007, 27(1), 89 - 964 严芬, 王佳佳, 赵金凤等. DDoS 攻击检测综述J. 计算机应用研究, 2008, 25(4), 966 - 9695 Xiang Yang, Zhou Wanlei, Li Z
19、hongwen. An Analytical Model for DDoS Attacks and DefenseC. Computing in the Global Information Technology, 2006. ICCGI 06. International Multi-Conference on Aug. 2006 Page(s):666 张宴. 实战Nginx:取代Apache的高性能Web服务器M. 北京: 电子工业出版社, 2010, 37 郭欣. 构建高性能Web站点M. 北京: 电子工业出版社, 2009, 88 Zhijun Wu, Zhifeng Chen. A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于nginx的web服务器CC攻击保护实现 精品资料 基于 nginx web 服务器 CC 攻击 保护 实现 精品 资料
限制150内