装箱百万奖金,第六届全国工业互联网数据创新应用大赛火热报名中! 了解详情
写点什么

解读论文:无需提权就能检测硬件虚拟化环境

  • 2020-08-11
  • 本文字数:3920 字

    阅读完需:约 13 分钟

解读论文:无需提权就能检测硬件虚拟化环境

虚拟化作为云计算系统中的一种基础技术,近年来,它不仅广泛应用于云服务器,也广泛应用于个人桌面。那么,究竟虚拟化技术是什么,为什么它有这么重要的作用?


想象有两个场景:


  1. 空旷的厂房,整个楼层没有固定的墙壁,从事各式工种的工人和机器设备扎堆聚集,无法形成流水化的高效作业。

  2. 开放的冷藏库里,面包、龙虾和榴莲裸露的存储在一起,没有任何封装和隔离。长久下去,面包有了龙虾味儿,龙虾有了榴莲味。


从上面两个例子里,我们不难看出,在空间资源一定的条件下,需要根据不同的需求进行重新规划,从而充分发挥最大的利用效率。在计算机领域,就存在一种技术可以解决上面的问题,那就是"虚拟化技术"。


虚拟化(Virtualization)技术最早出现在 20 世纪 60 年代的 IBM 大型机系统,在 70 年代的 System 370 系列中逐渐流行起来,这些机器通过一种叫虚拟机监控器(Virtual Machine Monitor,VMM)的程序在物理硬件之上生成许多可以运行独立操作系统软件的虚拟机(Virtual Machine),通俗说就是“把一台电脑虚拟成 N 台电脑”。


同样,虚拟化在云计算的应用也是如此。云计算本身就是把一个巨大无比的服务资源划分成很多小空间来使用,所以这也就解释了为什么虚拟化是云计算最基础的软件设施。


虚拟化环境下的恶意程序分析

在计算机安全方面,虚拟化技术也有很广泛的应用,比如,安全人员能够利用虚拟化环境进行安全分析测试。虚拟化技术的出现弥补了安全动态分析测试服务器资源不足、系统不纯净以及环境搭建周期长等问题,同时又不会“中伤”到本地操作系统,它可以起到隔离作用,还能够严格控制运行在其中的程序行为,可谓“一举多得”。


有了虚拟化技术,安全人员便能够在一个孤立的环境中进行不同类型的安全动态分析。通常可以在虚拟环境中运行样本,利用监控模块提取样本的进程、内存、文件、注册表、网络等行为数据, 通过对这些行为数据的汇总分析来推断样本的功能和恶意性。


这种测试听起来合乎常理,没有什么大问题,然而有没有可能上演这样的一幕:


在电影《楚门的世界》里,楚门从一出生,他的生活就被全球 24 小时直播,身边所有的人都是演员,生活的城市就是一个巨大的摄影棚,连太阳、月亮甚至大海都是人造机器所操控的。

但是,“人造的世界”开始出现异常,莫名其妙天上掉下个录影棚灯,去世的父亲变成乞丐重新回来,初恋女友莫名其妙地消失不见……

随着越来越多的异常出现,楚门开始主动检测那个世界的异常,并且证明这就是一个“虚拟化环境”,最终躲开镜头,扬帆出海,获得自由…


没错,恶意程序的作者也和楚门一样,意识到了虚拟化环境中的异常,为有效地逃避虚拟化分析测试、攻击本地系统,他们掌握一种可以反虚拟化环境的技术,利用这项技术可以检测虚拟运行环境的存在,并隐藏他们的恶意行为,从而逃避安全研究员的分析。


也就是说,安全人员在虚拟化环境下分析恶意软件时,按照我们前面介绍的虚拟化技术原理下,恶意软件就会以为自己在一台“真的机器”里,但现在存在一些检测方法,可以让软件识破自己其实是在虚拟机里,拥有了“上帝视角”的恶意软件,有的“装傻卖乖”不再搞破坏,企图混过安全人员的分析,又或者是直接选择自毁,总之不管采用哪种办法,最终目的只有一个,就是“让安全研究员没办法研究我”恶意软件如是说。


因此,为了对抗恶意程序的反虚拟化问题,需要安全研究人员掌握更高效便捷的虚拟化环境检测技术,从而构建起更难以被检测、更透明的分析系统。


在本篇论文中,百度安全研究员对此做出深入探索,并研究出了最新硬件虚拟化检测技术,无须提权就能实现对硬件虚拟化环境的检测。


传统硬件辅助虚拟化检测技术存在缺陷

首先,我们来看看,目前恶意软件使用了哪些虚拟化检测方法。总结来说,他们广泛使用了两种虚拟化检测方法。


  • 第一种方法是查找虚拟机监视器或虚拟机本身留下的特定痕迹;

  • 另一种则是对硬件引起的计时差异进行分析,以用来标记。


