基于内存活动的边信道攻击取证系统及方法_2

文档序号:9787702阅读:来源:国知局
件注册事件处理函数,截获客户虚拟机触发的内存事件,通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机,并用于过滤掉可信的进程内存活动,提取非可信进程的内存访问活动的相关信息形成内存活动日志。
[0012]进一步的,所述步骤B具体包括如下步骤:
(1)将目标客户虚拟机的内存活动日志按照进程区分开来,在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,所述属性值包括以下至少一种:每次密集活动时间间隔、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)如果可疑进程不具备下述两种条件其中之一,则将该进程从可疑进程序列中去除,所述两种条件包括:
对于side-channel攻击的接收者存在每次密集活动时间间隔一致;
对于side-channel攻击的发送者存在每次密集活动时间间隔为正常时间间隔的整数倍;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除。
[0013]进一步的,所述步骤B还包括攻击类型识别的步骤: 如果发送者进程和接收者进程的每次密集访问开始时间一致,则判断攻击类型为基于CPU负载的side-channel攻击;如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
[0014]进一步的,所述步骤C中对可疑进程进行静态的二进制代码分析的过程包括如下步骤:
(1)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(2)找到可疑进程的代码数据段,将二进制代码提取出来;
(3)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(4)在汇编代码中重点查找执行重复指令的代码;
(5)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel 攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
[0015]与现有技术相比,本发明具有如下优点和有益效果:
1.本发明提供的取证系统和方法能够在硬件虚拟化技术的支持下,在基于时间的side-channel攻击发生时,实时地获取攻击证据,克服了当前事后取证方法的缺陷,实现客户目标虚拟机的实时取证,在取证过程中最大程度的防止了证据的丢失和篡改。
[0016]2.本发明的识别过程克服了基于时间的side-channel攻击无法识别的缺陷,通过底层活动的分析找到了这类攻击的存在和发生过程证据。
[0017]3.本发明提出了二次验证机制,弥补识别过程中可能出现的误报进程,再次确认攻击进程的存在,验证了整个取证过程的可行性,保证了获取证据的有效性和可信度。
[0018]4.本发明能够在支持硬件虚拟化的虚拟化平台上部署,在系统运行时部署,无需停止或重启目标客户虚拟机,无需修改客户虚拟机和虚拟机监控平台代码,具有很高的透明性,不会对虚拟机平台造成额外的负荷和运行干扰。
【附图说明】
[0019]图1为本发明提供的基于内存活动的边信道攻击取证系统结构示意图;
图2为监控模块处理流程示意图;
图3为识别模块处理流程示意图;
图4为验证模块处理流程过程图;
图5为证据数据中心中三个数据池中数据流动示意图。
【具体实施方式】
[0020]以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述【具体实施方式】仅用于说明本发明而不用于限制本发明的范围。
[0021]请参阅图1,图中为本发明提供的基于内存活动的边信道攻击取证系统结构示意图,本系统在硬件虚拟化平台的支持下,获取到客户虚拟机的内存访问权限,拦截并记录客户虚拟机页面内存的访问情况,将云平台下基于时间的side-channel攻击识别并验证,并保存相关证据。系统具体包括监控模块、识别模块、验证模块和证据数据中心,其中,监控模块负责整个证据收集过程,其对系统底层内存活动进行实时监控,并提供详细的日志记录。识别模块将云平台下基于时间的side-channel攻击识别出来,提取出可疑进程日志并将冗余的监控日志过滤掉。验证模块对识别模块识别出来的可疑进程进行二次验证,并提取此时系统的内存快照,为取证系统提供完整的证据提取和分析支持。证据数据中心提供对整个取证过程中的证据数据处理支持,与其他三个模块相互配合,支持证据的收集、过滤和提取。本系统运行环境包括三个层次:硬件层、虚拟机监视器层和虚拟机层,监控模块横跨虚拟机监视器层和虚拟机层,其余模块都部署在虚拟机中,对目标客户虚拟机不会产生任何的干扰,具有很高的透明性和隐蔽性。
[0022]对于底层内存活动的监控,硬件虚拟化技术提供内存虚拟化技术支持,从而能够实现对内存访问的权限管理,实现对客户虚拟机内存行为监控的同时也能保证了虚拟机的相互隔离与独立性。硬件虚拟化的特性保证了运行环境的一致性,即计算机软件在硬件虚拟机下的行为和在机器上直接运行保持一致;保证了 VMM能够完全控制虚拟机的资源,包括内存、寄存器、1/0、中断和指令的执行;并保证了高效性,即普通指令的运行不受VMM干扰,能够全速运行。目前在x86架构下支持硬件虚拟化的技术有INTEL的Intel VT_x(2005)和AMD的AMD-V(2006),都已经广泛运用在各类个人电脑和服务器中。本例采用了 intel VT硬件虚拟化技术,在虚拟机平台Xen当中运行。监控模块初始化时通过内存EPT来修改内存页面的访问权限,当客户虚拟机对内存页面进行访问时就会触发一个VM exit并陷入到虚拟机监视器中,此时监视器从事件注册表中找到事先注册好的事件处理函数,然后将该事件传递到我们的取证系统中进行处理,同时此时会恢复内存访问权限让客户进程继续执行。
[0023]具体的说,监控模块包括模块初始化和事件处理两个单元,监控模块运作流程如图2所示。
[0024]其中模块初始化单元用于监控目标客户虚拟机的详细信息,然后向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,随后在内存相应位置修改内存访问权限,当有进程访问这块内存区域时就会触发一个内存硬件事件,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数。模块初始化单元处理的具体过程如下:
(1)监控模块向虚拟机监视器申请获取目标客户虚拟机的运行信息,包括客户虚拟机的ID,内存大小,虚拟机内存对应的实际内存地址范围和客户虚拟机用户进程的偏移量信息;
(2)向虚拟机监视器申请修改目标客户虚拟机内存区域的访问权限;
(3)向虚拟机监视器申请注册目标客户虚拟机内存事件的逻辑处理事件。
[0025]而事件处理单元主要由内存硬件事件的事件处理函数组成。事件处理单元自动截获到客户虚拟机触发的内存事件,此时控制流陷入虚拟机监视器中,虚拟机监视器通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机。事件处理单元处理的具体过程如下:
(1)虚拟机监视器接收到内存硬件事件,在事件注册表中找到注册的对于逻辑处理事件,并将该事件传给对应的处理函数,并取消掉该页面的访问权
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1