当前位置: 首页>>保密技术

基于KVM/QEMU虚拟化系统的多租户安全隔离技术研究

作者: 文章来源:国家保密局官方网站 发布时间:2021-05-07 浏览量: 字体: 【大】 【中】 【小】

【摘 要】 本文基于KVM/QEMU底层内核,研发了一套应用多租户安全隔离技术的服务器虚拟化系统,阐述了该系统自主可控虚拟化多租户安全隔离的技术框架,并通过在多家军工单位的部署应用,实现了对网络和用户数据的机密性、完备性、隔离性的安全防护。

【关键词】 虚拟化 强制访问控制 网络安全

1 引言

虚拟化安全作为我国推进自主可控进程中的重要研究内容之一,是国家基础软件领域的核心目标[1]。由于虚拟化技术在我国起步较晚,导致国外厂商产品在国内的应用较为普及。在虚拟化安全方面,我国研发设计及标准化工作正处于起步阶段。虚拟机之间共享物理资源,多租户之间能够通过侧通道攻击来从底层的物理资源中获得有用的信息,成为虚拟化安全面临的重要研究课题。

2 虚拟化安全

目前,云计算的发展处于虚拟化技术与企事业单位业务深入融合所带来的全新变革阶段,随着虚拟化的推广,虚拟环境遭受的攻击愈加多样化,现阶段最为紧要的任务是解决虚拟化环境下的安全问题[2],主要包括以下4个方面。

(1)外部攻击

虚拟环境下服务器和虚拟机同样面临着与物理环境中一样的安全风险,例如恶意软件、病毒感染、漏洞利用和SQL注入等手段。

(2)内部攻击

伴随着云计算边界消失,数据安全无法得到保证。虚拟机之间的攻击、流量不可见,导致无法进行有效检测和防护。

(3)资源分配

在虚拟机上同时执行病毒扫描和防病毒更新等占用内存、CPU、网络带宽等操作会导致系统资源分配不均,在快照、休眠、迁移等过程中会产生防护间隙。

(4)安全管理

虚拟环境的复杂性使安全管理变得困难,在集群中虚拟机可动态迁移、自主配置,这使得实施、维护、配置安全策略变得复杂。

3 虚拟化系统

由于虚拟化环境的开放性和网络复杂性,核心重要资源面临着安全威胁。本文基于KVM/QEMU底层内核,自主研发了一套安全稳定的国产虚拟化系统,其主要结构如图1所示,本系统在虚拟化基础上采用角色管理、策略控制、日志审计、身份认证等访问控制安全措施,利用虚拟化构建了虚拟机房环境。

3.1 网络安全

(1)管理、数据通信分离

通过虚拟网桥绑定不同的物理网口,让管理口和虚拟机数据口互相隔离。

(2)QoS流量控制

提供虚拟机网络流量和接口带宽的安全管理功能,控制虚拟机的网络流量,保证整个虚拟系统的稳定性。

(3)虚拟防火墙

能抵抗外部发起的针对虚拟化产品及虚拟机的拒绝服务攻击;能抵抗内部发起的针对虚拟化产品及其他虚拟机的拒绝服务攻击;能阻止内部发起的针对虚拟网络外部的拒绝服务攻击。

(4)访问控制

通过设置访问控制规则,提供虚拟机和宿主机之间的资源管控及虚拟机之间的资源管控,确保虚拟机之间的资源隔离、内存隔离、存储隔离,防止虚拟机镜像文件的异常挂载,保障虚拟机运行安全。

3.2 网络隔离

(1)物理资源与虚拟资源隔离

保证每个虚拟机都能获得独立的CPU指令、内存和存储等物理资源;在虚拟机监视器层提供虚拟机与宿主机之间的安全隔离措施,控制虚拟机之间以及宿主机之间所有的数据通信,并禁止或限制虚拟机对物理存储实体的直接访问。

(2)虚拟CPU指令隔离

通过虚拟机虚拟CPU与物理主机物理处理器核心绑定的方式,实现各个虚拟CPU隔离。物理CPU核心只能绑定一个虚拟CPU核心。在这种方式下,因为每个虚拟CPU的计算负载、指令实际运行在被绑定的物理核心上,而且不同的虚拟机CPU对应不同的物理核心,因此各个虚拟CPU的指令是相互隔离的。

(3)内存隔离

使用KVM+QEMU虚拟化技术,以Linux操作系统作为基础平台。在该技术方案下,每一个虚拟机对应一个QEMU进程,QEMU进程提供虚拟机运行所需要内存等所有资源,即虚拟机使用的内存等资源属于被分配给QEMU进程的内存资源。在Linux操作系统下,不同的进程之间是相互隔离的,不同进程之间的虚拟地址相互独立,每个进程无权访问其他进程的地址空间,即内存空间相互隔离。因此虚拟化系统中每个虚拟机的内存空间也是相互隔离的。

4 多租户安全隔离技术

虚拟化环境中虚拟机之间的隔离程度是虚拟化平台安全的关键,多租户虚拟化系统是指允许大量的用户可以通过共享虚拟化系统上的数据资料和服务资源来实现服务需求。由于虚拟化环境的开放性、边界模糊和网络复杂性,核心重要资源面临着非授权访问、越界访问等安全威胁。现有的虚拟机隔离机制主要包括以下4种。

(1)硬件提供的内存保护机制

