让子弹多飞一会:如何优化DDoS 8090安适门户
假设1枚炮弹击中方针的伤害为10,而4枚炮弹同时击中方针的伤害为200。此刻我方只有一门火炮,4枚炮弹。此火炮每次只能发射一枚炮弹。问如何操纵可以使其伤害到达200?
答案是”让子弹多飞一会儿”,不过这个回答不是来自姜文的影戏,而是源于美军在二战中提出的 MRSI (Multiple Rounds Simultaneous Impact)技术,粗拙的翻译一下就是“发射多次却同时命中”。
我们知道炮弹飞翔的时间取决于开炮时的发射仰角,好比仰角大于45度时,炮弹的飞翔的长度和时间比仰角小于45度要长。那么我们就可以给与MRSI 技术,以从大到小的发射仰角,持续发射4次。这样第一次发射的炮弹飞翔时间最长,最后一次发射的飞翔时间最短。只要我们精确的计算好角度和发射的时间间隔,就有可能让4枚炮弹同时击中方针,从而造成200的伤害。
简而言之,就是操作炮弹的飞翔时间差来弥补发射的间隔时间。
Ryan Rasti在Temporal Lensing and its Application in Pulsing Denial-of-Service Attacks一文中提出了一种操作网络延迟来增强DDoS打击效果的要领。以DNS放大打击为例。假设打击者选择了两个DNS 处事器(A和B)来打击方针, 已知A到方针的网络延迟为110毫秒,B到方针的网络延迟为40毫秒。而打击者到A和B的延迟忽略不计。那么打击者可以先给A发一个假冒的DNS请求,让A反射方针。略等70毫秒以后(110-40=70毫秒),打击者再发给B请求,让B反射方针。这样,虽然打击者的两个DNS请求不是同时发出的,但是反射出来的打击动静却可以同时击中方针。如下图所示
这么做的好处是什么呢?固然是提高了DDoS的效率,打击者的发报率是1包/70毫秒,而在某个时间点却有2个反射包击中方针。这相当于巧妙的操作了网络延迟而把所有的打击包汇聚在某一个特定的时间点上。例子中只用到了2个DNS处事器,但是在实际打击中,可以扩展到n个。打击方法也不只限于DNS放大打击,用http 代办代理的CC打击也可以。
优化过的DDoS法式是
1.假设有n条线路(取决于具体的打击要领,可能有n个DNS处事器,n个http代办代理等等),打击者先丈量出每条打击路线的延迟, 对应记为 (L1,L2,…,Ln)。
2.从(L1,L2,…,Ln)中找出最大延迟,记为Lmax
3. 对付路线i(1≤ i ≤n),打击者在发送前须期待 Lmax-Li
普通的DDoS是拼命打,有几多打几多。这样的功效是数据包击中最终方针的时间是平均漫衍的,如下图所示
而优化过的DDoS应该是这样的
然而为了告成的优化DDoS,我们还必需得解决一个首要问题,如何丈量网络延迟。 对付HTTP CC类打击来说对照简单,打击者配制好代办代理,对打击方针发一个http请求,接收http响应,就可以得到请求往返时间,然后用这个请求往返时间来估算网络延迟。固然,在实际情况中,网络延迟取决于很多因素,还需要用差此外要领降低噪音带来的影响,好比多次丈量取平均值等等。
对付DNS放大打击,一般用King丈量法。好比打击者(A)筹算用DNS处事器D来打击方针T。然而,直接丈量 A颠末D到T的网络延迟 (LADT)是很难的。但是,我们可以操作DNS递归盘问的特性,丈量出 A颠末D到T的DNS处事器 的网络延迟(LADT(DNS))。要领是让A对D发一个关于T域的DNS盘问,在这种情况下D会向T的DNS处事器递归盘问。从而该打击者可以用此DNS请求往返时间来估算LAT(DNS)。一般来说, DNS处事器都在离其他处事器很近的处所,延迟分歧可以忽略不计,因此LAT ≈ LAT(DNS) 。
好比打击者筹算操作google DNS (8.8.8.8)来打击test.com的web 处事器。为了优化,打击者需要先知道他到8.8.8.8再到test.com web处事器的延迟。怎么计算延迟呢? 打击者可以给8.8.8.8发送一个DNS盘问:[随机子域].test.com 。由于8.8.8.8 并不卖力test.com子域名,它只能递归询问test.com的DNS处事器。test.com的DNS处事器收到该询问以后,会进行本地记录盘问。因为该子域是随机孕育产生的,所以必定会返回找不到啦,8.8.8.8收到回答以后,会再把这一回答继续转发给打击者。这样打击者就可以计算出他到8.8.8.8再到test.com DNS处事器的延迟。由于一般DNS处事器都在离WEB处事器很近的处所,因此可以推算出到8.8.8.8再到test.com web处事器的延迟。
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/12620.html