浅析CDN安全
目前CDN技术到处可见。像网宿、蓝讯、加速乐等都依靠CDN过活,连安全宝也都使用了CDN技术,当然很多域名空间商现在也提供CDN服务。从以往互联网的发展上看,CDN是个趋势,很多厂商也都多多少少购买了商业化的CDN资源,比如360、腾讯、百度、新浪等等等,当然大部分流量还是走自建的CDN网络。
本文笔者站从安全的角度出发,对CDN技术进剖析,揭开厂商使用CDN技术的风险、分析了黑客及黑产新的攻击方向。
实际上只要对CDN的工作流程有一定了解,并能够对数据报文的流向比较清楚,就能够获取其风险点了,在文中笔者只对动态页面的请求流程做讨论(静态页面一般不回源),至于静态页大部分由节点的webcache直接返回,一般不含敏感信息(cookie实际上是敏感信息),所以不做讨论。
一.CDN工作流程如下图:
<img src="http://www.cngrayhat.org/wp-content/plugins/wp-ueditor/ueditor/php/upload/65201377082022.png" width="630" height="349" title="cdn.png" alt="cdn.png" />
1.管理员或者站长将域名的DNS指向CDN厂商的DNS上(当然,根据选择不同也有可能使用CName方式,但都不影响数据流的流向)。
2.用户需要登录站点,请求DNS以便获得服务器IP(此处最终请求的DNS服务器为CDN厂商的DNS)
3.CDN厂商收到DNS查询请求及各种信息,通过各种算法选择一个离用户最近的节点,将该节点的IP 1.1.1.1作为服务器IP返回给用户(此处CDN厂商告诉用户一个假的服务器IP)
4.用户收到DNS响应,将HTTP请求(该处为登录请求,请求报文包含用户密码)发给1.1.1.1
5.CDN节点接收到请求包判断请求报文是否是动态页面,如果是静态则查看webcache,存在缓存直接返回缓存页面。如果是动态页面请求或者没有缓存的静态页面,节点则直接请求真实源,以便获取最新的内容。(注:此处对于动态页面的请求一般每次都会做回源操作)
6.接着就是服务器响应请求,此处不做讨论
二.CDN的软肋
由上图可知,对于网站的请求报文都会经过CDN厂商的节点(不做特殊操作的情况下)。因此安全隐患全都集中在了CDN厂商的节点上。一般一个节点会提供N多个网站的加速。不管是360、腾讯、百度还是新浪,只要使用了商业化的CDN,就相当于孤注一掷,将自己的部分安全交给CDN厂商。
一旦攻击者控制了CDN厂商节点就可以轻易的进行抓包并分析。对于CDN厂商来说,毕竟不是专业的安全公司,所以在防护方面肯定会有所不足CDN厂商节点遍布全国,数量众
多,很难保证每个节点的安全性(再不行可试下ARP欺骗,从同段IP搞起)
三.从CDN看黑产动向
1.以往攻击者对目标发起攻击都会先对目标IP进行扫描和检测,但由于CDN的存在,很多攻击者无法直接获取到源IP,因此转而对CDN节点发起攻击,一旦攻陷节点,那拿到站点权限就是迟早的事情,另外在这个信息发达的时代一般都是买一送多,大数据时代,一个结点的网站够撑死你了。目测接下来对CDN节点的攻击会成为黑色产业链的热门话题(估计已经很热了,只是我不知道)
2.CDN厂商实际上可以成为黑产的大数据提供商,对于应用软件你可以本地分析看是否在后台偷偷上传数据,对于CDN你能么,笔者建议少用免费的CDN服务,除非你已经麻木了,或者你做了特殊的手段。
3.大型企业会增加对自建CDN的安全维护成本,同时攻击者会将大部分时间放在对企业CDN网络的攻击上
四.由CDN到DNS劫持(只写思路,后面补上技术文档)
百度经常被黑、某黑阔站点又被hellen干掉了、XXX也被整了。到头来都是DNS劫持。难道DNS劫持就只能换个页面?或只能让用户访问恶意站点?看了CDN的工作原理,结合APT攻击。长时间盯着就OK了。某天的某一时刻,某人说能控制某域名的DNS解析,问怎么利用。估计看了前面原理的人都想到了如何进一步利用DNS劫持了,笔者在这里发表几个个人的方法,仅供参考。
1.搭建小型CDN网络,一个节点、一个自己的域名、一个自己搭建的DNS服务器。修改域名DNS指向自己搭建的DNS,从而将站点的访问流量全部牵引到自己的节点上,在自己节点装抓包软件(如何搭建CDN网络可以找找相关资料)
2.搭建中转服务器(代理服务器),将域名解析到自己的服务器上,由攻击者的服务器进行中转(实际上利用本地的HOST及某些数据转发软件就可以实现)。这个比上面一点好多了,少了个DNS服务器。
3.完全利用HTTP协议,写个PHP脚本,对接收到的报文进行转发,当然笔者在这边通过测试,该方法效率不高,刚开始忘记cookie的处理,导致用户无法登录,后面对cookie进行了处理后成功转发,但缺点是“速度像蜗牛”!
浅析CDN安全的更多相关文章
- 浅析CDN存在的必要性
CDN行业从出现至今,已经有近20年的历史.但是直到近些年互联网进入超高速发展阶段,CDN才得以得到更广泛的应用和发展.最开始,CDN的主要任务只是简单的内容分发,对于静态内容的加速没有问题.但是随着 ...
- 【Web】CDN加速效果浅析
1. 什么是CDN? CDN的全称是Content Delivery Network,即内容分发网络.其目的是通过在现有的Internet中增加一层新的CACHE(缓存)层,将网站的内容发布到最接近用 ...
- 浅析门户网站体育赛事CDN加速解决方案
经过近些年来的高速发展,互联网已经成为现今媒体传播的主要力量.这一点在大型体育赛事的报道与转播上,体现的尤为明显.更及时的信息内容.更多样的报道形式.更齐全的资料组成.更方便的阅读查询.更具互动性的报 ...
- CDN基本原理和功能浅析
CDN的全称是Content Delivery Network,即内容分发网络.CDN的通俗理解就是网站加速,CPU均衡负载,可以解决跨运营商,跨地区,服务器负载能力过低,带宽过少等带来的网站打开速度 ...
- 浅析为何使用融合CDN是大趋势?
使用传统CDN的用户遇到的新问题 随着云计算时代的快速发展,尤其是流媒体大视频时代的到来,用户在是使用过往CDN节点资源调配将面临很多问题: 问题1: 流媒体时代不局限于静态内容分发,直播点播等视频服 ...
- 【翻译】浅析为何使用融合CDN是大趋势
使用传统CDN的用户遇到的新问题 随着云计算时代的快速发展,尤其是流媒体大视频时代的到来,用户在是使用过往CDN节点资源调配将面临很多问题: 问题1: 流媒体时代不局限于静态内容分发,直播点播等视频服 ...
- 浅析uniapp
前端跨平台框架 之uniapp入门浅析 技术的发展总日新月异,处在风口,前端技术的发展尤为迅速,跨平台的概念也在前端流行起来.从最早期PhoneGap.lonic.Cordova,到近年来的Reac ...
- http缓存策略以及强缓存和协商缓存浅析
http缓存策略以及强缓存和协商缓存浅析 本地缓存-强缓存 本地缓存,也就是我们常说的强缓存:是指当浏览器请求资源时,如果请求服务端的资源命中了浏览器本地的缓存资源,那么浏览器就不会发送真正请求给服务 ...
- 绕过CDN获取服务器真实IP地址
相关视频链接:(https://blog.sechelper.com/20220914/penetration-testing-guide/cdn-bypass) CDN(Content Delive ...
随机推荐
- 绘制dot 图
常用参数 格式:dot -T<type> -o<outfile> <infile.dot> 输入文件是<infile.dot>,生成的格式由<ty ...
- Vim配置IDE开发环境
我的vim IDE界面: 1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get instal ...
- 【Node.app】Node.js for iOS
Node.app 是用于 iOS 开发的 Node.js 解释器,它允许最大的代码重用和快速创新,占用资源很少,为您的移动应用程序提供 Node.js 兼容的 JavaScript API.你的客户甚 ...
- iTween基础之Rotate(旋转角度)
一.基础介绍:二.基础属性 原文地址 :http://blog.csdn.net/dingkun520wy/article/details/50696489 一.基础介绍 RotateTo:旋转游戏物 ...
- 分类图 Class Diagram
类图(Class Diagram)是描述类.接口.协作以及它们之间关系的图. 类图是系统中静态视图的一部分,静态视图可以包括许多的类图. 静态视图用于为软件系统进行结构建模,它构造系统的词汇和关系,而 ...
- net windows Kafka
net windows Kafka 安装与使用入门(入门笔记) 完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS 在环境搭建 ...
- tomcat 7 用mod_jk做 负载均衡
在Win7中使用apache为tomcat做负载均衡,各组件及版本如下: 两个tomcat v 7.0.57 一个apache v 2.2.14 一个mod_jk v 1.2.33(for windo ...
- WPF 多线程处理(4)
WPF 多线程处理(1) WPF 多线程处理(2) WPF 多线程处理(3) WPF 多线程处理(4) WPF 多线程处理(5) WPF 多线程处理(6) 开始一个线程处理读取的文件并且更新到list ...
- error X3025:global variables are implicitly constant, enable compatibility mode to allow modification
global variables are implicitly constant, enable compatibility mode to allow modification http://xbo ...
- Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi
Taxi Trip Time Winners' Interview: 3rd place, BlueTaxi This spring, Kaggle hosted two competitions w ...