系统管理模式(System Management Mode,SMM)是一个对所有Intel处理器都统一的标准体系结构特性,在这种模式下可以执行高级电源管理、硬件控制和运行OEM代码。然而它对系统是透明的,这种硬件提供的保护机制是不可控的。

(2)硬件协助的安全I/O管理机制

硬件协助的安全I/O管理机制能够利用加解密密钥控制虚拟机占用的内存空间、I/O复用等问题,将各虚拟机与管理主机、虚拟机与虚拟机之间的内存、虚拟I/O设备隔离开来,达到增强虚拟机之间隔离性的目的。

(3)进程地址空间的保护机制

当进程启动时,系统会为其分配地址空间,这些地址空间对于每个进程来说都是私有的,其他进程不可访问,只有进程中的线程能够访问。然而现在进程地址空间很容易被远程注入、系统钩子等手段侵入。

(4)虚拟池、资源池地址逻辑隔离

服务器将租户请求的资源池地址进行正交化隔离,不同的虚拟池也需要进行安全隔离,同时对租户的访问权限信息进行正交化隔离,例如域名地址、用户名、密码等,以确保各个虚拟池间的物理地址安全隔离。

5 多租户访问控制体系

在虚拟化环境下,用户之间的通信由访问控制保证,由于每个用户也都有自己的访问控制策略,而在跨多个域的资源共享与访问时需要对共享资源制定一个公共、双方都认同的访问控制策略,更使得整个虚拟化系统的访问控制变得复杂,对访问控制策略的管理正逐渐成为虚拟化系统重要的研究方向。虚拟化环境下访问控制体系框架如图2所示。

虚拟化访问控制架构可以分为用户、云平台、网络基础环境3个部分。在用户和虚拟化环境之间通过访问控制规则(如访问控制列表ACL等)和访问控制策略进行访问控制。在虚拟化系统中,虚拟机之间进行虚拟设备的访问控制,对于存储在虚拟化系统内部的数据可以采用基于某种访问控制策略和基于密码学的访问控制相结合的手段进行安全防护。在虚拟化系统和网络基础环境中采用访问控制规则进行访问控制。

虚拟化访问控制体系研究主要包括权限控制、身份认证、策略管理、行为审计等内容。

5.1 权限控制

权限控制是虚拟化系统安全运行的基础,包括群组管理、虚拟用户管理和权限管理3部分,能够为系统安全、灵活运行提供安全保障。虚拟化通过定义不同的角色,将权限与角色进行结合,实现虚拟资源的安全使用。同时为杜绝超级管理员权限过大带来的不安全因素,系统设置系统管理员、安全管理员、审计管理员3种管理角色,系统管理员负责虚拟资源的运行维护,安全管理员主要负责对虚拟资源的审计,审计管理员负责对管理员行为进行监控,3种角色之间能够相互制约相互监督,防止权限集中带来的安全隐患。群组管理是权限控制的基础,为后续的虚拟用户管理、权限管理与资源安全访问控制提供可能。通过群组管理与权限管理相结合实现多个虚拟用户权限的集中控制,提高系统的易用性,如图3所示。

虚拟用户管理是角色管理的重要组成部分,虚拟用户是使用虚拟资源的实际个体,也是虚拟资源的最终使用者,能够对虚拟资源进行访问。系统通过为不同的虚拟用户分配不同的权限实现虚拟用户间使用资源的隔离,保证用户数据的安全性。

权限是对虚拟资源访问的许可,权限管理是系统安全运行的必要保障。权限过大会降低虚拟资源数据的安全性,不仅能够给每个用户设置权限,而且能够设置组权限,在提高安全性的同时增加系统的易用性。同时,除普通用户、组权限之外,角色管理实现了用户与访问权限、资源的逻辑分离。

5.2 身份认证

在用户身份的认证上,利用USBKey技术,结合动态口令技术,全面替换操作系统的认证模块,实现用户身份的登录系统一次一密,用户登录系统时需要通过USBKey或生物识别认证,并将用户使用的客户端MAC信息进行认证;通过和PKI技术及身份认证技术结合,保证用户身份的唯一性;通过USBKey或生物识别认证进行登录, 保证管理员身份的合法性, 进而保证系统安全性,确保用户身份安全认证。

5.3 策略管理

策略管理是保证虚拟化系统安全运行的有效方式,策略是对虚拟用户要求、虚拟环境安全要求等方面的集中体现。系统通过设置安全访问策略,实现用户对虚拟资源的访问控制,通过设置数据流的单向、双向策略保证用户数据的安全性;通过设置外设安全策略保证外设设备的安全使用。

5.4 行为审计

行为审计能够支持用户操作日志与虚拟机操作事件的审计管理,详细审计每个虚拟机操作的具体开始时间、结束时间和具体操作行为,以及管理员的登录、退出、创建和删除虚拟机以及创建和删除用户等各类事件的具体行为和时间增强系统的安全性。同时能够审计系统的故障错误,为增强系统的可靠性提供有力支撑。

6 结语

随着云计算的蓬勃发展,虚拟化系统租户数量的不断上升,安全威胁所带来的危害也急剧增加,因此需要定期对云平台各类威胁及多租户安全隔离问题进行安全风险评估,以实现对安全风险有效的控制与处理,提高系统对异常访问的预警能力并对它进行安全隔离。针对虚拟化技术的多租户架构平台的安全威胁,为虚拟化系统应用提供机密性、完整性、真实性、可控性和可用性保障是必要的。

(原载于《保密科学技术》杂志2020年10月刊)

扫码浏览