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

文档序号:9787702阅读:387来源:国知局
基于内存活动的边信道攻击取证系统及方法
【技术领域】
[0001]本发明属于计算机数据处理技术领域,涉及一种云环境中攻击取证系统及方法,更为具体的说,是涉及一种内存活动下针对side-channel攻击的实时取证系统及方法。
【背景技术】
[0002]在公共云环境中,云提供商为了提高物理机器的使用效率,令多个虚拟机共享一台物理机器。由于多个虚拟机之间共享很多资源,如共享硬盘、CPU缓存、共享内存等,这就使得虚拟机之间隐私信息的保护受到了很大的威胁,由此出现了很多基于这些共享资源的攻击,其中基于时间的side-channel (边信道)攻击是著名的攻击类型之一,其隐蔽、不留痕迹的特性很受攻击者的关注。Ristenpart最早提出了相邻虚拟机的安全顾虑,并在该环境下成功测试了基于CPU缓存、硬盘和内存总线的side-channel攻击。该类攻击都是关注系统隔离保护相对薄弱的底层结构,绕开了高层的隔离机制,其攻击很难被安全软件所发现,在攻击完成后不会留下任何痕迹,给云计算安全和取证带来了极大的挑战。
[0003]在云取证过程中,证据的提取和分析尤为关键,传统的取证框架大部分都从系统日志和程序日志中查找证据,但对于基于时间的side-channel攻击来说,由于其本身并不使用系统自带的API,不会进行通常的I/O活动和网络通信活动,这就让取证人员很难在系统日志和程序日志中找到它的踪迹。此外,基于时间的side-channel攻击传输数据通道本身很隐蔽,开始和结束的时候系统并不会有明显的特征,在攻击发生的过程中,很难察觉到它的存在,要想实时的探测到这类攻击的存在,很难找到其特征,而采用传统的静态、动态分析技术来识别又会消耗大量的系统性能和时间。而对于基于时间的side-channel攻击代码本身,其行为特点就是在正常情况下很正常,每一个行为都符合通常程序的正常行为,很难在分析过程中发现它的存在。因此,目前还缺乏有效的手段能够针对基于时间的side-channe I攻击发现和取证。

【发明内容】

[0004]为解决上述问题,本发明公开了一种基于内存活动的边信道攻击取证系统及方法,利用硬件虚拟化技术,实现客户虚拟机的内存页面实时监控,并通过基于时间的side-channel 攻击的内存活动特征 ,利用基于内存活动特征的识别算法将基于时间的s i d e -channel攻击识别出来,并在静态分析的辅助下二次确认攻击的存在并提取攻击的存在证据,实现重要实时证据和存在证据的获取和分析。
[0005]为了达到上述目的,本发明提供如下技术方案:
基于内存活动的边信道攻击取证系统,包括监控模块、识别模块、验证模块和证据数据中心;
所述监控模块用于对系统底层内存活动进行实时监控,提取该内存访问活动的相关信息生成内存活动日志;
所述识别模块按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致;
所述验证模块在识别模块识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来交由证据数据中心保存;
所述证据数据中心用于记录监控模块获得的原始内存活动记录、经过识别模块过滤的可疑进程以及经过验证模块验证的恶意进程。
[0006]进一步的,所述监控模块包括模块初始化单元和事件处理单元,所述模块初始化单元用于监控目标客户虚拟机的详细信息,然后向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,随后在内存相应位置修改内存访问权限,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数;所述事件处理单元用于截获客户虚拟机触发的内存事件,通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机,并用于过滤掉可信的进程内存活动,提取非可信进程的内存访问活动的相关信息交由证据数据中心记录形成内存活动日志。
[0007]进一步的,所述识别模块判断可疑进程时具体包括如下步骤:
(1)将目标客户虚拟机的内存活动日志按照进程区分开来,在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,所述属性值包括以下至少一种:每次密集活动时间间隔、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)如果可疑进程不具备下述两种条件其中之一,则将该进程从可疑进程序列中去除,所述两种条件包括:
对于side-channel攻击的接收者存在每次密集活动时间间隔一致;
对于side-channel攻击的发送者存在每次密集活动时间间隔为正常时间间隔的整数倍;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除。
[0008]进一步的,所述识别模块还进行攻击类型识别:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则判断攻击类型为基于CPU负载的side-channel攻击;如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
[0009 ]进一步的,所述验证模块中对可疑进程进行静态的二进制代码分析的过程包括如下步骤:
(I)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(2)找到可疑进程的代码数据段,将二进制代码提取出来;
(3)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(4)在汇编代码中重点查找执行重复指令的代码;
(5)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel 攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
[0010]本发明还提供了基于内存活动的边信道攻击取证方法,包括如下步骤:
步骤A,对系统底层内存活动进行实时监控,提取该内存访问活动的相关信息生成内存活动日志;
步骤B,按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致;
步骤C,在步骤B识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来保存。
[0011 ]进一步的,所述步骤A具体包括以下步骤:监控目标客户虚拟机的详细信息,向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,在内存相应位置修改内存访问权限,最后在虚拟机监视器中对该内存硬件事
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1