CN109120618B - 一种基于硬件虚拟化的云平台受控侧信道攻击检测方法 - Google Patents
一种基于硬件虚拟化的云平台受控侧信道攻击检测方法 Download PDFInfo
- Publication number
- CN109120618B CN109120618B CN201810937762.2A CN201810937762A CN109120618B CN 109120618 B CN109120618 B CN 109120618B CN 201810937762 A CN201810937762 A CN 201810937762A CN 109120618 B CN109120618 B CN 109120618B
- Authority
- CN
- China
- Prior art keywords
- address
- page
- page table
- virtual machine
- guest
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于硬件虚拟化的云平台受控侧信道攻击检测方法;本发明通过操作扩展页表EPT锁定客户虚拟机内存,保护客户中断描述符表IDT内容不被恶意操作系统OS修改,并对页面操作序列进行模式分析,从而自动区分正常内存请求与恶意操作。本方法能有效检测受控侧信道攻击,与现有的纯软件实现的防御方法相比,降低了时间开销,且无需修改被保护程序代码。
Description
技术领域
本发明属于计算机信息安全技术领域,涉及一种云计算环境中受控侧信道攻击检测方法,具体涉及一种基于硬件虚拟化的云平台受控侧信道攻击检测方法,用于解决云平台应用敏感信息泄露问题。
背景技术
云计算安全已成为阻碍云计算应用与发展的重要瓶颈,是当前网络空间安全的热点。应用虚拟化作为一种云计算极为广泛的部署方式,使云租户的敏感应用运行于云平台操作系统容器中,然而操作系统通常被认为是不可信,致使其应用面临敏感信息泄露风险。如Iago攻击恶意控制操作系统权限,通过修改系统调用返回地址,进而获取进程的敏感数据。已有研究利用更高特权级的Hypervisor和可信硬件,实现了InkTag和Haven等高级安全防护系统,有利于改善不可信OS导致的应用敏感信息泄露,然而受控侧信道攻击作为一种新攻击方式,可以成功绕过以上安全防护系统,攻击者利用可控的缺页错误(Page Fault,PF)异常可能泄露的信息,进而推测出敏感数据的内容。
目前,受控侧信道攻击防御有两种类型:基于修改进程内存分布的方法和重分发系统处理例程的方法。基于修改进程内存分布的方法以纯软件方式实现,通过内存拷贝或加解密,将页面内容重新布局,混淆了信道泄露的信息,但同时也会引入巨大的时间开销;另一类方案实现了重分发系统处理例程,在加入新的硬件特性支持后,操作系统不再单独处理缺页错误等中断事件,而是分发给硬件进一步处理,虽然能成功阻断攻击者获取信息的途径,但需要对现有传统程序源码进行人工分析与重编译。因此,如何在不可信云平台上实现云应用的敏感信息安全保护也成为当前信息安全领域亟待解决的关键问题。
发明内容
为了解决在OS不可信的条件下,如何利用虚拟化功能来检测缺页错误侧信道攻击,解决云平台应用的敏感信息泄露问题,本发明提供了一种基于硬件虚拟化的云平台受控侧信道攻击检测方法。
本发明所采用的技术方案是:1.一种基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于,包括以下步骤:
步骤1:虚拟机监视VMM(Virtual Machine Monitor)利用内存管理单元MMU对客户虚拟机的进程页表进行虚拟化扩展,获得扩展页表EPT;
步骤2:确定扩展页表EPT中客户页表结构;
在虚拟机监视VMM控制下仅在处理器工作处于非根模式时才参与地址转换,内存管理单元MMU虚拟化扩展;EPT直接在硬件上支持从客户机虚拟地址GVA(Guest VirtualAddress)到宿主机物理地址HPA(Host Physical Address)之间的映射,直接在硬件上支持客户虚拟地址-客户物理地址-主机物理地址的两次转换;
步骤3:修改EPT页表项的读写权限位,限制受保护进程页表的修改,从而锁定内存;
步骤4:虚拟机监视VMM通过读取虚拟机控制块VMCS中的中断描述符表IDT表地址,获取其完整内容,保证中断描述符表IDT表不会被修改,虚拟机监视VMM保留所有系统例程地址变化和页表内容写操作的相关记录;
步骤5:根据受控信道攻击的攻击模型,通过区分恶意OS对系统结构的特殊修改行为,虚拟机监视VMM判断出OS对受保护进程的恶意操作。
本发明解决的技术挑战:
1.不再注重于在VMM层拦截异常,而是开启EPT功能,直接监控页表内容,避免页表错误异常陷入VMM带来的过大系统开销。
2.VMM层进行信息获取处理时,利用虚拟机自省技术(Virtual MachineIntrospection,VMI)解决了虚拟机与虚拟机监视器VMM之间存在的语义鸿沟。
本发明与现有技术相比具有以下的主要优点:
1.通过EPT加锁内存和IDT内容保护,并进行页面序列模式分析,可以确定性地检测出攻击行为。
2.系统易于部署,对于虚拟机完全透明,可以在Qemu控制台进行智能地操作。
3.本发明能有效地检测出#PF侧信道攻击,性能开销也较小。
附图说明
图1为发明实施例的内核侧信道攻击检测架构示意图;
图2为发明实施例的监控追踪页的执行流示意图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明所要解决的技术问题是:在OS不可信的条件下,如何利用虚拟化功能来检测缺页错误侧信道攻击,解决云平台应用的敏感信息泄露问题。
受控侧信道攻击(Controlled Channel Attack,CCA)是一种新颖的攻击方式,能够绕过主流安全系统窃取云租户的敏感数据,对云的安全隐私构成了严重的威胁。为了阻止恶意的虚拟机系统内核对受控信道的滥用,已有安全防护方案采用频繁拷贝内存页面内容或对敏感程序进行人工标注和重编译,致使产生很大的时间和人工开销。针对这一问题,本发明通过操作扩展页表(Extended Page Table,EPT)锁定客户虚拟机内存,保护客户中断描述符表(Interrupt Descriptor Table,IDT)内容不被恶意操作系统(OperationSystem,OS)修改,并对页面操作序列进行模式分析,从而自动区分正常内存请求与恶意操作。本方法能有效检测受控侧信道攻击,与现有的纯软件实现的防御方法相比,降低了时间开销,且无需修改被保护程序代码。
本发明通过直接修改扩展页表(Extended Page Table,EPT)表项的读写权限位,限制受保护进程页表的修改,从而可锁定内存;虚拟机监视器(Virtual Machine Monitor,VMM)通过读取虚拟机控制块(Virtual Machine Control Structure,VMCS)中的中断描述符表(Interrupt Descriptor Table,IDT)表地址,获取其完整内容,保证IDT表不会被修改,确保VMM层可保留所有系统例程地址变化和页表内容写操作的相关记录;根据受控信道攻击的攻击模型,通过区分恶意OS对系统结构的特殊修改行为(如出现PTE连续交替变化),VMM可判断出OS对受保护进程的恶意操作。该方法无需阻断不可信操作系统的信道信息获取,达到攻击行为的识别与阻止。
本发明所公开的云平台受控侧信道攻击检测方案的总体架构如图1所示。该系统主要包括三部分:IDT拦截记录模块、页表修改监控模块以及事件关联检测分析模块。该方法通过直接修改EPT页表项(4层页表的PT层表项)的读写权限位,限制受保护进程页表的修改,从而可锁定内存;虚拟机监视器(Virtual Machine Monitor,VMM)通过读取虚拟机控制块(Virtual Machine Control Structure,VMCS)中的IDT表地址,获取其完整内容,保证IDT表不会被修改,确保VMM层可保留所有系统例程地址变化和页表内容写操作的相关记录;根据受控信道攻击的攻击模型,通过区分恶意OS对系统结构的特殊修改行为(如出现PTE连续交替变化),VMM可判断出OS对受保护进程的恶意操作。该方法无需阻断不可信操作系统的信道信息获取,达到攻击行为的识别与阻止。
本发明提供的一种基于硬件虚拟化的云平台受控侧信道攻击检测方法,包括以下步骤:
步骤1:虚拟机监视VMM(Virtual Machine Monitor)利用内存管理单元MMU对客户虚拟机的进程页表进行虚拟化扩展,获得扩展页表EPT;
步骤2:确定扩展页表EPT中客户页表结构;
在虚拟机监视VMM控制下仅在处理器工作处于非根模式时才参与地址转换,内存管理单元MMU虚拟化扩展;EPT直接在硬件上支持从客户机虚拟地址GVA(Guest VirtualAddress)到宿主机物理地址HPA(Host Physical Address)之间的映射,直接在硬件上支持客户虚拟地址-客户物理地址-主机物理地址的两次转换;
步骤3:修改EPT页表项的读写权限位,限制受保护进程页表的修改,从而锁定内存;
在攻击过程中,虚拟机中进程的执行会频繁地发生缺页错误,但当开启了EPT功能后,虚拟机监视器VMM无法拦截该异常事件,从而致使通过VM-EXIT监控#PF行为变得不再可能。因此,本发明采用直接监控页表内容的方法,即攻击者可通过内核函数直接清除页表入口(Page Table Entry,PTE)特定位,从而修改映射结果,导致对应页面变得不可访问,故本发明借助更底层的EPT机制捕获此修改行为。
首先,将EPT结构中客户页表的相应的页面设置为只读(加锁态)。当攻击者修改这些结构时,扩展页表发生冲突(EPT Violation),系统会立刻陷入到虚拟机监视器VMM,称为第一次陷入。
本实施例通过修改扩展页表EPT违规处理程序Violation handler来增加筛选的条件;
筛选的条件为:
1)退出辅助信息Exit_Qualification是WRITE_MASK,对应页表写操作;
2)当前的GUEST_CR3是目标进程,则过滤无用进程信息;其中,GUEST_CR3是存储客户进程所映射的物理地址单元内容,即客户机物理地址,作为下一级客户页表的索引基址;
3)当前客户物理地址GUEST_PHYSICAL_ADD-RESS值存在于上述页号存储结构中;
如果上述条件都满足,扩展页表EPT将进入第一次陷入处理。
其次,虚拟机监视器VMM掌握控制权,记录被修改前的地址及其指向内容,并恢复该处的可写权限(解锁态),可通过修改MSR寄存器来设置监视陷阱标识MTF(Monitor TrapFlag)让客户机进入单步执行模式。
本实施例中,系统添加监事陷阱Monitor Trap的处理过程,其操作包括:1)读取目标地址值;2)设置该页只读;3)恢复监视陷阱标志MTF;4)比较前后两个值在发生变化的比特位。
最后,在恢复客户机写操作之后,执行完一条指令会触发MTF再次陷入到虚拟机监视器VMM,称为第二次陷入。处理第二次陷入时,读取记录地址中新的内容,并重新设置EPT为只读,进而监控下一次的修改操作。
当开启EPT后,#PF会在客户机中完成对客户页表的创建与修改。在虚拟机建立好GVA到GPA的映射后,客户OS会逐步访问页表中的GPA,如果GPA未在EPT中有映射信息,就会陷入虚拟机监视器VMM并触发EPT Violation来填充EPT表。其中,#PF为页错误Page Fault;
表1 EPT Violation触发条件
为了捕获写页表操作,在准备阶段依据表1的要求将EPT Pointer的第6位和EPTEntry的第1位清零,保证目标页面存在于内存中。由于攻击者执行攻击时必须确定地址空间,所以,在建立页号存储结构时,客户页表的映射信息必然已经建立并存在内存中。
步骤4:虚拟机监视VMM通过读取虚拟机控制块VMCS中的中断描述符表IDT表地址,获取其完整内容,保证中断描述符表IDT表不会被修改,虚拟机监视VMM保留所有系统例程地址变化和页表内容写操作的相关记录;
保证中断描述符表IDT表不会被修改,具体实现包括以下子步骤:
步骤4.1:通过system.map文件获取中断描述符表IDT表的地址,并用文件中的do_page_fault()地址作为#PF处理例程的依据;
其中,System.map是最后产生的文件,包含所有的可执行上下文、数据段的运行地址以及加载地址;do_page_fault()是处理缺页异常的入口,do_page_fault()地址就是处理缺页异常的入口地址;#PF为页错误Page Fault;
步骤4.2:在虚拟机监视VMM中,系统读取虚拟机控制结构VMCS中的IDTR_BASE字段值作为一个门描述符指针,称为idtr_base;该指针用来计算出具体的#PF和其他中断处理例程地址。
一旦idtr_base或者处理例程的地址pf_addr的值发生变化,虚拟机监视VMM就会立刻记录并作为系统完整性的一个重要指标;如果地址在标准的基础上改变了两次,相关的例程或IDT就证明不再安全。
步骤5:根据受控信道攻击的攻击模型,通过区分恶意OS对系统结构的特殊修改行为(包括导致出现PTE连续交替变化的所有操作),虚拟机监视VMM判断出OS对受保护进程的恶意操作。
采用事件关联方法对特定时间段的异常进行对比分析,具体实现包括以下子步骤:
步骤5.1:将收集到的文件按照定义好的事件格式进行元数据抽取,进行清洗、标准化,形成事件元数据,使得这些侧信道的特征凸显出来;
步骤5.2:对事件进行归并,从大量事件中将符合一定条件的事件归并为一条事件流;
步骤5.3:提取出事件主体行为,排除无关事件的干扰,提高系统的处理能力;
其中,排除无关事件,具体实现包括以下子步骤:
步骤5.3.1:读取记录的PTE值的前后变化,过滤不符合要求的记录,包括gpa不相等、页表内容无变化、或改变的位不只有PRESENT和RESERVED位;
步骤5.3.2:将过滤后的记录重新构建结构存储到输出文件,结构为<gpa,index,action>,其中,action代表set或clear行为。
步骤5.4:根据这些事件确定侧信道攻击的特征,从而确定威胁点,达到检测的目的。
其中,确定威胁点,具体实现包括以下子步骤:
步骤5.4.1:读取步骤5.3中排除无关事件后的记录,将每条记录和最近10条记录联合分析;
步骤5.4.2判断相同gpa的action是否是交替出现的,如果是则将该gpa设为可疑的;
步骤5.4.3:若最后可疑地址数量不小于3,则确定识别存在恶意修改页面的问题,检测此种攻击。
本发明通过EPT+MTF来实现对目标页面内容修改的监控,受监控的内容是客户页表。由于监控页表只涉及到页面内容的写操作,所以对于那些系统调用或算术运算不会有影响。分析发现,由受控侧信道攻击所引发的数据泄露所具有特征为:1)主动触发的中断;2)被更改的进程页表;3)被挂钩的缺页处理例程。对此,根据在VMM中拦截到的被修改的物理页内容、IDT表以及相关例程地址变化信息。本发明整个检测方案的总体架构如图1所示。该系统增加了三部分:IDT拦截记录,页表修改监控以及关联分析。
(1)页表监控;
本发明在Qemu系统中添加了两个新命令,分别为“start_monitor pid”和“stop_monitor”。其中pid需要进一步转化为KVM可获取的信息。为此,系统利用virsh+libvmi通过统一的接口获取目标进程的task_struct结构,并读取结构中的name,pid和pgd字段。
在KVM中,系统对应添加了两个新的I/O处理例程(KVM_START_MONTIOR和KVM_STOP_MONITOR)来开关整个过程。一旦KVM收到开启命令,它将会遍历客户页表来创建哈希链表存储结构,并设置上述的EPTP与EPTE的相关位。存储结构是一个自定义的结构(称为mmu_guest_page_hash),它包含了客户页帧号,连接指针以及页表层次号,每个结构代表了一个页表。
通常需要修改EPT Violation handler来增加筛选的条件。1)Exit_Qualification是WRITE_MASK,对应页表写操作。2)当前的GUEST_CR3是目标进程,可以过滤无用进程信息。3)当前GUEST_PHYSICAL_ADD-RESS值存在于上述页号存储结构中。如果条件都满足,EPT将会依据上问方法来处理访问限制(进入第一次陷入处理)。除此以外,系统还需要添加了Monitor Trap的处理过程(第二次陷入的处理步骤)。它的操作主要包括1)读取目标地址值;2)设置该页只读;3)恢复MTF标记;4)比较前后两个值在发生变化的比特位。由于分析模块不是实时的,本实施例需要在下述部分进一步分析。
(2)中断描述符表IDT监控;
由于客户OS是不可信的,客户IDT表内容也可能被攻击者重写。本实施例无法在虚拟内核层判断IDT的完整性或者说OS是否被挂钩。因此,原型系统也在VMM中监控完整性,作为检测攻击的一个必要条件。
攻击者普遍采用了加载内核模块(Loadable Kernel Modules)的方式来挂钩系统例程。为了确定被挂钩函数,VMM记录了关键结构的地址比如IDT表和#PF处理例程。由于本实施例的关注重点是页表修改,并且它的发生频率要明显高于关键结构的地址变化。所以,本实施例只需要在每个EPT Violation中同时监控即可。
基本的检测步骤如下:首先,本实施例通过system.map文件获取IDT表的地址,并用文件中的do_page_fault()地址作为#PF处理例程的依据。接着,在VMM中,系统会读取VMCS中的IDTR_BASE字段值作为一个门描述符指针,本实施例称为idtr_base。该指针能被用来计算出具体的#PF和其他中断处理例程地址。具体来说,本实施例获取指针后第14项的值,该值为缺页错误的描述符(pf_sel),处理例程的地址(pf_addr)可以进一步计算得到:
pf_addr=((u64)pf_sel.offset_high<<32)|(pf_sel.offset_middle<<16)|(pf_sel.offset_low)
一旦idtr_base或者pf_addr的值发生变化,VMM就会立刻记录并作为系统完整性的一个重要指标。如果地址在标准的基础上改变了两次,相关的例程或IDT就可以证明不再安全。
(3)关联检测分析;
关联检测分析采用事件关联的方法对特定时间段的异常进行对比分析,即首先将收集到的文件按照定义好的事件格式进行元数据抽取,进行清洗、标准化,形成事件元数据,使得这些侧信道的特征凸显出来;其次,对事件进行归并,将符合一定条件的事件归并为一条事件流,提取出事件主体行为,排除无关事件的干扰;最后,根据这些事件确定侧信道攻击的特征,从而确定威胁点,达到检测的目的。
在记录完日志后,需处理日志并分析攻击特征。可以将整个关联检测分析过程分为两个阶段:
第一阶段:过滤日志文件。首先,系统过滤无用的修改,如果两个相邻项的客户物理地址(Guest Phisical Address,GPA)相等,并且只有会触发#PF的比特位不同,就会形成相关的格式化项;否则是噪音信息,忽略即可。下一步使用统一格式化的结构<gpa,index,action>,索引发生的时序并确定目标的行为(set或clear)。
第二阶段:识别跟踪页序列。在实施#PF侧信道攻击期间,各个跟踪页子集的长度通常为2或3,每次取连续的10项作为比较区间。由于跟踪序列中的页面彼此相邻,访问时它们的PTE将在特定位中改变。因此,如果存在连续的交替清除和设置行为,则称该GPA是可疑的,且可疑总数增加,当总数不小于3,则可以判断虚拟机中存在跟踪序列。
图2是一种可能的执行流。对于跟踪页子集中相邻页的对应PTE,Present位会被成对修改。如地址0x401000和0x402000是重要的页地址,当访问到0x402000处指令,页表中地址0x402000对应的PTE bit0会被设置,同时会立刻清除0x401000对应的Present位,当再次访问到0x402000时,攻击则会重复操作来等待下次修改。从记录可以看出,在虚拟地址0x402000对应的PTE的页地址0x1010处,PTE变化情况为0x4024->0x4025->0x4024。以此,本实施例可以推断出攻击者对该PTE的操作行为从置位变为清零。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (6)
1.一种基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于,包括以下步骤:
步骤1:虚拟机监视VMM利用内存管理单元MMU对客户虚拟机的进程页表进行虚拟化扩展,获得扩展页表EPT;
步骤2:确定扩展页表EPT中客户页表结构;
在虚拟机监视VMM控制下仅在处理器工作处于非根模式时才参与地址转换,内存管理单元MMU虚拟化扩展;EPT直接在硬件上支持从客户机虚拟地址GVA到宿主机物理地址HPA之间的映射,直接在硬件上支持客户虚拟地址-客户物理地址-主机物理地址的两次转换;
步骤3:修改EPT页表项的读写权限位,限制受保护进程页表的修改,从而锁定内存;
具体实现包括以下子步骤:
步骤3.1:将扩展页表EPT中客户页表在EPT页表映射中PT层的页面设置为只读,当攻击者去修改这些页表结构时,系统会因为扩展页表冲突立刻陷入到虚拟机监视VMM中,称为第一次陷入;
步骤3.2:虚拟机监视VMM掌握控制权,记录被修改前的地址及其指向内容并恢复该处的可写权限;通过修改MSR寄存器来设置监视陷阱标志MTF让客户机进入单步执行模式;
步骤3.3:在恢复客户机完成写操作之后,执行完一条指令会触发监视陷阱标志MTF再次陷入到虚拟机监视VMM中,称为第二次陷入;处理第二次陷入时,读取记录地址中新的内容,并重新设置扩展页表EPT为只读,来监控下一次的修改操作;
步骤4:虚拟机监视VMM通过读取虚拟机控制块VMCS中的中断描述符表IDT表地址,获取其完整内容,保证中断描述符表IDT表不会被修改,虚拟机监视VMM保留所有系统例程地址变化和页表内容写操作的相关记录;
其中所述保证中断描述符表IDT表不会被修改,具体实现包括以下子步骤:
步骤4.1:通过system.map文件获取中断描述符表IDT表的地址,并用文件中的do_page_fault()地址作为#PF处理例程的依据;
其中,System.map是最后产生的文件,包含所有的可执行上下文、数据段的运行地址以及加载地址; do_page_fault()是处理缺页异常的入口,do_page_fault()地址就是处理缺页异常的入口地址;#PF为页错误Page Fault;
步骤4.2:在虚拟机监视VMM中,系统读取虚拟机控制结构VMCS中的IDTR_ BASE字段值作为一个门描述符指针,称为idtr_base;该指针用来计算出具体的#PF和其他中断处理例程地址;
一旦idtr_base或者处理例程的地址pf_addr的值发生变化,虚拟机监视VMM就会立刻记录并作为系统完整性的一个重要指标;如果地址在标准的基础上改变了两次,相关的例程或IDT就证明不再安全;
步骤5:根据受控信道攻击的攻击模型,通过区分恶意OS对系统结构的特殊修改行为,虚拟机监视VMM判断出OS对受保护进程的恶意操作;
其中,采用事件关联方法对特定时间段的异常进行对比分析,具体实现包括以下子步骤:
步骤5.1:将收集到的文件按照定义好的事件格式进行元数据抽取,进行清洗、标准化,形成事件元数据,使得这些侧信道的特征凸显出来;
步骤5.2:对事件进行归并,从大量事件中将符合一定条件的事件归并为一条事件流;
步骤5.3:提取出事件主体行为,排除无关事件的干扰,提高系统的处理能力;
步骤5.4:根据这些事件确定侧信道攻击的特征,从而确定威胁点,达到检测的目的。
2.根据权利要求1所述的基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于:步骤3.1中,修改扩展页表EPT 违规处理程序Violation handler来增加筛选的条件;
筛选的条件为:
1)退出辅助信息Exit_ Qualification是WRITE_ MASK,对应页表写操作;
2)当前的GUEST_CR3是目标进程,则过滤无用进程信息;其中,GUEST_CR3是存储客户进程所映射的物理地址单元内容,即客户机物理地址,作为下一级客户页表的索引基址;
3)当前客户物理地址GUEST_PHYSICAL_ADD- RESS值存在于页号存储结构中;
如果上述条件都满足,扩展页表EPT将进入第一次陷入处理。
3.根据权利要求1所述的基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于:步骤3.2中,系统添加监事陷阱Monitor Trap的处理过程,其操作包括:1)读取目标地址值;2)设置该页只读;3)恢复监视陷阱标志MTF;4)比较前后两个值在发生变化的比特位。
4.根据权利要求1所述的基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于:步骤5中所述特殊修改行为包括导致出现PTE连续交替变化的所有操作。
5.根据权利要求1所述的基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于,步骤5.3中所述排除无关事件,具体实现包括以下子步骤:
步骤5.3.1 :读取记录的PTE值的前后变化,过滤不符合要求的记录,包括gpa不相等、页表内容无变化、或改变的位不只有PRESENT和RESERVED位;
步骤5.3.2:将过滤后的记录重新构建结构存储到输出文件,结构为<gpa, index,action>,其中,action代表set或clear行为。
6.根据权利要求1所述的基于硬件虚拟化的云平台受控侧信道攻击检测方法,其特征在于,步骤5.4中所述确定威胁点,具体实现包括以下子步骤:
步骤5.4.1:读取步骤5.3中排除无关事件后的记录,将每条记录和最近10条记录联合分析;
步骤5.4.2 判断相同gpa的action是否是交替出现的,如果是则将该gpa设为可疑的;
步骤5.4.3 :若最后可疑地址数量不小于3,则确定识别存在恶意修改页面的问题,检测此种攻击。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810937762.2A CN109120618B (zh) | 2018-08-17 | 2018-08-17 | 一种基于硬件虚拟化的云平台受控侧信道攻击检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810937762.2A CN109120618B (zh) | 2018-08-17 | 2018-08-17 | 一种基于硬件虚拟化的云平台受控侧信道攻击检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109120618A CN109120618A (zh) | 2019-01-01 |
CN109120618B true CN109120618B (zh) | 2021-10-22 |
Family
ID=64853464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810937762.2A Active CN109120618B (zh) | 2018-08-17 | 2018-08-17 | 一种基于硬件虚拟化的云平台受控侧信道攻击检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109120618B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110012013A (zh) * | 2019-04-04 | 2019-07-12 | 电子科技大学成都学院 | 一种基于knn的虚拟平台威胁行为分析方法及系统 |
CN110119302B (zh) * | 2019-04-23 | 2023-07-21 | 上海隔镜信息科技有限公司 | 虚拟机监视器以及虚拟可信执行环境构建方法 |
CN112199678B (zh) * | 2020-09-25 | 2024-04-09 | 杭州安恒信息技术股份有限公司 | 一种在线取证的方法、装置、计算机设备和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066311A (zh) * | 2017-03-20 | 2017-08-18 | 中国科学院软件研究所 | 一种内核数据访问控制方法与系统 |
CN107608756A (zh) * | 2017-08-24 | 2018-01-19 | 武汉大学 | 一种基于cpu硬件特性的虚拟机自省触发方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703720B2 (en) * | 2014-12-23 | 2017-07-11 | Intel Corporation | Method and apparatus to allow secure guest access to extended page tables |
-
2018
- 2018-08-17 CN CN201810937762.2A patent/CN109120618B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107066311A (zh) * | 2017-03-20 | 2017-08-18 | 中国科学院软件研究所 | 一种内核数据访问控制方法与系统 |
CN107608756A (zh) * | 2017-08-24 | 2018-01-19 | 武汉大学 | 一种基于cpu硬件特性的虚拟机自省触发方法及系统 |
Non-Patent Citations (1)
Title |
---|
基于Intel VT的内核完整性监控技术研究;张贵民;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160715;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109120618A (zh) | 2019-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Countering kernel rootkits with lightweight hook protection | |
CN108090346B (zh) | 一种基于数据流监控的代码复用攻击防御方法及系统 | |
Gu et al. | Process implanting: A new active introspection framework for virtualization | |
Bauman et al. | A survey on hypervisor-based monitoring: approaches, applications, and evolutions | |
Petroni Jr et al. | Automated detection of persistent kernel control-flow attacks | |
JP6116697B2 (ja) | 電子デバイスを保護する方法、プログラム、システム、および機械可読ストレージ媒体 | |
Younan et al. | Runtime countermeasures for code injection attacks against C and C++ programs | |
Qi et al. | ForenVisor: A tool for acquiring and preserving reliable data in cloud live forensics | |
CN109120618B (zh) | 一种基于硬件虚拟化的云平台受控侧信道攻击检测方法 | |
US7251735B2 (en) | Buffer overflow protection and prevention | |
US10114948B2 (en) | Hypervisor-based buffer overflow detection and prevention | |
Tian et al. | Kruiser: Semi-synchronized Non-blocking Concurrent Kernel Heap Buffer Overflow Monitoring. | |
Joy et al. | Rootkit detection mechanism: A survey | |
Cristalli et al. | Micro-virtualization memory tracing to detect and prevent spraying attacks | |
CN110737888B (zh) | 虚拟化平台操作系统内核数据攻击行为检测方法 | |
Liang et al. | Detecting stealthy malware with inter-structure and imported signatures | |
Korkin et al. | Detect kernel-mode rootkits via real time logging & controlling memory access | |
Hirano et al. | Machine Learning-based Ransomware Detection Using Low-level Memory Access Patterns Obtained From Live-forensic Hypervisor | |
Mankin et al. | Dione: a flexible disk monitoring and analysis framework | |
CN112463287A (zh) | 基于插桩的访问请求处理方法及系统 | |
Parida et al. | PageDumper: a mechanism to collect page table manipulation information at run-time | |
Pék et al. | Membrane: a posteriori detection of malicious code loading by memory paging analysis | |
Kapil et al. | Virtual machine introspection in virtualization: A security perspective | |
CN111414616B (zh) | Sgx恶意软件检测方法及系统 | |
Yi et al. | DADE: a fast data anomaly detection engine for kernel integrity monitoring |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |