CDN/Cache安全架构研究及实践
2015-12-21GaoJie
高 洁/Gao Jie
(中国移动通信集团设计院有限公司 北京100080)
1 引言
CDN/Cache 直接给用户提供业务服务,其可能受到的安全威胁因素如下。
(1)网络开放性
CDN 系统网络具有接入无关性,支持多种方式接入,即CDN 系统接入网不再是封闭的网络,用户可以直接通过互联网接入CDN 系统。由于CDN系统接入的开放性,接入网络不再是可信任的网络,需要采取措施规避终端接入对CDN 系统的安全威胁。
(2)基于IP网络
CDN 系统采用全IP网络架构,将直接面临来自互联网的攻击,黑客可能利用互联网的攻击工具对CDN 系统进行攻击。CDN 系统对于网络犯罪而言,只是一种普通的IP网络;但对于黑客攻击者而言,攻击CDN 系统给其带来的经济利益更大。
(3)终端智能化
当前智能手机的处理能力已经等同甚至超过了普通的PC 机,智能手机也不再只是提供单一的话音业务,终端用户可以任意下载个性化的业务应用软件,这为病毒和恶意软件的传播提供了载体。
(4)业务融合化
CDN 系统网络是固定网络与移动网络的融合,传统电信系统中的非法窃听、业务盗用、计费欺骗等常见的业务逻辑安全问题在CDN 系统中同样存在,即CDN 系统依然存在传统电信系统中遇到的安全威胁。同时,网络融合化让跨网络攻击成为可能,CDN 系统面临着各种网络发起的攻击威胁。
(5)网络结构复杂化
CDN 系统分布在IP网络中,涉及的网元节点众多。相对于传统组网,其分布式部署以及内外部接口众多的特性,使得安全管理愈加复杂化。
攻击者对CDN 系统实施的攻击手段包括破坏、篡改、删除及泄漏等。
2 CDN/Cache的安全方案
为了解决当前所面临的安全威胁和挑战,CDN系统从网络层、系统层、应用层和管理层等方面考虑,采用分层的安全防护策略,为CDN 系统构建多层安全防线。不同的安全防线采用不同的安全策略,当网络中某个安全防线被攻破后,其他网元实体依然能够对该安全威胁实施有效的防护机制,确保网络的安全运行。
2.1 安全目标
(1)机密性
机密性是指保护CDN 系统关键信息以及内容提供商的业务内容信息不泄露给非授权的用户和实体。
(2)完整性
完整性是指保护CDN 系统关键信息以及内容提供商的业务内容信息未经授权不能进行改变。
(3)可用性
可用性是指CDN 系统可被授权用户访问,避免网络环境下的拒绝服务,避免破坏网络以及避免破坏有关系统的正常运行。
(4)不可抵赖
不可抵赖是指提供历史事件的记录,对发生的安全事件提供调查依据和手段。
2.2 安全策略
(1)防攻击边界化
通过加强CDN 系统边界网络的安全防护措施,使CDN 系统相对封闭化。CDN 系统的对外接口部署防火墙,防火墙开启ACL(Access Control List,接入控制列表)功能和防攻击功能,各对外接口的边界网元实现用户接入鉴权以及其他应用层的安全策略。
(2)网络安全隔离
根据CDN 系统各网元所在的位置及其承担的安全目标和安全威胁差异,将CDN 系统划分为若干个不同的安全区。当出现安全事件时,将安全事件的影响降低到最小。同时,在CDN 系统的承载网中划分不同的VLAN,进行网络业务流隔离,使可能出现的安全事件影响最小化。在不安全的传输网络中,使用防火墙作为安全网关部署在CDN 系统前。
(3)用户授权最小化
在CDN 系统中,无论是最终用户、网络维护人员,还是营业厅操作人员,都只开放完成其正常操作的最小权限。对于不必要的网络服务及进程,在缺省情况下都被禁止,使CDN 系统的安全风险降到最低。
(4)纵深多层次防护
采用多层防护措施来过滤报文,对同一安全威胁,不同网元实体共同防御,拉长CDN 系统的安全防线。例如,除了在防火墙部署防IP 攻击外,还在网元上部署基本的IP 防攻击能力。
(5)基础架构安全平台化
操作系统安全、数据库安全、安全日志等主机基础架构,由厂家平台统一提供基础安全能力,各产品在该基础安全能力上,适配其安全策略,确保网络各基础架构安全策略的一致性。通过基础架构安全平台化,使CDN 系统各网元的安全策略管理简单化。
2.3 安全架构
根据保护对象的不同,按照安全层次将CDN系统安全划分为网络层、系统层、应用层和管理层。根据每层的业务和面临的安全威胁不同,每层采取相应的安全机制和安全策略来应对可能的安全问题,如图1所示。
2.3.1 网络层安全
(1)安全组网
CDN 系统的组网设计方案中,网络设备包括防火墙、交换机和路由器。防火墙通过合理划分安全域,实现域间安全策略控制;交换机通过合理划分VLAN,在流量入口处进行ACL 限制或通过VLAN间的ACL 限制合法访问;路由器在流量入口处通过ACL 限制合法访问。
(2)网络设备安全配置
CDN 系统在业务上线前,需要进行规范配置,以保证网络设备的安全性。
(3)防DOS/DDoS 攻击
CDN 系统提供的内容分发能力,对最终用户屏蔽了业务源站的信息,用户访问到的数据为CDN系统中的缓存数据。因此,CDN 系统承担了业务源站的流量压力,需要针对网络常见的DOS/DDoS 进行重点防护。
(4)防DDoS 攻击
过去的DDoS 攻击以Flood 型攻击为主,更多地针对运营商的网络和基础架构; 当前的DDoS攻击越来越多的是针对具体应用和业务,如针对某个移动APP 应用、企业门户应用、在线购物、在线视频、在线游戏、DNS、E-mail 等,攻击的目标更加广泛,单次攻击流量小、成本低,移动型智能终端攻击传统防御方式影响正常业务,攻击行为更加复杂和仿真,造成DDoS 攻击检测和防御更加困难。
图1 CDN 系统安全架构
图2 防DDoS 攻击原理
为了更好地对DDoS 攻击进行有针对性和高效的防御,还需要引入专业的防DDoS 攻击设备,其防DDoS 攻击原理如图2所示。其工作原理为:检测中心负责以镜像流的方式监测网络流量,以检测是否受到DDoS 攻击。当发现受到攻击时,管理中心会向清洗中心下达指令,让其对外部传输来的数据分组进行清洗,再将清洗后的数据分组传送到内网。
(5)防DNS 攻击
DNS 攻击主要分为以下3 种类型。
①域名劫持。攻击者通过控制域名管理密码和域名管理邮箱,将该域名的NS 纪录指向黑客可以控制的DNS 服务器,然后通过在该DNS 服务器上添加相应的域名纪录,使网民在访问该域名时,进入黑客所指向的内容。
②缓存投毒。利用控制DNS 缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站。
③DDoS 攻击。针对DNS的DDoS 攻击有两种:一种攻击针对DNS 服务器软件本身,通常利用BIND 软件程序中的漏洞,导致DNS 服务器崩溃或拒绝服务; 另一种攻击的目标不是DNS 服务器,而是利用DNS 服务器作为中间的“攻击放大器”,去攻击互联网上的其他主机,导致被攻击主机拒绝服务。
(6)DNS 欺骗
DNS 欺骗就是攻击者冒充域名服务器的一种欺骗行为。
针对DNS 攻击,特别是域名劫持的防护,主要考虑的是对调度中心进行有效地保护。
域名劫持的原理是黑客首先攻破DNS 服务器的管理员账户系统,然后通过修改域名记录的方式来实现攻击。建议对调度中心采取以下保护措施。
(1)域名服务与管理配置分离
将调度中心的域名服务地址与管理员管理/配置地址分离。前者配置公网地址,用于域名解析服务;后者配置私网地址,并只能通过VPN 被授权的管理员访问。
(2)通过“防火墙+跳转主机”的方式提升管理流程安全性
调度中心需要远程维护、升级、定位问题。为了保障系统安全,要求通过防火墙和跳转主机的IP Table 对远程维护IP 进行严格限制,同时必须采用SSH 协议,从而实现远程安全接入。当无需远程维护时,维护人员还可以通过OM 区将跳转机连接交换机的端口状态置为down;需要远程维护时再将端口状态置为up,这种机制对黑客的防护示意如图3所示。
2.3.2 系统层安全
1.操作系统安全
(1)安全加固
通过安全加固工具对操作系统进行安全加固,防止因操作系统配置不当引起的安全隐患,安全加固覆盖但不限于以下内容:最小化安装、最小化开放端口、服务安全配置、内核调整、目录与文件保护、账号与操作环境保护、密码策略、系统日志策略及登录提示等。
(2)安全补丁
操作系统安装时,确保打上最新的安全补丁。然后定期发布经过验证的补丁列表,并对操作系统进行补丁升级,以消除操作系统的安全漏洞。
2.数据库安全
(1)安全加固
通过数据库安全加固工具对数据库进行安全加固,防止因数据库配置不当引起的安全隐患,安全加固覆盖但不限于以下内容:最小化安装、账号管理、权限控制、网络接入策略及审计日志等。
(2)安全补丁
安装数据库时,应确保打上最新的安全补丁。然后定期发布经过验证的补丁列表,并对数据库进行补丁升级,以消除数据库的安全漏洞。
2.3.3 应用层安全
(1)源站保护
采用CDN 系统后,暴露在公网的内容源站将得到有效隐藏,向最终用户提供服务的IP 地址为CDN 节点,最终用户无法通过互联网访问获得内容源站的真实IP 地址,因此,从根本上杜绝了攻击者对网站的攻击可能。
同时,当内容源站遭受攻击服务导致不可用时,厂家DNS 系统服务节点仍可在一定时间内为用户提供内容服务,以降低内容源站的事故影响。
(2)内容安全
CDN 系统提供对源站内容的分发、缓存业务,向最终用户提供更快速、准确的浏览体验。因此,除了防范DOS/DDoS 攻击外,保证CDN 系统的内容分发和存储安全也显得极为重要。
CDN 系统可采取以下措施保证内容的安全性。
①版权保护:为防止用户非法访问内容,CDN系统应提供防盗链和二次鉴权两种用户鉴权方案。
②内容容灾部署:CDN的缓存系统支持分布式、分站点部署,一旦某个站点因故障、停电等原因导致无法提供服务,其他站点的Cache 可以接管业务。
图3 “防火墙+跳转主机”策略
(3)接口访问控制
CDN 系统的对外接口主要包括系统接口、统一管理接口、终端侧接口、Local DNS 接口4 种类型,由于这些接口对外开放,可以被外部访问,需要对这些接口的访问进行合理的访问控制。
(4)敏感数据保护
CDN 系统中除了内容外,还存在系统账号口令、数据库连接密码、业务系统注册账号口令、管理员口令等敏感数据。
2.3.4 管理层安全
(1)日志管理
CDN 系统支持对所有管理功能的用户活动、操作指令都记录日志。日志内容能够支撑事后的审计工作,记录用户ID、时间、事件类型、被访问资源的名称、访问结果等信息,日志有访问控制功能,只有管理员才有删除权限。
(2)口令管理
对系统中的用户账号及其权限进行定期审核,对多余的账号和权限进行清理。系统管理员创建并维护操作系统和应用系统中的账号及权限列表。对于缺省创建的账号,要求严格控制其使用范围。
(3)时间同步
CDN 系统内各网元保持时间的一致性,在日志管理、计费、安全审计等方面非常必要。CDN 系统采用网络时间同步协议(NTP)来解决时间同步问题。NTP 是基于IP 和UDP,由时间协议(Time Protocol,TP)和ICMP 演化而来,用于分布式时间服务器和客户端之间进行时间同步。理论上NTP 时间同步精度可达10-10s。
在CDN 系统中,内部NTP Server 作为客户端同步外部NTP Server的时间,同时,内部NTP Server又充当本地NTP Server,CDN 系统的其他设备作为客户端同步内部NTP Server的时间。
3 CDN/Cache安全的展望
随着网络流量的不断增大,CDN/Cache的服务节点将不断下沉。从传统的IDC 下沉到城域网、接入网甚至内嵌到网络设备中。网络节点下沉后,边缘服务节点可能不会部署专业的防火墙设备,这对CDN/Cache的安全提出了新挑战。
3.1 HTTPS安全加密
当前的Web 应用和网站绝大部分是基于HTTP,因为HTTP 简单方便,易于部署,并且设计之初也没有考虑安全性,所有内容都是明文传输,也就为现在的安全问题埋下了隐患。对CDN/Cache 承载的关键业务,建议SP 启用HTTPS 进行安全保护。
在SP 支持HTTPS 协议时,SP 可以通过HTTPS安全通道将内容注入CDN 系统。CDN 系统支持通过HTTPS安全通道将内容分发给用户。如果SP 系统不支持HTTPS,则SP 把安全密钥分发给CDN 系统,CDN 把密钥存储到有防火墙保护的安全中心。SP 将使用安全密钥加密后的内容注入CDN 系统,CDN 系统进行本地解密后,通过HTTPS 通道对用户提供服务。
3.2 Anycast 分布式调度
传统CDN/Cache 采用集中式内容调度,通过Anycast 分布式调度可以减小DDoS 给用户带来的影响。Anycast 允许源节点向一组目标节点中的一个节点发送数据报,而这个节点由路由系统选择,对源节点透明。当CDN中的某个或者某几个业务的服务节点受到攻击时,路由器根据各个Anycast 组成员的响应时间,自动转发到其他边缘服务节点。这样受到的攻击会均匀分摊到整个网络的各个服务节点,避免了单节点和主机承受所有攻击流量,因此,在一定程度上提高了安全性。
[1]文伟平.基于CDN的视频网络架构及关键技术的研究与实现[D].北京邮电大学,2008.
[2]崔亚娟,陶蒙华.下一代CDN 架构及关键问题探讨[J].信息通信技术,2011,(3).