在传统计算机系统中,攻击者可通过软件攻击或物理攻击访问密码服务的内存空间,非法获取密钥。虚拟化技术的引入,带来了如下可用于直接攻击的渠道, 攻击者有可能利用如下渠道发起攻击:
(1)虚拟机运行状态信息可被虚拟化平台管理员直接读取
虚拟机监控器可以存储含有虚拟机所有内存数据和运行状态的快照文件, 恶意的虚拟化平台管理员(或者是具有虚拟化平台管理员权限的攻击程序)可以据此分析虚拟机上的密码服务并获取密钥。虚拟机监控器的超级权限在传统计算机系统中并不存在。快照文件中含有所有的内存、Cache 和寄存器数据, 现有的大多数密钥安全方案都无法抵抗此类型攻击。
(2)恶意虚拟机将宿主机作为攻击跳板
同一宿主机上的多台虚拟机共享硬件平台。在公有云平台上,攻击者可以很容易地租用自己的虚拟机,利用硬件平台共享,将宿主机作为跳板,向其它的虚拟机发起攻击。虚拟机监控器实现中存在的漏洞使得恶意虚拟机能够实施虚拟机逃逸(VM Escape),绕过虚拟机监控器的限制访问其它虚拟机。在原有独立运行的计算机系统中,各计算机不共享资源, 也没有以上的攻击。
(3)虚拟化平台操作导致新的数据扩散渠道
为了提高资源利用率,一台宿主机中往往运行着多台虚拟机,一些常见的功能或应用都可能导致数据从一台虚拟机扩散到另一台虚拟机。例如,虚拟化平台的共享剪切板功能会使虚拟机的内存数据泄露至宿主机,或者使宿主机的内存数据扩散至虚拟机。由于宿主机物理内存的限制,相比于传统计算机而言,虚拟机的内存数据扩散暂存到硬盘的可能性更大,导致更多的攻击机会。
上述的三类攻击途径都是虚拟机环境特有的:由共享宿主机资源引入跳板产生了这些攻击,在原有独立运行的计算机系统中不存在。