我现在坐在一个烟雾弥漫的网吧里,键盘上满是烟疤,在这种环境里写东西心情自然也好不到哪里去。所以如果写的不好还请各位包含。这个想法是在百无聊赖中憋出来的,这种设想中系统的建立可能会大大降低组织一次DDoS攻击, 尤其是CC类的DDoS攻击的难度, 这种攻击更难以追踪。
“掩体跑道”体系是一种美国于冷战时期发展出来的用于掩藏洲际导弹发射位置的方案,后来因为消耗过大和一些政治原因而夭折。它的基本原则是载有洲际导弹的发射车在一个相当于某个州面积的跑道迷宫中行驶,并与随即位置发射导弹,这样可以防止被苏联人反击,减少洲际导弹发射设施核导弹本身的损失。
CC攻击的弱点在于容易被回溯到攻击发起者的真实地址,而解决这个问题不能像SYNFlood那样可以伪造源数据包;另一个问题是要组织一次大规模的DDoS攻击需要相当长时间的筹备(除非你有红客联盟那么多喽罗……)。我们就可以借助掩体跑道这样的体系来进行源迷惑,这种组织方式当然也同样适用于SYN Flood等(技术上说这也是一种CC攻击),用利用类似P2P的结构,我们有一台中央服务器-CS,攻击终端我们称之为AA1 to AAn。具体流程是这样的:
1 . 攻击终端 AA1 向 CS 发送 任务请求 (包括目标IP, 端口, 以及其他攻击需要的信息)
2 . CS 记录 AA1 的 任务请求 为 T1
3 . AA2-AAn 按照制定的间隔时间下载 CS 上新的任务信息
4 . AA2-AAn 将 T1 加入任务列表
5. AA2-AAn 连接各自不同的代理开始对 T1 发起攻击
6 . AA1必须保持开启以为其他的AA提供攻击能力
由于并不是每一个攻击终端都请求任务,所以攻击能力要比单机效果好,更难追踪,也不需要肉鸡,因为P2P的基本概念是接受服务业提供服务 AA即是控制器,也是Zombie。写到这里我自己的都觉得这没有什么意思,不论是CC也罢, SYN Flood也罢,翻来覆去都是那么回事。可能这文章可以给缺钱的朋友带来一点商机吧,有发财的机会不要忘了我,我已经在崩溃边缘了。
另附上一点对HTTP协议中 Connection 的研究
早期的HTTP协议中是没有Connction这个字段的,完全的Statusless,就是一次请求一次应答就拉倒关闭。后来因为HTML开始支持各种媒体的嵌入,需要从同一个服务器下载文件的时间密度越来越大,statusless也变得不那么效率了。这个时候一个新的字段: Connection就被引入了,当请求中Conection字段被设置为"Keep-alive"的时候,服务器就不会关闭连接,继续接受客户端的请求。
但这种连接并不是说客户端详要练到什么时候就连到什么时候的,有的服务器不接受Keep-alive, 就会返回一个包含Connection:Close的字段应答并终止连接,还有的服务器则会给出一个Keep-Alive字段并设置一个timeout在指定秒数到达后终止连接(一个新请求将导致计数重新开始)
与Conection相关的可能还有Proxy-Conection. 这个字段也接受Keep-Alive和Close两种值,他指定了HTTP客户端和Proxy之间的连接状态。假设请求种同时包含Proxy-Connection和Connection两个字段Keep-Alive,不同的Proxy会有不同的处理方式,设计完善的Proxy会在Clinet Dsiconnect之后自动断开与HTTP Server的连接,而有的则不会,或者会设定一个超时值,这种Proxy经常被利用来进行CC攻击(不过我个人觉得已经很少见了,至少跟匿名SMTP一样少见)
