网站首页 > 资源文章 正文
CC攻击原理及防范新思路
1. CC基本原理
CC攻击利用代理服务器向网站发送大量需要较长计算时间的URL请求,如数据库查询等,导致服务器进行大量计算而很快达到自身的处理能力而形成DOS,而攻击者一旦发送请求给代理后就主动断开连接,因为代理并不因为客户端这边连接的断开就不去连接目标服务器,因此攻击机的资源消耗相对很小,而从目标服务器看来,来自代理的请求都是合法的。
2. 以前的方法
为防范CC,以前的方法一个是限制每个IP的连接数,这个在地址范围很广阔的情况下比较难实现;二是限制代理的访问,因为一般的代理都会在HTTP头中带X_FORWARDED_FOR字段,但也有局限,有的代理的请求中是不带该字段的,另外有的客户端确实需要代理才能连接目标服务器,这种限制就拒绝了这类合法客户。
3. 新思路
CC有效性在于攻击方不接受服务器回应的数据,发送完请求后就主动断开连接,因此要确认连接是否是CC,服务器端不立即执行URL请求命令,而是简单的返回一个页面转向的回应,回应中包含新的URL请求地址,如果是正常访问,客户端会主动再次连接到转向页面,对用户来说是透明的;而对于CC攻击者,由于不接收回应数据,因此就不会重新连接,服务器也就不需要进行查询操作。
4. 具体实现: CC cookie
具体实现的关键在于转向的URL如何构造,我设计的方法是增加CC cookie,即在原URL请求的最后面添加一个独一无二的cookie,文本形式,作为URL的一部分;当包含该cookie的URL重新返回时,先检查该cookie是否合法,如果合法,则说明该URL是合法的再次连接,将URL中的cookie部分抹去,恢复为原始的URL请求再发给服务器进行正常访问;否则拒绝该URL。
5. 安全性考虑
为保证此方法的有效,需要注意以下问题:
1)cookie的选择,要对每个URL请求都不同,即使URL是相同的,有两种方式,一种是根据所请求的URL和客户端的信息和一些随机信息计算出一个cookie值,检验时按相同的方式计算cookie是否符合;第二种方式是直接随机生成cookie,然后将cookie保存到一个库中,检验时就是检查客户端提交的cookie是否在库中。无论哪种方法,cookie的选择必须足够随机,不能被猜出计算规律或猜出当前cookie库中有哪些cookie;
2)cookie添加到URL时的格式标志必须独特,不能和正常URL请求中有冲突的地方,这个应该是可以控制的,因为要保护的服务器是在自己控制之下的,URL有哪些格式是可控的,因此设计一个独特的cookie标志是可行的,而且这个标志格式应该经常变换;
3)cookie的有效时间,cookie只在一定时间内有效,超时将删除,时间选择必须合适,不要太长或太短;
4)cookie dos攻击,如果CC攻击程序发现服务器用了cookie保护而中预先带了cookie,必须能比较快速地检测这个cookie是否合法,对于非法cookie的连接请求丢弃;cookie标志也要经常变换以防止DOS;
5)提高效率方法,对于HTTP/1.1的连接,有keep-alive选项,一个连接中可以进行多次URL请求操作,对于已经认证了的连接,如果该连接中继续有URL请求的话,可以不用再进行cookie认证以提高效率;此外,应该可以指定只对某些类型的URL进行cookie处理,如cgi、php、asp的请求,而普通静态文本或图片、媒体等URL不用进行cookie处理。
6. 结论
本文提出的这种CC cookie防御方法可以有效防御CC攻击,而不会影响正常用户的访问,对用户来说是透明的。本方法比较适合在防火墙上实现,也可以由服务器本身实现。
猜你喜欢
- 2024-09-09 什么是双子座扩展?让谷歌的聊天机器人比ChatGPT更智能
- 2024-09-09 微信公众号开发获取微信用户openid及访问url身份认证方式
- 2024-09-09 生产环境url告警检测--通过curl来获取http各阶段时间
- 2024-09-09 虚拟主机可以安装宝塔吗?(虚拟主机可以安装宝塔吗)
- 2024-09-09 SEO必知:如何将顶级域名做301重定向到www二级域名
- 2024-09-09 网站页面绝对路径相对路径有哪些优缺点?
- 2024-09-09 nPlayer Plus| 付费软件已购共享(nplayer付费版分享)
- 2024-09-09 Java面试笔试必考题总结(java面试题整理)
- 2024-09-09 教学笔记:HTTP状态码之300段系列码
- 2024-09-09 nginx实现url重写实例参考(nginx url重定向)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)