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

文档序号:9787702阅读:来源:国知局
限,让客户进程正常进行;
(2)获取触发该事件的客户进程和进程空间地址,比对已有的进程白名单,将可信的进程内存活动过滤掉。如果该进程为可信进程则事件处理完成,直接退出;如果不是则进入步骤(3);
(3)提取该内存访问活动的相关信息,具体包括访问该页面的客户进程、访问时间、内存操作类型和访问该页面的具体位置;
(4)将提取到的信息组合打包好之后交由证据数据中心记录形成内存活动日志;
(5)向虚拟机监视器申请重新设置该页面的内存访问权限,继续监控该页面的访问情况。
[0026 ]识别模块根据基于时间的s i de-channe I攻击内存活动的基本特征,通过对内存活动日志特征的抽象,将云平台下基于时间的side-channel攻击识别出来,提取出可疑进程日志并将冗余的监控日志过滤掉,然后进一步利用基于时间的side-channel攻击类型之间的差别作为攻击分类的基础,最终确定攻击的存在。
[0027]经过研究我们发现,基于时间的side-channel攻击的内存活动存在一个共同的特征表现:在固定的时间间隔内,重复访问同一块内存区域。用上述属性进行详细表述为:基于时间的边信道攻击进程在一段时间内会存在多次密集内存活动,对于攻击中的接收者,多次密集内存活动之间的密集内存活动访问时间间隔一致,访问内存页面集合一致,访问持续时间不一定一致,根据基于时间的边信道攻击的通信协议,持续时间的长短代表了传输数据的不同,一般情况下,持续时间长代表传输字节T,短则代表传输字节“O”。上述描述中,提到了关于基于时间的side-channel攻击的几个属性值:密集内存活动是指客户进程在短时间内对某块内存区域的密集访问,且与下一次访问有着明显的时间间隔;而密集内存活动访问时间间隔则表示相邻两次密集内存活动第一个被访问页面之间的时间间隔;访问内存页面集合表示每次密集内存活动中访问的内存页面集合;访问持续时间,表示每次密集内存活动总共持续的时间;访问开始时间,表示每次密集内存活动开始时间。
[0028]基于上述时间的side-channe I攻击内存活动的基本特征,识别模块对证据数据中心保存的原始内存活动记录进行重新计算,提取出上述属性值,之后与基于时间的side-channe I攻击内存特征进行比对。如图3所示,识别模块的处理流程如下:
(1)先将目标客户虚拟机的内存活动日志按照进程区分开来,便于日志与具体进程的对应检索。在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,包括每次密集活动时间间隔(当前这次密集活动与下一次密集活动开始时间之差)、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)对于side-channel攻击的接收者应该存在每次密集活动时间间隔一致。对于side-channel 攻击的发送者应该存在每次密集活动时间间隔应该为正常时间间隔的整数倍,正常时间间隔就是攻击进程每次处理发送信息的时间间隔,每次处理发送时间时需要判断当前传输的数据,假设传输数据“I”时需要进程进行密集内存活动,传输“O”时则不活动,则在传输连续几个“O”时,如“000”,该次密集活动时间间隔就会为正常时间间隔的3倍。如果可疑进程不具备上述两种性质其中之一,则将该进程从可疑进程序列中去除;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除,到这个步骤结束则基本认定该攻击为基于时间的side-channel攻击了。
[0029]识别模块还会针对不同攻击的特性区分攻击的种类:
(5)在side-channel攻击的发送可疑进程和接收可疑进程中分别提取出来进行攻击类型识别:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则攻击类型为基于CPU负载的s ide-channe I攻击;
如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CF1U缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的s ide-channe I攻击,否则为基于CPU缓存的s ide-channe I攻击。
[0030]验证模块作用在于过滤识别模块识别出来的误报进程,并提取更完整的攻击证据对识别模块识别出来的可疑进程进行二次验证,其流程如图4所示,具体包括如下步骤:
(1)在识别出可疑进程之后,立即保存当前客户虚拟机的内存快照;
(2)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(3)找到可疑进程的代码数据段,将二进制代码提取出来;
(4)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(5)在汇编代码中重点查找执行重复指令的代码;
(6)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel 攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
[0031](7)将可疑进程的内存快照和内存活动记录提取出来交由证据数据中心保存。
[0032]图5为证据数据中心数据流动图,在这些模块的执行过程中都需要与数据中心进行数据交互。数据中心包含三个数据池:为监控模块提供的最原始的内存活动记录数据池,经过识别模块过滤的可疑进程数据池,经过验证模块验证的恶意进程数据池。这三个数据池中分别记录三个阶段的数据:监控模块的内存活动原始记录,识别模块中被识别为可疑进程的内存活动记录,验证模块中被确认为可疑进程的内存活动记录和内存快照记录,这三个阶段为递进关系。数据中心为系统中其余三个模块提供数据输入和过滤的支持:对监控模块提供原始内存活动记录的存储支持,支持大数据量的存储和批量任务处理;对识别模块提供大数据量的检索和提取支持,对原始内存活动记录属性值计算的支持,对可疑进程数据的过滤支持;对验证模块提供可疑进程数据的检索和提取支持,对内存快照数据大文件存储的支持。
[0033]本例还公开了基于内存活动的边信道攻击取证方法,从图5中可以看出,监控模块、识别模块、验证模块是依次执行的,方法的步骤流程即为监控模块、识别模块、验证模块依次处理的过程。
[0034]本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
【主权项】
1.基于内存活动的边信道攻击取证系统,其特征在于:包括监控模块、识别模块、验证模块和证据数据中心; 所述监控模块用于对系统底层内存活动进行实时监控,提取该内存访问活动的相关信息生成内存活动日志; 所述识别模块按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致; 所述验证模块在识别模块识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来交由证据数据中心保存; 所述证据数据
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1