从Akamai看如何快速地从大型云端服务断线中恢复
2021-08-09 13:34:17 Author: www.freebuf.com(查看原文) 阅读量:19 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

上星期四,全球最大的CDN服务商Akamai发生大型网络事故,他们的DNS服务因为“formatting error”再次引起全球网络瘫痪。其实在过去的一个多月我们身边已经发生了最少三宗超大型的断网事件,而其中的共同点就是它们都和国际大型CDN供应商有关。 

第一宗是六月底Fastly断线、第二宗是Akamai DDoS服务出现问题、第三宗则是上星期的Akamai DNS事件。中间还有一个小插曲,就是AWS DNS被发现一个重大的漏洞、虽然已经解决,但是该研究员表明还有另外两个大型云端服务商有着同样的漏洞。

在一些专业的互联网社群里面早已在开始探讨CDN/Cloud被大量使用而洐生出来的风险。但由于这题目太专业,所以在普通的IT社群内并没有看到类似的讨论。以往的讨论大多专注在是否应该用Multi-cloud architecture去提升网络的整体的安全性及稳定性,考虑到我国的现实情况我们认为可以从另外一个角度去降低风险。

我国企业固然会重视网络稳定性问题,但是现行常见的方法通常也是转移至一个云端服务去减低风险。然而,我国企业大多才刚开始进行云端迁移没多久,改变策略采用多个云端服务似乎并不是非常现实的方案。

这里的核心问题是过去发生的那几宗大型CDN/Cloud断线问题都凸显了使用单一CDN/Cloud是真的存在风险的。谷歌就曾赞文“The Cloud Trust Paradox”去说明没有任何一个云端是完全可靠的。在这样的环境下有什么方法尽量降低成本去并达到更强的稳定性呢?这里的答案应该是怎样建设一个CDN/Cloud出问题后的Disaster Recovery(灾难恢复)方法。

在上星期Akamai事件发生后,有一个深入的分析发现到Amazon.com也受到了影响,但是他们却瞬间完美避开了这次事故。他们是如何做到的呢?

DNS在对接CDN/Cloud中的角色

DNS的角色一般只被认为是把IP地址转换到一个人类可以记得住的网址,而DNS下线事故只会影响网站。当企业的网站并不那么重要的时候,DNS的重要性就自然地被忽视了。但其实DNS在现代网络中的角色远不至此。 DNS是互联网最基础的架构之一,并已经成为互联网其中一个最重要的Single Point of Failure(单一故障点)。任何需要使用IP地址的服务基本上都需要依赖DNS:例如APP、电邮、API、各种不同的认证(如SPF、SSL申请、MS365登入)和与各类型CDN/Cloud的连结。

想象一下你的客户是如何跟你在云端的服务(例如APP)进行连接呢?答案就是透过域名和DNS。一般来说,域名会以CNAME或ALIAS记录接驳到CDN,之后任何查找该域名的服务都由CDN/Cloud来承担。因此从这个角度去看,没有DNS就上不到CDN/Cloud。

在今次的事件中,亚马逊也受到了影响,但是他们能在短时间内恢复所有服务。从他们的设定我们可以学习到如何规避云端服务断线的好方法。他们的设定有3部曲:

1、虽然他们拥有自家的CDN/Cloud服务,但是Amazon.com是故意的分开了DNS和CDN,而且在DNS层面上也使用了2个企业级供应商去提供冗余(Redundancy)

2、在CDN层面他们也使用了多个不同的CDN服务,从而在某一个CDN发生灾难时能尽快转移到别的伺服器他们在DNS层面上应该拥有IP Failover(IP故障切换)能力,以致他们的灾难恢复能自动化进行

3、他们在DNS层面上应该拥有IP Failover(IP故障切换)能力,以致他们的灾难恢复能自动化进行

如前所说,不是每家公司都能够完全模仿亚马逊的做法。以他们的做法为例子我们有以下的建议给我国企业:

1、紧记CDN/Cloud是透过DNS作连接的,所以要避免任何CDN/Cloud下线的问题就要确保CDN/Cloud和DNS使用不同的供应商。假设资源不允许同时拥有2个DNS供应商,那应该确保单一DNS架构是专用的DNS(Dedicated DNS network; i.e. 不是有个大型hosting network建立了顺便送个DNS)和属于企业级的。

2、确保核心的IT基础架构之间有独立性,这是不少海外专家赞文表达的建议。例如CDN出问题,基本上都必须靠DNS才能做到recovery,所以分开CDN和DNS非常重要。

3、在DNS层面上面需要有IP Failover功能,但若我们没有使用多个云端服务的话怎么办呢?答案也是能够在DNS层面上面解决:例如我们可以设定IP failover直接连接到最终的伺服器,这么我们就可以在CDN/Cloud下线的时候直接绕过CDN/Cloud。

4、基本上所有系统都倚靠DNS。企业应该以其他高风险系统的同一原则去评核监察投资DNS以确保其稳健性。

期望我国企业都能够从这个个案中看到域名和DNS在互联网架构中的重要性。在现今的互联网世代,它是不可或缺的一环。

关于DNS安全风险和相关全球最佳实践的更多信息,请在此下载。


文章来源: https://www.freebuf.com/articles/es/283648.html
如有侵权请联系:admin#unsafe.sh