云环境下的信息安全
文 / 沈锡镛
背景:阿里云已获得由BSI(英国标准协会)审核的ISO 27001信息安全管理体系国际认证,该体系涵盖基础设施、数据中心和云产品,包括阿里云弹性计算、开放数据处理服务(ODPS)、关系型数据库服务(RDS)、云安全服务(云盾)。ISO 27001是一种被广泛采用的全球安全标准,它建立在定期评估风险的基础上,采用安全控制和最佳实践相结合的系统化方法来管理公司和客户信息。为了实现认证,阿里云必须表明它有一个系统的和持续的方法来管理信息安全风险,影响公司及客户信息的保密性、完整性和可用性。该认证巩固了阿里云对安全控制透明化的服务承诺。
本文拟从分析传统信息安全管理和云计算安全管理的差异性入手,提出云计算服务商所面临的安全问题,讨论阿里云计算在满足云计算安全管理的实践。
云计算安全的挑战
传统信息安全和云计算安全的区别
PC时代是分散化管理,用户的数据是保存在自己的电脑上的,保障用户数据的安全很大程度上是靠用户本身的安全意识和技术水平,而大部分用户又极缺乏自我保护意识,因而钓鱼、木马、肉鸡横行,用户的安全受到很大威胁。云时代是集中化管理,通过计算资源的集中和优化,使多个应用更有效的分享服务器CPU、内存、存储以及网络带宽,用户的数据保存在有专业安全人员保护的云环境中,黑客常用的传统用户终端攻击失去威胁。在与黑客的博弈之中,集中化管理更容易升级安全保护措施,安全性比PC时代要高从安全管理角度来看,集中化管理和分散化管理就像乘飞机旅行和汽车旅行的安全比较一样,汽车旅行的事故率非常高,但往往每起事件只影响到一两个人,而飞机旅行是最安全的,但不出事则已,一出事都是大事。如果云服务商不能给客户提供一个客观、公正、可靠的安全保证,就无法让用户对云服务建立起安全信心,最终影响云业务的开展和行业的壮大。
云环境下的典型安全挑战
从安全技术角度来看,虚拟化技术在云计算时代的大量应用让传统信息安全时代下的安全隔离手段面临巨大挑战,举例来说,客户在购买云服务商虚拟服务器的同时就拥有了公网地址和云服务商的内网地址,这也就意味着用户同时拥有了云服务商的非信任域地址和信任域地址,这种网络边界模糊的威胁会直接导致恶意用户利用购买虚拟服务器所获得的云服务商内网地址来伪造海量的内网地址和MAC地址,在网络中产生大量的ARP通信量使得网络阻塞或中断。
其次,安全挑战伴随着云平台的服务类型而随之诞生,以阿里云开放数据处理服务ODPS举例,该服务的设计之初是基于数据驱动的多级流水性并行计算框架,支持直接使用ODPS SQL语句对海量数据进行离线分析。通过数据分裂将海量数据散布在整个集群内部,这样,用户的数据容量的瓶颈问题得以解决。同时,计算压力也被平均分布在集群内部,很好地解决了计算性能问题。但因其允许用户通过编写程序在ODPS的集群上执行任务,这种业务模式就存在通过用户程序包含的恶意代码在ODPS的集群上植入后门的风险,恶意用户可通过非法外联、提权等一系列操作实现对ODPS集群的入侵,最终达到窃取用户数据的目的。
面对上述安全技术挑战,在云时代已无法通过简单的安全设备堆砌去解决所有安全问题,同样,传统信息安全时代下的安全标准和规范也已不能从容应对上述管理挑战。为此,阿里云开发了包含3大信息安全基础控制域、7大信息安全和云计算安全支柱控制域及2大云计算安全特色控制域的阿里云安全模型(如图1所示)。我们将传统信息安全管理体系中的信息安全风险管理、人力资源、物理、网络和主机安全、业务连续性和灾难恢复、数据中心运维作为云服务商的安全基线,重点评估、持续提升云服务商在虚拟化安全和云平台安全方面的安全管理和技术水平。
图1 阿里云安全模型
云时代下的虚拟化安全主要包括虚拟服务器的加固、虚拟服务器的隔离、虚拟服务器的销毁,虽然因虚拟化服务器的服务类型的原因,以上需求已无法通过购买安全设备实现隔离,但针对用户和云服务商自身的安全需求仍可通过一系列的软件手段实现安全隔离和访问控制。
虚拟服务器的加固
在安全流程方面,阿里云通过建立安全加固流程来保证每个交付给客户的虚拟服务器镜像在生产环节已通过安全团队的严格检测,去除了不安全的服务、协议、端口等可能导致入侵的因素。
在安全技术方面,阿里云已陆续发布了CentOS 6.2 64位安全加固版、Red Hat Enterprise Linux Server 5.4 64位安全加固版Windows Server 2003标准中文版 SP2 32位已加固激活三个经过安全加固的操作系统;阿里云的云安全产品——云盾更通过提供主机入侵检测和补丁自动更新服务等手段来保证用户虚拟服务器的安全,并针对用户需求有针对性的对虚拟机镜像提供加密服务。
虚拟服务器的隔离
用户租用云服务器就好比将用户网站搬进了一个个虚拟房间,最担心的就是破门而入的不速之客,这种安全顾虑就是由虚拟服务器而引发的网络边界模糊威胁,而解决之道不再是传统信息安全环境下的防火墙之类设备的堆砌,取而代之的是阿里云自主开发的一系列虚拟环境下的网络隔离手段。
阿里云针对不同用户购买的云服务器之间的隔离需求,在其生产环节由云服务器的生产系统依据订单自动给每个用户的云服务器打上标签,不同的用户间通过安全组进行隔离;针对本文开篇提及的恶意虚拟服务器用户通过制造大量的ARP通行量来导致网络面临阻塞或中断的风险,阿里云采用上述云服务器标签和arptables相结合予以防范;最后为防范云服务器被入侵后成对对外攻击源,阿里云采用以太网防火墙(ebtables)隔离云服务器对外部公共网络的异常协议访问。
图2 云平台安全开发流程
虚拟服务器的销毁
针对用户云服务器在期满后的数据销毁问题,阿里云的云服务器生产系统会定期自动虚消除原有物理服务器上磁盘和内存数据,使得虚拟服务器无法恢复。同时,采用虚拟化在线管理系统对虚拟服务器进行管理,对物理服务器及Hypervisor的运维操作,遵循运维相关流程并采用实时审计技术予以监控。
云时代下云平台是一切云服务的最终载体,其自身的安全态势直接决定各项云服务的正常开展,从以上虚拟化安全的控制手段已然可以发现通过软件实现安全控制将是云安全的主要技术实现途径。而云平台自身也是软件开发的产物,由此,构建云平台安全就应从云平台的初始开发以及云服务带给云平台的安全冲击等角度予以考虑。
云平台的开发推荐参照软件安全开发周期(Security Development Lifecycle)建立安全开发流程如图2所示。
安全需求分析环节:应根据功能需求文档进行安全需求分析,针对业务内容、业务流程、技术框架进行沟通,形成《安全需求分析建议》。
- 安全设计环节:应根据项目特征,与测试人员沟通安全测试关键点,形成《安全测试建议》。
- 安全编码环节:应参考例如OWASP指南、CERT安全编码等材料编写各类《安全开发规范》,避免开发人员写出不安全的代码。
- 代码审计环节:应尽可能使用代码扫描工具并结合人工代码审核,对产品代码进行白盒、黑盒扫描。
- 应用渗透测试:应在上线前参照诸如OWASP之类的标准进行额外的渗透测试 。
- 系统发布:依据上述环节评价结果决定代码是否发布。
针对云服务对云平台的安全冲击,例如前文提到的ODPS存在通过用户程序包含的恶意代码在云服务商物理机上植入后门,实现非法外联、提权等一系列非法操作的风险,阿里云采用了研发虚拟化的沙箱或者解释器级别的沙箱来予以包装,并通过鉴权、授权等一整套安全措施来保证用户程序中可能包含的恶意程序无法在ODPS集群上直接执行。
回顾上述云安全带来的挑战,我们可以得出以下结论:
- 传统网络安全手段在云时代安全体系中的重要性下降了;
- 依靠应用软件实现的安全手段,以及应用软件开发本身的安全在云时代安全体系中的重要性将大大增强;
- 用户数据的集中化管理使安全管理和运营的重要性日益突出。
虽然云计算的背景下,云计算安全与传统信息安全的目标仍是相同的:“保护信息资产的保密性、完整性、可用性”,但云计算安全的保护核心正逐步从基础的信息安全风险管理转向数据安全管理,而阿里云在国内率先选择以数据为核心的云服务而不仅仅是传统的IDC,其基础设施通过ISO27001国际认证正是对此的有力回应。
作者沈锡镛,阿里巴巴集团安全部安全研究中心安全专家。云计算安全的专家及先行者,在云计算安全管理方面有很多分享。2012年加入阿里巴巴集团,着力于帮助快速成长但缺乏标准化管理的云计算领域建立安全管理框架。
更多精彩内容敬请关注《凌云》专区