然而,第一种方法存在很大的局限性,这种方法的原理主要依靠查找虚拟机监视器或虚拟机本身留下的特定痕迹,通常仅用于识别传统的基于软件的虚拟化。为了给用户操作虚拟机提供方便,一些虚拟机监视器将主机插入 Guest OS 中,但这些痕迹可以轻易被恶意软件发现。常见的痕迹包括 Guest OS 中运行的进行和服务、文件或注册表键值等,像 CryptoWall、shi 和 Kronos 这样流行的恶意软件都能够通过利用这些痕迹来检测虚拟化的存在。


而目前,随着 X86 处理器性能的提高和应用的普及,市面上主流的虚拟化更多依托的是硬件辅助虚拟化,论文中百度安全研究员重点对已知的硬件辅助虚拟化检测技术做了实验分析,结果可见表 1。



硬件辅助虚拟化检测技术效果对比


从表 1 可见,目前已知的硬件辅助虚拟化检测技术均存在可被移除、需要特权账户或触发大量可疑的 VM 退出事件等缺陷。针对这些问题,百度安全研究员推出了全新的虚拟化硬件检测技术,能实现在非特权状态下,不引发大量可疑事件,极具隐藏性的全新检测技术。


百度安全提出新型硬件辅助虚拟化检测技术

那么,百度安全提出的新型硬件辅助虚拟化检测技术是如何实现的呢?接下来,我们就一起跟随论文中的阐述具体来看。


整个工作分为两个阶段:(1)offline 阶段和(2)online 阶段(例如图 1)。Offline 阶段主要是采集特征属性在虚拟化环境(virtualized)和非虚拟化环境(native)的不同。这些数据可以保存起来,用于 online 阶段的检测。在 online 检测阶段,针对不同属性的划分,可以很容易的判断当前运行环境是否跑在了虚拟化缓解。



虚拟化检测的两个阶段


为了验证方法的有效性,百度安全研究员进行了实验研究,通过三台本地机器验证三种检测技术以及三家主流云供应商,结果详见表 2。



每个主流云提供程序上的三个本地机器和三个虚拟机的系统配置


接下来,我们将采用三个特征属性来给大家展示如何检测虚拟化环境。


1. 利用 TLB 的延迟来检测

为最大程度地减少两层的内存占用地址转换,现代处理器在虚拟环境中有两种类型的 TLB,即 hPT-TLB 和组合的 TLB。如图 2 所示,hPT-TLB 用于将地址从 GPA 加速到 HPA。组合式 TLB 存储 GVA 之间的映射和 HPA,类似于本机环境中的 TLB,并且缓存从 VA 到 PA 的地址转换。


直观地讲,一种可能的方法是测量内存访问(仅导致 TLB 丢失)并确定阈值,虚拟化可以在阈值之上被检测到。阈值可以通过比较确定本机和虚拟系统上的时间延迟。如果延迟被测得高于阈值,然后人们认为环境是虚拟的;否则它是本地的。但是,这种方法存在着误差,即内存访问所花费的时间因每个微体系结构而异。


因此,很难确定合理的绝对阈值。相反,我们使用导致 TLB 的 miss 和 hit 直接的差值来确定这个相对阈值。我们还因此设计了一个 Prime+probe 的算法完成此事(详细算法参加发表的文章)。



TLB miss 在地址转化过程中的流程



在 Amazon EC2,Microsoft Azure 以及 Google Cloud 上面的检测结果。我们很容易看到虚拟化和本地系统在 TLB miss 方面的巨大差异。


2. 利用 LLC Miss Penalty 来判断

在现代操作系统中,访问 GVA 时硬件会走页面表进行地址转换。对于每个 Guest 页表遍历,硬件也遍历 host 页表确定相应的 HPA。为方便访问,不仅相关的地址转换将被缓存到 TLB 中,而且访问的四级页表条目(PTE)将存储到 CPU 缓存中。


如图 2 所示,虚拟化环境将使用缓存以总共存储 16 个主机 PTE 和 4 个 Guest PTE,而本机环境仅需要 4 个 PTE。如果再次发生相同的访问,将首先查找 TLB。如果发生 TLB 缺失(即没有 TLB 条目均不包含地址翻译层),则将进行页表遍历。由于最近的 PTE 在 CPU cache 中,因此硬件将查找 cache 以检查其存在。如果不是在 cache 中,然后硬件从主设备获取它们内存。在这种情况下,两页的页表清晰可见与在本机环境。类似于基于 TLB 的测量,我们使用导致 TLB 和 PTE 引起的访问延迟


LLC miss 减去 hit 的等待时间,并把结果存储作为阈值。如果其他减去结果明显超出阈值,那么可以得出结论,环境是虚拟化。



在 Amazon EC2,Microsoft Azure 以及 Google Cloud 上面的检测结果。我们很容易看到虚拟化和本地系统在 LLC miss 方面的巨大差异。


3. 利用 L1D 缓存的不稳定性进行检测

在本机环境中,进程调度允许进程竞争一个物理 CPU。 在虚拟化在环境中,CPU 虚拟化允许物理 CPU 在多个虚拟 CPU 之间共享。 它允许多个在一台计算机上运行的不同操作系统。 在同时,不仅进程竞争虚拟 CPU,而且虚拟 CPU 竞争共享的物理 CPU,从而加剧了竞争,导致 L1D 缓存的不稳定性加剧。


