双视图+IPT
双视图:通过CPU硬件提供的VMFUNC功能实现不同EPT页表的切换
VE:VM Exit/Exception
工具
[Google Patent]
[国专局]
[欧专局]
[美专局]
[WIPO]
双视图
专利
2.STRONGLY ISOLATED MALWARE SCANNING USING SECURE VIRTUAL CONTAINERS
反恶意软件应用程序安装hypervisor),hypervisor将在host上执行的操作系统移位到guest(VM)。 hypervisor进一步创建一组虚拟容器(VC),通过为每个VC设置存储域,与客户VM的存储域隔离,然后hypervisor将恶意软件扫描程序的内存映像映射到每个VC。 选择目标对象进行扫描时,反恶意软件应用程序会启动恶意软件扫描程序。 在拦截启动时,管理程序在扫描期间将恶意软件扫描程序的存储器上下文切换到所选VC的存储器域。 因此,恶意软件扫描在隔离环境中执行。
3.Monitoring resource usage by a virtual machine
4.Computer security systems and methods using virtualization exceptions
5.Nested virtualization for virtual machine exits
6.Technologies for preventing hook-skipping attacks using processor virtualization features
默认内存视图和安全内存视图。利用VMFUNC减少VE次数;
7.
背景
VMFUNC:指定EAX的值调用特定的VM Function。该指令允许VMX非root操作中的软件调用VM函数,VM函数是由VMX根操作中的软件启用和配置的处理器功能。 EAX的值选择要调用的特定VM函数。
VMX(Virtual Machine Extension)是Intel 64和IA-32架构处理器级别的功能,用于支持虚拟化。VMX支持两种类型的软件:
Virtual-machine monitor(VMM),VMM对处理器和平台硬件具有完全的控制权限。VMM为客户软件提供虚拟处理器的抽象,从而让客户软件能够直接在逻辑CPU上跑。 客户软件(Guest software)。每个虚拟机(VM)就是一个客户软件运行环境。
系统软件可以通过CPUID指令来判断处理器是否支持VMX,如果CPUID.1.ECX.VMX[bit5] = 1,那么当前处理器支持VMX,否则,当前处理器不支持VMX功能。
通过审视现有的Hypervisor操作系统,催生了新一代Intel处理器的VM-Function系列指令(VMFUNC).
VMFUNC功能集成在英特尔的Haswell及其后的微体系架构中,使虚拟机能够在不退出root模式的情况下使用Hypervisor的功能.
VMFUNC被设计为通用接口,以支持由不同索引指定的多个功能. 当前的Intel处理器仅实现了一个名为EPTP switching的功能,即客机虚拟机能够切换其扩展页表指针(extended page table pointer, EPTP),使用一套新的EPT页表(extended page table, EPT),且不触发任何VM Exits.
使用此功能的一种典型应用是将客户端内核的运行环境与用户应用程序隔离开来,以防止内核Rootkit使用“Return-to-user”攻击和内存扫描.
IPT
关键字搜索 trace control flow
,比搜IPT好多了
专利
1.TECHNOLOGIES FOR CONTROL FLOW EXPLOIT MITIGATION USING PROCESSOR TRACE
Intel
控制流漏洞利用缓解技术,包括具有处理器的计算设备,该处理器支持RTIT。
在执行期间,处理器生成指示进程控制流的跟踪数据。 计算设备分析跟踪数据以识别可疑的控制流程漏洞。 计算设备可以使用启发式算法来识别ROP漏洞。 计算设备可以维护基于跟踪数据影子堆栈。 计算设备可以基于跟踪数据识别到未授权地址的间接分支,以识别ROP漏洞。 每当进程被抢占时,计算设备可以检查跟踪数据。 处理器可以实时检测错误预测的返回指令,并调用进程处理空间中的软件处理程序以验证和维护影子堆栈。
2.TECHNOLOGIES FOR MITIGATING CALL-ORIENTED PROGRAMMING USING AN INTER-MODULE CONTROL FLOW POLICY
Intel
和上个专利类似,用的RTIT。这个专利处理Call-Oriented Programming,上个是ROP。
3.DEEP LEARNING ON EXECUTION TRACE DATA FOR EXPLOIT DETECTION
Intel
IPT获取Packet,利用深度学习分类良性和恶意软件。杨林讲过的论文。
Intel
CFI
5.PROCESSOR TRACE-BASED ENFORCEMENT OF CONTROL FLOW INTEGRITY OF A COMPUTER SYSTEM
华为
摘要
描述了一种计算机处理器节点,作为对节点上受保护进程执行控制流完整性(CFI)方法的载体。
CFI方法包括拦截在运行环境中执行的受保护进程执行的系统调用。在计算机系统的内核内操作的快速路径从内核内存访问对应于系统调用的PT packet
。快速路径尝试在PT packet
和具有相关信用值的信用标记控制流图(CFG)定义内的程序控制流(边缘)条目之间建立匹配。信用值表示程序控制流程可信的程度。此后,该方法还包括在匹配之后,如果相关联的信用值不满足指定阈值,则调用用于进一步处理PT packet
的慢速路径,否则提供指示允许执行系统调用。
IPT相关
该专利涉及到计算机系统中的实时/在线网络防御系统领域。涉及一种具有控制流完整性(CFI)监视能力的计算机系统,该计算机系统基于由硬件实现的处理器跟踪功能(例如,IPT)提供的处理器跟踪输出。
INTEL PT数据包生成机制的优点,精确跟踪、低跟踪开销和事件过滤。IPT的缺点,不完整的PT packet
生成和随之而来的慢速解码。因此,IPT输出本身对离线分析很有用,例如性能分析,调优和软件调试。IPT方法权衡了PT packet
的快速生成和慢速解码。 IPT在其当前监视/分析执行控制流的实现中,依赖于离线重建来获得由执行代码块的完整控制流信息。
IPT功能提供详细的处理器跟踪记录,同时将资源消耗和/或处理器减速最低。但是,IPT用作在线检测机制具有重大挑战,因为IPT提供的运行时处理器跟踪是高度压缩的。对压缩跟踪记录进行解码通常比生成处理器跟踪记录慢几个数量级。作为示例,本文描述了CFI执行机制,其结合了离线控制流图(CFG)构造和IPT的在线控制流监视,以在在线计算环境中实施CFI。
背景
Intel Processor Trace(PT)是Intel在其第五代CPU之后引入的一个硬件部件。
该硬件部件的作用是记录程序执行中的分支信息,从而帮助构建程序运行过程中的控制流图。
在默认情况下CPU的PT部件是处于关闭状态,这意味着CPU不会记录程序的分支信息,因此也不会产生任何开销。通过写MSR寄存器可以打开PT开关。在打开PT开关后,CPU开始记录分支指令信息,所记录的信息以压缩数据包的形式存储在内存中。由于分支信息记录完全由硬件完成,因此开销非常小,一般在5%以下,这个开销对于大多数应用来讲基本上可以忽略不计。
PT部件最初被设计用来重构程序的控制流图,目的是为了帮助调试和分析。
POMP借助于Intel处理器提供的硬件特性Processor Tracing (PT) 来自动化实现以上提到的程序崩溃分析。
PT是Intel从第五代处理器引入的新特性,其主要功能是记录程序执行过程中的指令跳转信息。比如,在执行间接跳转指令 [ jmp *eax ] 时,PT会将eax的实时数值记录下来。因此离线分析工具就知道程序在这条指令后的目标指令。简而言之,根据PT记录的信息,我们可以完全重构程序执行过的指令序列。并且由于PT的记录完全在硬件层次实现,对于程序的执行效率基本没有损耗。
POMP: Postmortem Program Analysis*
本文中作者提出了一个自动化工具POMP,使用了轻量级的分析方法,在程序崩溃时产生的核心转储文件(core dump)的基础上对Intel PT记录的信息进行了分析,在保证了工具的运行效率的同时提高了准确度。该工具首先通过PT 重构指令序列,再通过逆向执行(Reverse execution)来恢复软件崩溃前的控制流,最后通过反向污点分析(Backward taint analysis)的方法来定位到造成程序崩溃的一组指令,最终的定位成功率非常高,定位结果也比较精确。
CFI:它规定软件执行必须遵循提前确定的控制流图(CFG)的路径。
通过分析程序的控制流图,获取间接转移指令(包括间接跳转、间接调用、和函数返回指令)目标的白名单,并在运行过程中,核对间接转移指令的目标是否在白名单中。