cdn流量放大攻击思路-囧思九千.pdf

cdn流量放大攻击思路-囧思九千.pdf

ID:48058166

大小:453.58 KB

页数:3页

时间:2019-10-16

cdn流量放大攻击思路-囧思九千.pdf_第1页
cdn流量放大攻击思路-囧思九千.pdf_第2页
cdn流量放大攻击思路-囧思九千.pdf_第3页
资源描述:

《cdn流量放大攻击思路-囧思九千.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、原文地址:http://drops.wooyun.org/papers/6790x00背景大家好,我们是OpenCDN团队,专注于CDN技术的开发和研究。首先,为了对CDN进行攻击,我们必须清楚CDN的工作原理,这里我们再来简单介绍一下CDN的工作模型。CDN的全称是ContentDeliveryNetwork(内容分发网络),通过在网络各处的加速节点服务器来为网站抵挡恶意流量,把正常流量进行转发。用简单点的话来说,CDN一般有三个作用1.跨运营商加速:我们自己的网站常常只属于一个运营商(比如:电信),而加速节点遍布每家运营商,于是和网站不同运营商(比如:联通)的用户

2、访问起来就不会那么慢了。2.缓存加速:很多的静态资源以及一部分页面更新都是比较慢的(比如首页),这个时候CDN就会根据浏览器的max-age和last-modified值以及管理员的预设值来进行缓存,于是很多流量CDN节点就不会每次都来向网站请求,CDN节点可以直接自作主张地3.恶意流量过滤:这是CDN非常重要的一个作用,也是很多网站会用CDN的原因,因为CDN能为我们抵挡攻击大流量攻击、普通的攻击(比如注入等),只有正常流量才会转发给网站。这里还要说明几个名词:源站:我们自己的那个网站就被称为是源站。反向代理:CDN节点向源站请求数据的方式就叫反向代理,也就是上文所

3、说的转发。回源:CDN节点向源站请求数据的行为就叫做回源。0x01探究之旅我们在做OpenCDN测试的时候,遇到了一些小问题。发现一个没有人访问的网站居然会有流量,并且有着惊人的访问次数。我们的OpenCDN有2分钟一次的反向代理检测,但是这次数加起来也就区区的720次,而这400万的访问次数是哪里冒出来的?然后我们查看了日志,发现单个域名的日志到达了58G之多,而将其打开之后发现X-Forwarded-For字段中(X-Forwarded-For机制是通过一层代理后记录一个IP,让源站在使用CDN后能够获得真实的访客IP而不是CDN节点IP)充斥着大量有的IP,而且

4、都是本服务器IP。我们瞬间明白了什么,然后去管理端上验证了一下,果不其然地,我们一不小心把源站IP设成了CDN节点的IP,不过当时我们并没有发现。于是这么大的流量也好解释了,由于2分钟一次的检测触发CDN节点的回源,而这个站点的源站是CDN节点本身,于是CDN就开始不断自身反向代理死循环,这样一个请求就被无限地放大了。当超时或者HEADER太大(就是X-Forwarded-For字段导致HEADER溢出)的时候,请求会被丢弃。把站点的源站IP设为CDN节点本身,能够让CDN节点进行自我的反向代理死循环,然后放大流量。貌似有点意思,小伙伴们于是马上就行动起来了,进行了实

5、验。我们在安全宝上成功地将源站IP设置成了某个为我们加速的CDN节点IP,然后在美帝的一台小vps上开webbench用2000个线程去打这个这个站点(无论是哪个CDN节点收到请求,请求最终都会汇聚到那个无辜的被设源站的CDN节点),不过实验结果并不理想,节点没有宕机,通过IP反查找到一台和我们公用一个CDN节点的网站,通过这个CDN节点反向代理访问那个网站,出现了卡顿和打不开情况,仅此而已。由于没法采集到安全宝的这个节点的性能数据,我们也没法对我们的攻击做出评估。而且我们这个实验缺少了一个对照组,到底是因为死循环把流量放大导致CDN节点卡顿,还是这个2000线程本身

6、就能把CDN节点打卡。于是我们总结了一下,猜想这种节点反向代理自身的攻击手法可能可以适用于这样的场景你想要攻击某个CDN节点,但是如果打404页面消耗不了太多,而如果打CDN中的某个站点,因为流量会穿透过去,可能还没有把CDN节点打掉,背后的站点早被穿透死了。这个时候,如果让节点进行自身反向代理死循环,他就会把所有的流量给吃进去,并且没不过话说回来,这种攻击的防御方式也异常简单,只要在设置源站IP的时候,不让设置CDN节点IP就行了,只要在网站前端交互输入的时候加点验证就行了。我们考虑到我们没法对不是我们的CDN节点的带宽上限,性能上限有个很好的评估,黑盒式的摸索可能

7、带来不了什么,于是我们拿我们自己的CDN节点开刀。同时我们继续对这个思路进行探索。我们发现,既然一个节点能死循环,那两个节点怎么样?结果是肯定的,并且产生了质的变化。我们假设了这样的一个场景我们的opencdn.cc在甲CDN服务商注册服务,并且在乙CDN服务商注册服务,然后我们得到甲CDN服务商的一个CDN加速节点1.1.1.1,然后又得到乙CDN服务商的一个CDN加速节点2.2.2.2。然后聪明的你一定已经猜到了。我们把在甲CDN服务商设置源站于是我们也进行了实验。这次我们采用POST包进行测试。用POST包的原因有两个1.CDN节点是会有缓存机

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。