此外,虚拟 CPU 是通常会迁移到不同的物理核心以优化负载平衡。 考虑到 L1D 缓存是物理设备专用的 CPU,并且 L1D 缓存的大小非常有限,攻击者可以预计多少个 entry 被 evict 出 L1D。这个数字在有虚拟化的环境下,将会大大提高。



在 Amazon EC2,Microsoft Azure 以及 Google Cloud 上面的检测结果。我们很容易看到虚拟化和本地系统在 L1D 不稳定性方面的巨大差异。


总结来说,实验结果充分验证了三种方法的有效性,我们所提出的检测技术不会触发任何可疑系统,并独立于操作系统。这一技术研究并不单单只是为了缓解恶意程序对于虚拟化环境的检测,而是致力于在深入研究相关检测技术的基础之上,有针对性的防范恶意程序入侵对虚拟化安全的威胁,为制定合理有效的对抗思路提供未来方向,甚至是让虚拟化环境变得更加“真实”,对于这一领域的前沿研究的推动和发展具有积极的指导作用。


针对以上的情况,云厂商可以做以下的一些缓解方案:


(1)采用 performance counter 进行监控,发现异常的 TLB、L1D 以及 LLC 的活动,进行及时报警。但是这个方法噪音很大,具有很高的误报率。


(2)进行二进制代码扫描,寻找可疑的代码片段。最后云厂商还可以采用定制机器的方式,对机器的 TLB 以及 cache 进行深度改造,从根本上消除这些方面的影响。


2020-08-11 16:381315

评论

发布
暂无评论
发现更多内容

【WEB安全】轻松检测钓鱼网站的技巧#建议收藏#

H

网络安全 WEB安全 钓鱼网站

TinTin Meeting#3回放|NNS里面的Registry Canister

TinTinLand

区块链 Dfinity TinTin Meeting

一周信创舆情观察(2.14~2.20)

统小信uos

百度可观测系列 | 采集亿级别指标,Prometheus 集群方案这样设计

百度开发者中心

这把“锁”不简单,让你畅游数字世界

华为云开发者联盟

SSL证书 ssl HTTP协议 HTTPS协议加密

2种图像增强方法:图像点运算和图像灰度化处理

华为云开发者联盟

图像处理 图像 图像增强 图像点运算 灰度化处理

三维仿真智慧服务器 —— 信息安全监控平台

一只数据鲸鱼

信息安全 数据中心 数据可视化 智慧城市

海关监管区域之港口作业

Geek_XOXO

国际贸易 海关监管 港口作业

Clusterpedia 加持 kubectl,检索多集群资源

Daocloud 道客

云原生 开源项目 K8s 多集群管理

GPUSHARE-会员重磅上线啦~

恒源云

gpu 学生党

从 generator 的角度看 Rust 异步代码

SOFAStack

rust Generator

美容机构预约小程序设计方案

CC同学

创新推出 | Serverless 调试大杀器:端云联调

Serverless Devs

【元宵节快乐】Apache ShardingSphere 企业行|走进陌陌

SphereEx

数据库 开源 企业 ShardingSphere SphereEx

ZEGO音视频服务的高可用架构设计与运营

ZEGO即构

架构 后台 高可用架构 音视频开发

无需编程,基于PostgreSQL零代码生成CRUD增删改查RESTful API接口

crudapi

postgresql API crud crudapi 抽象工厂设计模式

k8s 源码Client-go中Reflector解析

华为云开发者联盟

Kubernetes Informer 事件 Client-go Reflector

海关监管区域之陆路口岸作业

Geek_XOXO

国际贸易 海关监管 口岸

系统学习 TypeScript(二)——开发流程和语法规则

编程三昧

typescript 前端 2月月更

F6 汽车科技基于 Apache ShardingSphere 的核心业务分库分表实践

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

直播预告 | PolarDB-X 动手实践系列——如何在 PolarDB-X 中进行 Online DDL

阿里云数据库开源

数据库 阿里云 开源 polarDB

Apache ShardingSphere 企业行|走进搜狐

SphereEx

数据库 开源 ShardingSphere SphereEx 搜狐

CNCF 沙箱项目 OCM Placement 多集群调度指南

阿里巴巴云原生

阿里云 云原生 OCM Placement

初级工程师建议收藏|企业级APIs安全实践指南

领创集团AdvanceGroup

使用CSS绘制一支口红

战场小包

CSS 口红 2月月更

超27亿人参与!“云上冬奥”背后的技术革新

阿里云弹性计算

阿里云 冬奥会

人才短缺、成本高昂,制造企业智能化转型路径如何破局?

百度开发者中心

超硬核攻略!《2022金融云原生落地实用指南》重磅发布(限时免费下载)

York

解读论文:无需提权就能检测硬件虚拟化环境_安全_百度安全_InfoQ精选文章