让子弹多飞一会:论如何优化DDoS

本文讲的是 : 让子弹多飞一会:论如何优化DDoS   ,  【IT168 评论】假设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服务器的延迟。

  为什么查询的时候要使用随机子域呢?是为了防止查询结果被cache缓存。如果查询结果被缓存了,那么DNS服务器就不递归查询了,从而导致测量结果不准确。

原文发布时间为:2015年7月6日

本文作者: nickchang

原文标题 :让子弹多飞一会:论如何优化DDoS

时间: 2024-09-30 10:32:43

让子弹多飞一会:论如何优化DDoS的相关文章

子弹终于飞临沪上人见人夸姜文反不踏实(图)

姜文在上海见面会上谈笑风生. 本报实习生 张瑞麒 记者 马骏 摄 12月16日上映 姜文执导的新片<让子弹飞>将于12月16日正式登陆贺岁档,继日前在北京成功举办超盛大首映后,姜文昨天带着刘嘉玲.葛优.胡军.张默等主演亮相上海.自信<让子弹飞>弹无虚发的他称:"人人都夸,我不踏实,必须有几个不喜欢的,在里面假装睡觉."此外,姜文还号称要赶拍<让子弹飞3>,他笑称葛优饰演的汤师爷其实并没有死,有望安上假肢在上海滩上复活. 本报见习记者 杨欣薇 爱自恋

HTML5实现经典坦克大战坦克乱走还能发出一个子弹

在上篇文章中为大家介绍了如何使用HTML5实现一个可以移动的小坦克,而在本文将带领大家进入坦克大战,喜欢HTML5的朋友可不要错过了哈     复制代码 代码如下: <pre name="code" class="html">tank.html</pre><pre name="code" class="html"><!DOCTYPE html> <html> <

Win8终极优化教程-让你的Win8飞起来

系统优化,是安装系统后和日常的电脑使用中必不可少的一项工作,随着Windows8的发布,不少人都用上了这个具有革命性的新系统,本帖就是针对Windows8系统量身定做的一个优化教程,去其糟粕取其精华,让你的电脑运行如飞!! 服务项优化篇 本篇仅列出了可以禁用的服务,未列出的请勿改动,另外由于个人需求不同,所列出的服务也请各位认真阅读,防止禁用了自己所需要的服务. Application Layer Gateway Service Windows XP/Vista/7中也有该服务,作用也差不多,是

如何优化Windows7系统保持运行速度一直如飞

  如何优化Windows7系统保持运行速度一直如飞          一.系统服务项优化 1.点击开始菜单--搜索框中输入"服务"两个汉字,或者输入 Services.msc 回车; 2.Windows7里面有很多服务项目,有很多使我们平时用不到的,或者根本接触不到的服务,根据自己的需要来禁用某些服务,不清楚的可以查看一下后面的描述,或者百度解决. 二.磁盘清理"windows.old"等文件 很多朋友在安装Windows7之前并没有对系统盘进行彻底的格式化,这种

HR SaaS如何黏住用户?企飞要从财税优化等刚需服务切入

人力资源SaaS我们报道过很多,大多从薪资发放.社保代缴.绩效管理中的某个单点切入,再延伸至各种与HR相关的工具,搭建一整套泛人力资源的服务.比如,从社保切入的51社保.金柚网.社保通,从薪酬切入的易路.微知.薪人薪事.薪朋.知人等.今天介绍的企飞也是一家从薪酬管理切入的HR SaaS. 薪酬管理分两部分,计算和发放.企飞通过跟第三方薪酬公司合作,帮助企业完成自动化复杂算薪.但单纯的人力资源服务SaaS很难切入刚需,因为对老板来说,用人做或者用软件做并没有明显的成本差异,只有深度服务才能黏住用户

利用photoshop打造酷炫的人物特效

  本教程的目的当然不是让你欣赏楚楚动人落雁沉鱼的异国美女,而是教你如何用看起来很糟糕的笔刷.一系列图片以及图层调整制作生化大片中的场景. 本教程难度三颗星,中级,不过其中有一些小技巧还是非常有用了,快来试试吧~ 注意: 本教程基于PS CS6,因此一些截图与之前的版本略有不同,个别笔刷也仅供CS6版本使用. 最终效果: 教程所需素材下载: Model by ~tigersgirl Flag City Building Grunge Brush Cloud Brush Step 1 新建一个文件

PS教你打造酷炫的人物特效

  注意:本教程基于PS CS6,因此一些截图与之前的版本略有不同,个别笔刷也仅供CS6版本使用. 最终效果: 教程所需素材下载: Model by ~tigersgirl Flag City Building Grunge Brush Cloud Brush Step 1 新建一个文件,大小为1290*700像素,背景为黑色.再新建一个图层,用grunge笔刷(素材中的第四个)随意的在背景中画几笔. 在PS中打开美女的照片(素材中的第一个),用快速选择工具选出美女,如下: 将其复制粘贴到我们的

Html 5 坦克大战(韩顺平版本)

html 5代码部分如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body onkeydown="getCommand();"> <h1>hmtl5-经典的坦克大战</h1> <!--坦克大战的战场--> <canvas id="tankMap"

SpriteBuilder中使用Node类型的ccb动画节点删除时崩溃的问题

因为节点需要呈现动画效果,虽然只有两个不同帧. 在SpriteBuilder中新建Bullet.ccb文件,类型为node. 添加如上2张图片,并制作动画效果帧. 在游戏中子弹遇到障碍物会被删除,时机是随机的.子弹在飞出屏幕时也会被删除. 实际运行App会发现必定崩溃,在子弹随机删除几秒后. 发现Xcode总是中断在动画管理器(CCAnimationManager)中,遂将Bullet.ccb的动画效果删除,没有问题了. 因为Bullet的类型是Node,其self.userObject总为ni