云计算模式的本质特征是数据所有权和管理权的分离,即用户将数据迁移到云上,失去了对数据的直接控制权,需要借助云计算平台实现对数据的存储、处理和管理。因此,控制权的缺失可能带来的安全威胁主要包括云数据丢失或篡改、云数据存储位置无法定位、云数据使用不可控、云数据销毁不可控、云服务API脆弱性。
数据存储在云端,可能被云管理员或攻击者偷看、删除或恶意篡改,从而威胁到数据的机密性、完整性和可用性。
云服务提供商面向全球提供服务,为了提高服务效率和可靠性会在全球范围内部署服务器。因此,用户的数据到底存储在什么地方很难准确定位,由于不同国家和地区拥有不同的法律法规,存储在境外的数据可能面临着安全威胁。
云服务提供商可能私自对用户的数据进行一些处理(例如,一些网购平台可能会利用大数据对用户行为进行分析;一些软件利用用户定位信息对用户进行分析,可以清晰地获得用户的家庭地址、工作单位、手机号码等信息),甚至可能未经用户同意将数据卖给第三方。
在云计算环境下,用户删除数据的过程:(1)用户向云服务提供商发送删除命令;(2)云服务提供商删除所对应的数据;(3)云服务提供商将数据删除成功的消息返回给用户。在该过程中,云服务提供商可能是不可信的,一方面,用户无法确认云服务提供商是否真的删除了数据,即云服务提供商可能并没有删除相关的数据,只是将数据删除成功的消息返回给用户。另一方面,出于可靠性的考虑,云服务提供商往往保存了数据的多个备份,在用户发送删除命令后,云服务提供商可能并没有完全删除所有的备份。
云服务API包括两部分:一是指云服务提供商提供的管理API,主要是实现云服务的管理与云服务提供商的交流;二是指PaaS服务提供商提供的API,主要供用户开发新的应用服务。
云服务API是由云服务提供商提供的,其是否存在脆弱性,对于用户来说是无法判断和掌握的,如果云服务API中存在漏洞,攻击者很可能基于此对所有的用户进行攻击,威胁范围非常广泛。
云管理员(包括云平台管理员、虚拟镜像管理员、系统管理员、应用程序管理员等)为了实现对用户和云计算资源的管理,往往拥有不同的特权,由于云管理员本身属于防范边界内受信任的实体,传统的安全策略难以防范。
在云计算环境中,虚拟机的操作系统、安全配置、用户数据等所有信息都保存在虚拟机镜像中,虚拟机的启动、容灾恢复、快照等都是基于虚拟机镜像实现的。云计算平台往往会提供通用的虚拟机模板,用户根据虚拟机模板生成专用的虚拟机,恶意的云管理员可能在制作虚拟机模板镜像时,植入后门、木马等恶意程序,当用户基于该虚拟机模板创建个人虚拟机时,恶意的云管理员即可通过植入的后门或木马控制用户虚拟机或窃取用户数据。
在一些云计算应用中,为了方便云主机的管理,以及避免未及时打补丁的云主机成为安全隐患,云计算应用往往允许云管理员通过直接修改虚拟机镜像的方式来对所有的云主机进行批量的打补丁或升级。这就意味着,云管理员取得了对虚拟机镜像进行修改的权限,那么恶意的云管理员就可能借助打补丁的时机在云主机中植入后门、木马等恶意程序;此外,云管理员还可能恶意篡改云主机中的数据,从而破坏云主机中数据的完整性。
虚拟机镜像作为一个大文件存储在云端中,云管理员还可以利用特权将相关的虚拟机镜像拷贝一份,然后通过挂载到别的机器上进行分析、破解、窃取相关信息,而此过程对用户来说完全不知情,也不会在用户的虚拟机上留下任何痕迹。
下面是两个攻击实例。
(1)云管理员删除虚拟机登录密码。
针对安装了Linux操作系统的虚拟机,Root密码是防止别人入侵虚拟机的防护重点。然而,云管理员可通过对Linux虚拟机磁盘文件进行修改而绕过检测,登录虚拟机窃取数据,如图2-1所示,具体过程如下。
图2-1 删除Linux虚拟机密码
① 云管理员登录云平台(如OpenStack)后,可以成功获取虚拟机标识符ID。
② 云管理员登录并运行该虚拟机ID的物理机,拷贝一个虚拟机实例,并将其挂载到另一个操作系统中。
③ 编辑用户密码文件,将含有登录用户名和密码的一行代码删除,绕过用户虚拟机的密码登录验证环节。
④ 云管理员启动该虚拟机时,可无须密码直接登录该虚拟机,对虚拟机进行任何操作。
(2)云管理员篡改虚拟机登录密码。
对于安装了Windows操作系统的虚拟机,同样可以通过修改Windows登录密码来实现入侵的目的,如图2-2所示,具体过程如下。
① 在云平台下,云管理员将虚拟机镜像挂载到其他的操作系统上,虚拟机的镜像就可以作为一个虚拟的磁盘进行访问。
② 选择修复计算机,在系统恢复选项中,进入命令提示符状态,然后在system32目录下,用cmd.exe替换其他可执行程序,如放大镜程序。
③ 重新启动虚拟机,执行被替换的程序,如放大镜程序,此时实际运行的是cmd.exe。
④ 使用命令行方式修改管理员登录密码即可。
图2-2 修改Windows虚拟机密码
在上述的两个攻击实例中,云管理员都可以通过拷贝一份对应的虚拟机镜像进行攻击,在这个过程中,用户完全无法察觉自己的虚拟机已经被攻击了。
在传统计算机系统中,每个用户都使用自己独立的计算机来处理数据。但是,在云计算环境下,计算资源是物理共享的,隔离也只是逻辑上的隔离,即通过软件的方法实现隔离,也就是说,CPU的隔离是基于时间片轮转实现的,内存的隔离是基于VMM(虚拟机监视器)维护的逻辑页表实现的。资源共享带来的安全威胁主要有以下几个方面。
在计算机系统中,删除数据一般仅仅是在逻辑上删除了对文件的引用,而并未对存储在磁盘上的数据进行物理删除。因此,数据残留是指数据删除后的残留形式,即逻辑上已被删除,物理上依然存在。通过技术手段可以直接访问这些已删除数据的残留信息。在云计算环境中,云服务提供商将用户使用过的磁盘空间未进行彻底删除(只是逻辑删除),若直接重新分配给其他用户使用,其他用户就可以使用技术手段对之前的存储信息进行恢复,从而对之前用户的信息造成安全威胁,可能泄露其敏感信息。
例如,用户A租用了存储空间S,使用一段时间后用户A删除了数据并不再租用存储空间S。此时,用户B刚好需要租用存储空间,于是云服务提供商将存储空间S又租给了用户B使用,而此时的存储空间S并不是真心空白的,而是存储了用户A的数据残留,用户B就可以通过技术手段获得其中的数据,从而可能造成用户A的敏感信息泄露。
虽然云计算声称可以提供“无限的”资源,但是云数据中心的资源毕竟是有限的,一些恶意用户通过网络风暴、中断风暴,以及挂起硬件或控制服务等方式,大量消耗云数据中心的硬件(如内存、CPU和网卡等)、虚拟网络等资源和服务,从而造成正常用户无法获得资源或服务不被响应,产生DoS攻击。
在云计算平台中,不同用户通过虚拟化平台提供的逻辑隔离功能共同运行在同一台物理机上,共享主机的硬件资源。然而,虚拟化平台可能存在漏洞,使攻击者破坏用户间的隔离性成为可能,从而使得攻击者可以窃取运行在同一台物理机上其他用户的敏感信息或控制其云主机。
在云计算按需租用的模式下,恶意用户可以轻易地租用大量廉价的虚拟机从事非法活动,即云服务滥用。例如,攻击者可以租用大量的虚拟机作为僵尸机实施DDoS(Distributed Denial of Service,分布式拒绝服务)攻击,而无须攻击大量的计算机构造僵尸网络,攻击者可以利用云计算资源破解密码、发送垃圾邮件和钓鱼邮件、托管恶意内容等。
此外,云计算的“pay as you go”模式是指,用户根据服务的使用情况进行付费,而追求商业利益是商人的天性,一些云服务提供商可能为了追求商业利益而对服务使用量进行修改或私自修改计算规则,恶意提高用户的使用量。另外,还存在服务盗用的情况,攻击者盗用用户的服务资源,然后由用户买单。资源使用计量的真实可信,是保证按使用量付费准确性的前提。
泛在互联是云计算的主要特点之一,在使用云计算服务的过程中,所有的数据和命令都是通过网络进行传输的,在传输的过程中就可能存在安全隐患。
用户使用云端数据必须通过网络传输,如果传输信道不安全,则数据可能被非法拦截,网络可能遭受攻击而发生故障,造成云服务不可用。另外,传输时的操作不当可能导致数据在传输时丧失完整性或可用性。
在通信双方之间拦截正常的网络通信数据,并进行数据篡改、嗅探和转发,而通信双方完全不知情。在网络通信中,如果没有正确配置SSL(Secure Socket Layer,安全套接层),就可能出现此类风险。所以,通信前应由第三方权威机构对SSL的安装配置进行检查确认。
云安全联盟(Cloud Security Alliance,CSA)于2016年给出了“十二大云安全威胁”,可以认为是对上述安全威胁的概括和总结。
在云环境中,存储大量数据的云服务器,很容易成为黑客攻击的目标。而云服务器一旦受到攻击,所造成损害的严重性,取决于所泄露数据的敏感性。例如,存放在云服务器上的数据一旦发生泄露,企业可能会招致罚款,也可能会面临法律诉讼或刑事指控。数据泄露调查和用户通知的花费也有可能是天文数字。其他非直接影响,比如品牌形象下跌和业务流失,会持续影响企业数年。
云服务提供商通常都会部署安全控制措施来保护云环境,但是保护云端数据安全的责任,最终还是会落在使用云服务的企业身上。CSA建议企业采用多因子身份验证和加密措施来防止数据泄露。
数据泄露和其他攻击通常都是身份验证不严格、弱口令横行、密钥或凭证管理松散的结果。企业在试图根据用户角色分配恰当权限时,通常都会陷入“身份管理泥潭”。更糟糕的是,他们有时候还会在用户工作职能改变或离职时忘记撤销相关用户的权限。
多因子身份验证系统,比如一次性密码、基于手机的身份验证、智能卡等,可以有效保护云服务。因为有了多重验证,攻击者通过盗取密码登录系统的难度就增加了。在美国知名医疗保险公司Anthem数据泄露事件中,超过8千万的用户记录被盗,就是由于用户凭证被窃造成的严重后果。如果企业没有采用多因子身份验证系统,那么一旦攻击者获得了凭证,则可以随意进出系统。
将凭证和密钥嵌入源代码,并留在面向公众的代码库(如GitHub)中,也是很多开发者常犯的错误。CSA建议,密钥应当妥善保管,防护良好的公钥基础设施也是必要的。密钥和凭证还应当定期更换,让攻击者难以利用窃取的密钥来登录系统。
计划与云服务提供商联合进行身份管理的企业,需要理解云服务提供商用以保护身份管理平台的安全措施。将所有ID集中存放到单一库是有风险的。要想集中起来方便管理,就要冒着ID库被攻击者盯上的风险。如何取舍,企业需要根据实际情况进行权衡。
基本上,现在每个云服务和云应用都提供API(应用编程接口)。IT团队使用界面和API进行云服务管理和互动,服务的开通、管理、配置和监测都可以通过这些界面和接口完成。
从身份验证和访问控制,到加密和行为监测,云服务的安全和可用性依赖于API的安全性。由于企业可能需要开放更多的服务和凭证,建立在这些界面和API基础之上的第三方应用的风险也就增加了。弱界面和有漏洞的API将使企业面临很多安全问题,机密性、完整性、可用性和可靠性都会受到考验。
API和界面通常都可以从公网访问,也就成为系统最容易暴露的部分。CSA建议,对API和界面要引入足够的安全控制,比如“第一线防护和检测”。威胁建模应用和系统,包括数据流和架构/设计,已成为开发生命周期中的重要部分。CSA建议,应专注安全的代码审查和严格的渗透测试。
系统漏洞或者程序中存在可供利用的安全漏洞,都是不可避免的。但是,随着云计算中多租户的出现,这些漏洞产生的安全问题会更加严重。企业共享内存、数据库和其他资源,催生出了新的攻击方式。
针对系统漏洞的攻击,用“基本的IT过程”就可以缓解。最佳实践包括定期漏洞扫描、及时补丁管理等。
CSA报告表明,修复系统漏洞的花费与其他IT支出相比要少一些。部署IT过程来发现和修复漏洞的开销,比漏洞遭受攻击的潜在损害要小。敏感企业或机构(如国防、航空航天业实体)需要尽可能快地打补丁,最好是将其作为自动化过程和循环作业的一部分来实施。变更处理紧急修复的控制流程,要确保修复活动被准确地记录,并由技术团队进行审核。
网络钓鱼、诈骗、软件漏洞利用,是很常见的攻击方式。而云服务的出现又为此类威胁增加了新的维度。因为攻击者可以利用云服务窃听用户的活动、操纵交易、修改数据,并可利用云应用发起其他攻击。
常见的深度防护策略能够控制数据泄露引发的破坏。CSA建议,企业应禁止在用户和服务间共享账户凭证,还应在可用的地方启用多因子身份验证方案。用户账户,甚至是服务账户,都应该受到严密监管,以便每一笔交易都能被追踪到某个实际操作的人。关键就在于,要避免账户凭证被盗。
内部人员包括现员工或前员工、系统管理员、承包商、商业合作伙伴等。在云环境下,恶意的内部人员可以破坏掉整个基础设施,或者任意篡改数据。安全性完全依赖于云服务提供商的系统,比如加密系统,使其存在很大的风险。
CSA建议,企业应自己控制加密过程和密钥,分离职责,最小化用户权限。管理员活动的有效日志记录、监测和审计也是非常重要的。
不过,一些拙劣的日常操作也很容易被误解为内部人员的“恶意行为”。例如,管理员不小心把敏感用户数据库拷贝到了可公开访问的服务器上。鉴于潜在的暴露风险很大,在云环境下进行常规培训和规范管理对于防止此类低级错误,显得尤为重要。
CSA把APT比作“寄生”形式的攻击。APT渗透进系统时,会先建立起桥头堡,然后,在相当长的一段时间内,源源不断地、悄悄地偷走数据技术机密,就像寄生虫一样。
APT通常在整个网络内巡逻,混入正常流量中,因此,它们很难被检测到。云服务提供商应用高级技术阻止APT渗透进云基础设施,同时,用户也要经常检测云账户中的APT活动。
常见的切入点包括鱼叉式网络钓鱼、直接攻击、U盘预加载恶意软件和通过已经被黑的第三方网络。
CSA强烈建议,企业应培训用户识别各种网络钓鱼技巧。要定期进行意识强化培训以使用户保持警惕,IT部门更需要时时跟踪最新的高级攻击方式以维持主动局面。不过,高级安全控制、过程管理、事件响应计划,以及IT员工培训,都会导致安全预算的增加。企业必须要在这笔支出和遭到APT攻击可能造成的经济损失之间进行权衡。
随着云服务的成熟,由于云服务提供商失误导致的永久数据丢失的情况已经极少见了。但恶意黑客会用永久删除云端数据来危害企业,而且云数据中心跟其他任何设施一样对自然灾害无能为力。
云服务提供商可以多地分布式部署数据和应用以增强防护。足够的数据备份措施,坚守业务持续性和灾难恢复最佳实践,都是基本的防止数据永久丢失的方法。日常数据备份和离线存储在云环境下依然重要。
预防数据丢失的责任并非全部由云服务提供商承担。如果用户在上传到云端之前先把数据加密,那保护好密钥的责任就落在用户自己身上了。一旦密钥丢失,数据丢失的风险将显著提升。
合规策略通常都会规定企业必须保留审计记录和其他文件的保存时限。此类数据若丢失,就会产生严重的监管后果。
一家企业,若在没有完全理解云环境及其相关风险的情况下,就盲目将其业务上云,那可能会面临无数的商业、金融、技术、法律和合规风险。企业是否能够迁移到云环境,是否与另一家企业在云端合作,都需要事先进行尽职调查。没能仔细审查合同的企业,可能就不会注意到云服务提供商在数据丢失或泄露时的责任条款。
在将服务部署到特定云时,如果企业开发团队缺乏对云技术的了解,就会出现运营、架构等众多问题。CSA提醒企业,订阅任何一个云服务,都必须进行全面细致的调查,弄清可能要承担的风险。
云服务可能被用于支持违法活动,比如利用云计算资源破解密钥、发起DDoS(分布式拒绝服务)攻击、发送垃圾邮件和钓鱼邮件、托管恶意内容等。
云服务提供商要能识别出滥用类型,如通过检查流量来识别出DDoS攻击,还要为用户提供监测云环境健康的工具。用户要确保云服务提供商提供了滥用报告机制。尽管用户可能不是恶意活动的直接目标,云服务滥用依然可能造成服务可用性问题和数据丢失问题。
DoS攻击已经有很多年的历史了,在云计算中,这种攻击方式造成的威胁更大。在云计算共享资源的环境下,系统响应会被大幅拖慢甚至直接超时,能给攻击者带来很好的攻击效果。遭受DoS攻击,就像经历上下班时的交通拥堵,只有一条到达目的地的路,除了等待,毫无办法。
DoS攻击消耗大量的处理能力,最终都要由用户买单。尽管高流量的DDoS攻击如今更为常见,企业仍然要留意非对称的、应用级的DoS攻击,保护好自己的Web服务器和数据库。
在处理DoS攻击上,云服务提供商一般都比用户更有经验,准备更充分。关键在于,攻击发生前就要有缓解计划,这样管理员才能在需要时访问到这些资源。
共享技术中的漏洞给云计算带来了相当大的威胁。云服务提供商共享基础设施、平台和应用,一旦其中任何一个层级出现漏洞,整体都会受到影响。一个漏洞或错误配置,就能导致整个云服务提供商的云环境遭到破坏。
若一个内部组件被攻破,比如一个管理程序、一个共享平台组件,或者一个应用,整个环境都会面临潜在的宕机或数据泄露风险。CSA建议,企业应采用深度防御策略,包括在所有托管主机上应用“多因子身份验证系统”,启用基于主机和基于网络的入侵检测系统,应用最小特权、网络分段概念,实行共享资源补丁策略等。