尚 旭,刘晓毅,冯中华,崔 阳,金 鑫
(中国电子科技集团公司第三十研究所,四川 成都 610041)
云计算技术作为当前信息领域影响最大的技术之一,其发展应用给社会生活和国防领域带来了显著影响。云计算本质是一种新的IT资源(硬件、平台、软件)的组织和使用技术,引入了新的技术体系架构和组织管理模式,随之也带来了许多新的安全风险。其具有集中计算、资源动态变换、边界消失以及软件定义等特点,对传统基于边界的防护手段提出了新挑战[1-2]。
云平台的安全威胁可以分为外部威胁和内部威胁,典型关系满足冰山理论观点。外部威胁容易被关注,属于冰山之上的部分;内部威胁难以察觉,但其影响巨大,属于冰山之下的部分。两者的主要区别表现在以下3个方面。
(1)从安全威胁上看,外部威胁通常影响云平台用户使用和应用运行,属于被大众所关注得到的冰山之上的威胁。内部威胁来自安全边界内部,可以躲避防火墙、入侵检测等外部安全设备的检测。
(2)从攻击来源上看,内部威胁远大于外部威胁。据2018年Cybersecurity Insiders发布的“2018年内部威胁报告”显示,当今最具破坏性的安全威胁不是来自外部的恶意人员或恶意软件,而是来自可信赖的内部人员,无论是恶意的内部人员还是疏忽的内部人员。外部威胁影响的可能是冰山一角的某个业务或者服务,但内部威胁影响的是整个冰山下的信息系统基础设施。
(3)从攻击面上看,内部威胁的攻击面远大于外部威胁。外部威胁只有有限的攻击路径和攻击方式,但内部威胁容易选择从安全防御最薄弱的环节入手,威胁整个云环境的安全。
所以,随着云平台在国防、民生等领域的广泛应用,除云平台外部安全以外,其自身的安全性研究更加迫切。
目前,云安全联盟CSA在云安全指南基础上推出的“云安全控制矩阵CCM”成为云计算信息安全行业黄金标准,提供了评估云供应商整体安全风险的基本安全准则。CCM围绕云计算体系架构,提出了16个安全域,包括应用程序和接口安全、审计保障与合规性、业务连续性管理与运营恢复、变更控制和配置管理、数据安全与信息生命周期管理、数据中心安全、加密与密钥管理、治理与风险管理、人力资源安全、身份与访问控制、基础设施与虚拟化安全、互操作与可移植性、移动安全、安全事件管理、电子发现与云取证和供应链管理以及透明与可审计、威胁、脆弱性管理。通过这16个安全域构建了统一的云安全控制框架,期望减少云中的安全威胁和弱点,从而为强化现有的信息安全控制环境提供标准化的安全和运营管理[3]。
在云安全产业层面,亚马逊、阿里云、华为云等云计算厂商都推出了云安全责任共担模型,明确区分了用户的安全责任和云厂商的安全责任。云上由租户承担,云下由云厂商提供,而用户的安全通常由安全厂商来保障。云安全共享责任模型,如图1所示。
图1 云安全共享责任模型
云上安全方面,各个安全厂商基于云平台的特点,主要在虚拟主机安全、云平台东西向网络安全以及南北向网络安全方面做了很多努力,提出了如下一代防火墙、安全资源池、vWAF、vIDS/IPS等虚拟化安全产品。
天融信云计算安全方案包含从外到内的3层纵深防御体系,主要由传统物理边界安全设备、安全资源池、分布式防火墙以及vSecCenter云安全管理平台等组成。
绿盟云安全方案参考了安全域纵深主动防御思想,具备完整的云平台东西向安全防御、南北向安全防御以及安全资源池统一管理和控制能力[4]。
云平台安全方面,各个云平台厂商也构建了较为全面的云平台安全防御能力。
阿里云提出了“五横两纵”的7个维度的安全架构保障。两个纵向维度分别为账户安全(身份和访问控制)以及安全监控和运营管理。五个横向维度包括最底层的云平台层面安全、租户层面的基础安全、数据安全、应用安全和业务安全。
华为云提出了多维全栈的云安全防护体系,核心包括物理与环境安全、网络安全、平台安全、API应用安全以及数据安全5部分。
综上,无论是针对云平台的安全标准制定,还是云厂商的安全防护建设,学者和工程师们都进行了大量研究和实践。但是,从公开的资料来看,针对云平台自身核心组件和机制的安全体系研究较少。因此,本文将结合云平台机理,从攻击的角度出发,探索云平台安全风险,并结合内生安全的设计思想,探讨云平台的内生安全技术。
众所周知,云平台分为IaaS、PaaS和SaaS共3层。IaaS是基础,管理云计算环境下所有的服务器、网络、存储等物理设备,并将其虚拟化为虚拟机、容器、虚机网络、虚拟磁盘等动态、可调度的云资源。PaaS层基于这些抽象出来的云资源为上层应用构建平台级服务。SaaS层基于部分平台服务和云资源构建云上应用服务。所以,研究云平台的自身安全需要从源头出发,通过打开IaaS层的黑盒,分析其组件功能和运行机理,从而找出潜在的安全风险。
云平台的IaaS层定义为通过隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境[5]。宿主机内提供这一虚拟化能力的组件称为虚拟机监视器(Virtual Machine Monitor,VMM),如图2所示。
图2 开源KVM云平台架构
(1)Qemu。用户态的一个虚拟化模拟程序,提供一个完整的虚拟主机设备模拟,包括BIOS、CPU、内存、磁盘、网卡、声卡等虚拟设备。一个Qemu进程对应一个VM运行空间。
(2)KVM.ko。linux内核中为Qemu提供虚拟化中断和IO支持的模块。
(3)libvirt。一个虚拟机管理的标准库,运行在宿主机,支持管理KVM、XEN等平台虚机,提供虚机创建、启动、暂停、关机以及销毁等接口。
(4)存储虚拟化。后端SAN存储通过LVM切割划分为LV,提供给虚拟机作为虚拟磁盘使用,或者分布式存储直接提供块设备作为虚拟磁盘。
(5)网络虚拟化。通过OVS虚拟交换机为虚拟机提供通信功能。Qemu模拟的虚拟网卡与虚拟交换机相连,交换机与物理网卡相连。
(6)虚拟化管理平台。对宿主机集群及其虚拟化资源进行统一管理,包括虚机动态迁移、宿主机弹性伸缩、虚拟机磁盘、CPU以及内存管理等。
(7)VDI协议。用户在网络可达的任意位置通过远程连接协议对虚拟机进行远程访问。
针对IaaS层的安全风险,本文从分层模型和攻击路径两个视角进行分析。
从分层模型来看,它主要包括虚拟机安全风险、数据和存储安全风险、虚拟化监视器安全风险、网络虚拟化安全风险以及管理平面安全风险5个部分[6]。
3.1.1 虚拟机安全风险
虚拟机面临传统主机系统的所有安全风险:操作系统和数据库被暴力破解、非法访问的行为;对服务器的Web应用入侵、上传木马以及上传webshell等攻击行为;补丁更新不及时导致的漏洞利用;不安全的配置和非必要端口的开放导致的非法访问和入侵。
3.1.2 数据和存储安全风险
在云计算环境中,存储虚拟化的引入、物理存储资源的共用和复用、虚拟机的数据(磁盘内容)以文件的形式存储在物理存储介质上(可通过网络方式访问)等,会带来以下安全风险:
(1)数据在传输过程中受到破坏而无法恢复;
(2)在虚拟环境传输的文件或者数据被监听;
(3)虚拟机的内存和存储空间被释放或再分配后被恶意攻击者窃取;
(4)同一个逻辑卷被多个虚拟机挂载,导致逻辑卷上的敏感信息泄露;
(5)云用户从虚拟机逃逸后获取镜像文件或其他用户的隐私数据;
(6)虚拟机迁移和敏感数据存储漂移导致的不可控;
(7)数据安全隔离不严格导致恶意用户可以访问其他用户数据;
(8)虚拟机镜像遭到恶意攻击者篡改或非法读取。
3.1.3 虚拟化监视器安全风险
在云计算环境中,资源是通过虚拟化监视器(hypervisor等)的方式对资源进行逻辑切分,存在以下安全风险:
(1)hypervisor管理器缺乏身份鉴别,导致非法登录hypervisor后进入虚拟机;
(2)攻击者控制单台虚拟机后,通过虚拟机漏洞逃逸到hypervisor获得物理主机的控制权限;
(3)攻击者控制单台虚拟机后,通过hypervisor漏洞访问其他虚拟机;
(4)缺乏QoS机制,导致虚拟机因异常原因产生资源占用过高发生宿主机或宿主机下的其他虚拟机的资源不足问题,出现正常业务异常或不可用的情况;
(5)缺乏对虚拟机的“监、控、防”机制,不能及时发现攻击行为,待攻击者攻破虚拟系统后,可以进行任意破坏行为、网络行为以及对其他账户的猜解和长期潜伏;
(6)虚拟机可能因运行环境异常或硬件设备异常等原因出错,影响其他虚拟机;
(7)hypervisor等核心组件缺乏完整性检测,存在被破坏和被篡改的风险。
3.1.4 网络虚拟化安全风险
在云计算模式下,网络虚拟化的引入、物理网络资源的共享、传统边界的消失等,会带来以下安全风险:
(1)传统的防火墙、IDS、IPS等网络安全设备只能部署在物理网络的边界,无法对虚拟机之间的通信进行细粒度访问控制;
(2)网络资源虚拟化后,导致传统网络边界消失,无法有效对云环境流量进行审计、监控和管控;
(3)单台虚拟机被入侵后对整片虚拟机进行渗透攻击,并导致病毒等恶意行为在网络内传播蔓延,直接威胁到整个虚拟网络甚至计算平台的安全运行;
(4)虚拟机之间进行的ARP攻击、嗅探;
(5)云内网络带宽的非法抢占;
(6)内部用户之间或者虚拟机之间的端口扫描、暴力破解以及入侵攻击等行为。
3.1.5 管理平面安全风险
管理平面安全风险主要涉及如下方面:
(1)虚拟化管理软件自身存在安全漏洞,导致被攻击者入侵,通过管理平面破坏云平台;
(2)缺乏统一的、高安全的认证和鉴权体系,导致云平台管理员因账号非法冒用、暴力破解等带来安全威胁;
(3)管理员权限集中,缺乏审计和回溯机制,导致管理平面安全风险;
(4)管理平面缺乏安全设计,导致对服务器、宿主机、虚拟机等进行操作管理时存在被窃听、重放的风险。
从攻击路径来分析,IaaS层安全风险主要分为宿主机攻击、虚机逃逸攻击、VDI协议攻击以及接口攻击,如图3所示。
3.2.1 宿主机攻击
如图3中的攻击路径①,恶意管理员或者系统黑客对宿主机进行密码破解、漏洞渗透后进入系统,能够对虚拟磁盘进行恶意读取、毁坏,造成数据泄露、破坏等安全威胁,同时也将威胁Qemu、libvirt等核心虚拟化组件,通过替换、病毒注入等方式,从下往上侵入虚拟机,造成信息泄露等安全风险。
图3 云平台IaaS层攻击路径
3.2.2 虚机逃逸攻击
如图3中的攻击路径②,虚机用户利用Qemu中模拟设备驱动漏洞获取在宿主机的用户态甚至内核态特权,从而完成从虚机到宿主机的入侵;通过截获虚机管理控制流,实施窃取密码或者回放攻击、同驻攻击等;通过恶意Dump或者读取其他虚机的内存,实施内存跨域攻击;通过宿主机访问云管理网络,从而攻击其他相邻主机,造成DDoS、入侵等攻击蔓延。
3.2.3 VDI协议攻击
如图3中的攻击路径③部分,目前,大量使用开源VDI协议组件。用户使用恶意VDI客户端冒充合法用户连接虚机,对协议中的图像数据进行窃取、破坏、篡改等。
3.2.4 接口攻击
如图3中的攻击路径④,通过抓包窃取用户账户,恶意执行管理调度行为,如恶意执行快照回滚造成数据丢失、引发迁移风暴耗尽云资源等。
针对以上IaaS云平台内部威胁,采用安全机制与云平台融合设计的理念,探索云平台内生安全设计[7-8],如图4所示。通过对云平台内VMM、VDI协议、管理平台等组件从“监”“控”“防”3个维度进行设计改造,确保云平台IaaS层的内部威胁“看得见”“控得住”“防得了”。
图4 云平台IaaS层内生安全设计
(1)“看得见”。在VMM层加入监视模块,确保能及时发现进入宿主机的攻击。通过在宿主机操作系统层开放内核跟踪功能,对系统调用、指令序列、信息流、IO序列等进行跟踪,目标是对从攻击路径①②进入宿主机系统发起的中断风暴、非法磁盘IO读取写入(非法/敏感文件路径)、恶意系统调用(Dump)、非法控制流等攻击进行监控、上报。在网络虚拟化安全方面,内核网络协议栈增加内生防火墙模块,在虚拟网卡和虚拟网桥之间建立虚拟机流量的过滤和监控机制。相比安全厂商通过引流到旁路防火墙进行过滤和监控的机制,这种方式更不容易被绕过,且效率更高。
(2)“控得住”。在VMM层加入控制模块和控制驱动,确保攻击一旦被发现,能够有效阻断,限制其攻击和蔓延。这主要包括:在宿主机操作系统层,增加对恶意逃逸虚拟机的Qemu进程的控制模块,如增加降低风险虚拟机进程调度优先级控制指令,限制风险虚拟机的资源占用;通过在内核网络协议栈的内生防火墙模块,限制风险虚拟机的网络流量转发、传播行为;通过在宿主机内核数据路径侧限制风险虚拟机存储读写速率,限制其对存储资源的占用。在存储访问控制方面,增加在执行敏感指令时的多员确认机制,如磁盘的销毁、复制、快照回滚、来自其他进程的IO访问等,从而防止磁盘恶意破坏、恶意越权访问等攻击。在虚拟化管理方面,增加三员分权管理,对管理权限进行三员划分,减少超级权限带来的安全风险,增加对管理操作的审计,防止恶意管理员的蓄意攻击。
(3)“防得了”。通过将加密、认证、可信等安全防御技术融入IaaS层云平台内部,从而强化IaaS层云平台的安全防护能力[9]。在IaaS层云平台组件安全方面,通过在VMM中增加组件完整性度量模块,在虚拟化组件启动前或者运行中,对Qemu、libvirt、KVM等关键组件的可执行程序和配置进行完整性度量,防止病毒注入、组件替换等攻击。在数据安全方面,虚拟机磁盘、快照、镜像是IaaS层数据的核心资产。通过加密、完整性校验和剩余信息擦除技术,在虚拟机的全生命周期对虚机磁盘、快照、模板镜像全链路加密、完整性校验以及残余信息擦除,确保虚拟机在迁移、备份、导入导出等场景下,磁盘、快照、模板未被非法访问、篡改以及病毒植入等。在管理平面安全方面,增加API安全保护机制,增加时间戳超时机制、拒绝重复调用,限制在一段时间内同一用户调用次数,防止重放攻击,同时对IaaS云平台管理链接口调用(管理平台→libvirt→Qemu)进行层层鉴权认证,防止中间非法调用和指令下发。
针对云平台内部安全威胁,通过将安全机制与云平台融合的内生安全防护设计,可以有效避免目前旁路式、外挂式云安全防护手段无法实施、高效应对云平台内部安全威胁的问题,并具有不可绕过、性能开销小等优点。从试验结果来看,该机制能够有效应对内部恶意管理、虚拟机逃逸、越权访问等多种云内部安全威胁场景,具备较为广阔的应用前景。
但是,该机制需要与云平台内部组件和机制相结合,对云平台组件改造和接口开放要求较高,需要云平台厂商和安全厂商深度配合才能完成。未来,随着云安全的逐步深化,有望通过云的安全标准促进云厂商自身内在安全的发展,通过开放更多标准化接口吸纳安全厂商的云平台加固组件,从而推动云平台内生安全的发展和应用。