目前,CDN技术到处可见。像网宿、蓝讯、加速乐等都依靠CDN过活,连安全宝也都使用了CDN技术,当然很多域名空间商现在也提供CDN服务。从以往互联网的发展上看,CDN是个趋势,很多厂商也都多多少少购买了商业化的CDN资源,比如360、腾讯、百度、新浪等等等,当然大部分流量还是走自建的CDN网络。
本文笔者站从安全的角度出发,对CDN技术进剖析,揭开厂商使用CDN技术的风险、分析了黑客及黑产新的攻击方向。实际上只要对CDN的工作流程有一定了解,并能够对数据报文的流向比较清楚,就能够获取其风险点了,在文中笔者只对动态页面的请求流程做讨论(静态页面一般不回源),至于静态页大部分由节点的webcache直接返回,一般不含敏感信息(cookie实际上是敏感信息),所以不做讨论。
一.CDN工作流程如下图:
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进行了处理后成功转发,但缺点是“速度像蜗牛”!

党的诞辰至今有一百年吗?
于1921年7月建立,到2021年正好100周年。
CDN防御与高防服务器有什么区别?
CDN的防御方式:
而CDN采用多节点分布,能解决各地区不同网络用户访问速度,解决并发量减轻网站服务器的压力,并且隐藏源站ip,从而让攻击者找不到源站ip,无法直接攻击到源服务器,使攻击打到CDN的节点上。 CDN则每个节点都是单机防御,每个节点都有套餐防御的对应防御,除非是攻击超过套餐防御,不然网站是不会受到影响,可以为客户的网站得到安全保障。
高防服务器的防御方式:
高防服务器采用单机防御或者集群防御,攻击直接打在源服务器上的。 攻击可能会导致服务器的带宽CPU内存使用率跑到100%,甚至可能直接影响到源站,导致卡死亦或者网站打不开和访问不了等诸多问题。
当我们发现网站或服务器被DDoS攻击时,不要过度惊慌失措,先查看一下网站服务器是不是被黑了,找出网站存在的黑链,然后做好网站的安全防御,开启IP禁PING,可以防止被扫描,关闭不需要的端口,接入墨者安全高防。 不过单独硬防的成本挺高的,企业如果对成本控制有要求的话可以选择墨者安全的集群防护,防御能力是很不错的,成本也比阿里云网易云这些大牌低。
什么是CDN和CDN的工作原理
CDN的全称是Content Delivery Network,即内容分发网络。 其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。 从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。 内容分发网络采用智能路由和流量管理技术,及时发现能够给访问者提供最快响应的加速节点,并将访问者的请求转发到该加速节点,由该加速节点提供内容服务。 利用内容分发与复制机制,CDN客户不需要改动原来的网站结构,只需修改少量的DNS配置,就可以加速网络的响应速度。 当用户访问了使用CDN服务的网站时,域名解析请求最终由重定向DNS负责处理。 它通过一组预先定义好的策略(如内容类型、地理区域、网络负载状况等),将当时能够最快响应用户的节点地址提供给用户,使用户可以得到快速的服务。 同时,它还与分布在不同地点的所有CDN节点保持通信,搜集各节点的健康状态,确保不将用户的请求分配到任何一个已经不可用的节点上。 而网宿CDN还具有在网络拥塞和失效情况下,能拥有自适应调整路由的能力。 使用了CDN服务后,用户的访问流程如下图所示:图CDN用户访问流程图 ☆用户向浏览器提供要访问网站的域名,域名解析的请求被发往网站的DNS服务器; ☆由于网站的DNS服务器对此域名的解析设置了CNAME,请求被指向CDN网络中的路由系统; ☆CDN对域名进行智能解析,将响应速度最快的节点IP返回给用户; ☆浏览器在得到实际的IP地址以后,向CDN节点发出访问请求; ☆由于是第一次访问,CDN节点将回到源站取用户请求的数据并发给用户; ☆当有其他用户再次访问同样内容时,CDN将直接将数据返回给客户,完成请求/服务过程。 用户向浏览器提供要访问网站的域名,域名解析的请求被发往网站的DNS服务器; 由于网站的DNS服务器对此域名的解析设置了CNAME,请求被指向CDN网络中的路由系统; CDN对域名进行智能解析,将响应速度最快的节点IP返回给用户; 浏览器在得到实际的IP地址以后,向CDN节点发出访问请求; 由于是第一次访问,CDN节点将回到源站取用户请求的数据并发给用户; 当有其他用户再次访问同样内容时,CDN将直接将数据返回给客户,完成请求/服务过程。 通过以上的分析我们可以看出,CDN服务对网站访问提供加速的同时,可以实现对普通访问用户透明,即加入缓存以后用户客户端无需进行任何设置,直接输入被加速网站原有的域名即可访问。
发表评论