CN105550574B - 基于内存活动的边信道攻击取证系统及方法 - Google Patents
基于内存活动的边信道攻击取证系统及方法 Download PDFInfo
- Publication number
- CN105550574B CN105550574B CN201510915411.8A CN201510915411A CN105550574B CN 105550574 B CN105550574 B CN 105550574B CN 201510915411 A CN201510915411 A CN 201510915411A CN 105550574 B CN105550574 B CN 105550574B
- Authority
- CN
- China
- Prior art keywords
- memory
- suspicious
- virtual machine
- code
- channel
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于内存活动的边信道攻击取证系统及基于该系统实现的取证方法,系统包括监控模块、识别模块、验证模块和证据数据中心。本发明利用硬件虚拟化技术,实现客户虚拟机的内存页面实时监控,并通过基于时间的side‑channel攻击的内存活动特征,利用基于内存活动特征的识别算法将基于时间的side‑channel攻击识别出来,并在静态分析的辅助下二次确认攻击的存在并提取攻击的存在证据,实现重要实时证据和存在证据的获取和分析,保证了获取证据的有效性和可信度。本发明能够在支持硬件虚拟化的虚拟化平台上部署,具有很高的透明性,不会对虚拟机平台造成额外的负荷和运行干扰。
Description
技术领域
本发明属于计算机数据处理技术领域,涉及一种云环境中攻击取证系统及方法,更为具体的说,是涉及一种内存活动下针对side-channel攻击的实时取证系统及方法。
背景技术
在公共云环境中,云提供商为了提高物理机器的使用效率,令多个虚拟机共享一台物理机器。由于多个虚拟机之间共享很多资源,如共享硬盘、CPU缓存、共享内存等,这就使得虚拟机之间隐私信息的保护受到了很大的威胁,由此出现了很多基于这些共享资源的攻击,其中基于时间的side-channel(边信道)攻击是著名的攻击类型之一,其隐蔽、不留痕迹的特性很受攻击者的关注。Ristenpart最早提出了相邻虚拟机的安全顾虑,并在该环境下成功测试了基于CPU缓存、硬盘和内存总线的side-channel攻击。该类攻击都是关注系统隔离保护相对薄弱的底层结构,绕开了高层的隔离机制,其攻击很难被安全软件所发现,在攻击完成后不会留下任何痕迹,给云计算安全和取证带来了极大的挑战。
在云取证过程中,证据的提取和分析尤为关键,传统的取证框架大部分都从系统日志和程序日志中查找证据,但对于基于时间的side-channel攻击来说,由于其本身并不使用系统自带的API,不会进行通常的I/O活动和网络通信活动,这就让取证人员很难在系统日志和程序日志中找到它的踪迹。此外,基于时间的side-channel攻击传输数据通道本身很隐蔽,开始和结束的时候系统并不会有明显的特征,在攻击发生的过程中,很难察觉到它的存在,要想实时的探测到这类攻击的存在,很难找到其特征,而采用传统的静态、动态分析技术来识别又会消耗大量的系统性能和时间。而对于基于时间的side-channel攻击代码本身,其行为特点就是在正常情况下很正常,每一个行为都符合通常程序的正常行为,很难在分析过程中发现它的存在。因此,目前还缺乏有效的手段能够针对基于时间的side-channel攻击发现和取证。
发明内容
为解决上述问题,本发明公开了一种基于内存活动的边信道攻击取证系统及方法,利用硬件虚拟化技术,实现客户虚拟机的内存页面实时监控,并通过基于时间的side-channel攻击的内存活动特征,利用基于内存活动特征的识别算法将基于时间的side-channel攻击识别出来,并在静态分析的辅助下二次确认攻击的存在并提取攻击的存在证据,实现重要实时证据和存在证据的获取和分析。
为了达到上述目的,本发明提供如下技术方案:
基于内存活动的边信道攻击取证系统,包括监控模块、识别模块、验证模块和证据数据中心;
所述监控模块用于对系统底层内存活动进行实时监控,提取该内存访问活动的相关信息生成内存活动日志;
所述识别模块按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致;
所述验证模块在识别模块识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来交由证据数据中心保存;
所述证据数据中心用于记录监控模块获得的原始内存活动记录、经过识别模块过滤的可疑进程以及经过验证模块验证的恶意进程。
进一步的,所述监控模块包括模块初始化单元和事件处理单元,所述模块初始化单元用于监控目标客户虚拟机的详细信息,然后向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,随后在内存相应位置修改内存访问权限,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数;所述事件处理单元用于截获客户虚拟机触发的内存事件,通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机,并用于过滤掉可信的进程内存活动,提取非可信进程的内存访问活动的相关信息交由证据数据中心记录形成内存活动日志。
进一步的,所述识别模块判断可疑进程时具体包括如下步骤:
(1)将目标客户虚拟机的内存活动日志按照进程区分开来,在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,所述属性值包括以下至少一种:每次密集活动时间间隔、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)如果可疑进程不具备下述两种条件其中之一,则将该进程从可疑进程序列中去除,所述两种条件包括:
对于side-channel攻击的接收者存在每次密集活动时间间隔一致;
对于side-channel攻击的发送者存在每次密集活动时间间隔为正常时间间隔的整数倍;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除。
进一步的,所述识别模块还进行攻击类型识别:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则判断攻击类型为基于CPU负载的side-channel攻击;如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
进一步的,所述验证模块中对可疑进程进行静态的二进制代码分析的过程包括如下步骤:
(1)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(2)找到可疑进程的代码数据段,将二进制代码提取出来;
(3)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(4)在汇编代码中重点查找执行重复指令的代码;
(5)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
本发明还提供了基于内存活动的边信道攻击取证方法,包括如下步骤:
步骤A,对系统底层内存活动进行实时监控,提取该内存访问活动的相关信息生成内存活动日志;
步骤B,按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致;
步骤C,在步骤B识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来保存。
进一步的,所述步骤A具体包括以下步骤:监控目标客户虚拟机的详细信息,向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,在内存相应位置修改内存访问权限,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数,截获客户虚拟机触发的内存事件,通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机,并用于过滤掉可信的进程内存活动,提取非可信进程的内存访问活动的相关信息形成内存活动日志。
进一步的,所述步骤B具体包括如下步骤:
(1)将目标客户虚拟机的内存活动日志按照进程区分开来,在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,所述属性值包括以下至少一种:每次密集活动时间间隔、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)如果可疑进程不具备下述两种条件其中之一,则将该进程从可疑进程序列中去除,所述两种条件包括:
对于side-channel攻击的接收者存在每次密集活动时间间隔一致;
对于side-channel攻击的发送者存在每次密集活动时间间隔为正常时间间隔的整数倍;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除。
进一步的,所述步骤B还包括攻击类型识别的步骤:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则判断攻击类型为基于CPU负载的side-channel攻击;如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
进一步的,所述步骤C中对可疑进程进行静态的二进制代码分析的过程包括如下步骤:
(1)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(2)找到可疑进程的代码数据段,将二进制代码提取出来;
(3)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(4)在汇编代码中重点查找执行重复指令的代码;
(5)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
与现有技术相比,本发明具有如下优点和有益效果:
1.本发明提供的取证系统和方法能够在硬件虚拟化技术的支持下,在基于时间的side-channel攻击发生时,实时地获取攻击证据,克服了当前事后取证方法的缺陷,实现客户目标虚拟机的实时取证,在取证过程中最大程度的防止了证据的丢失和篡改。
2.本发明的识别过程克服了基于时间的side-channel攻击无法识别的缺陷,通过底层活动的分析找到了这类攻击的存在和发生过程证据。
3.本发明提出了二次验证机制,弥补识别过程中可能出现的误报进程,再次确认攻击进程的存在,验证了整个取证过程的可行性,保证了获取证据的有效性和可信度。
4.本发明能够在支持硬件虚拟化的虚拟化平台上部署,在系统运行时部署,无需停止或重启目标客户虚拟机,无需修改客户虚拟机和虚拟机监控平台代码,具有很高的透明性,不会对虚拟机平台造成额外的负荷和运行干扰。
附图说明
图1为本发明提供的基于内存活动的边信道攻击取证系统结构示意图;
图2为监控模块处理流程示意图;
图3为识别模块处理流程示意图;
图4为验证模块处理流程过程图;
图5为证据数据中心中三个数据池中数据流动示意图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。
请参阅图1,图中为本发明提供的基于内存活动的边信道攻击取证系统结构示意图,本系统在硬件虚拟化平台的支持下,获取到客户虚拟机的内存访问权限,拦截并记录客户虚拟机页面内存的访问情况,将云平台下基于时间的side-channel攻击识别并验证,并保存相关证据。系统具体包括监控模块、识别模块、验证模块和证据数据中心,其中,监控模块负责整个证据收集过程,其对系统底层内存活动进行实时监控,并提供详细的日志记录。识别模块将云平台下基于时间的side-channel攻击识别出来,提取出可疑进程日志并将冗余的监控日志过滤掉。验证模块对识别模块识别出来的可疑进程进行二次验证,并提取此时系统的内存快照,为取证系统提供完整的证据提取和分析支持。证据数据中心提供对整个取证过程中的证据数据处理支持,与其他三个模块相互配合,支持证据的收集、过滤和提取。本系统运行环境包括三个层次:硬件层、虚拟机监视器层和虚拟机层,监控模块横跨虚拟机监视器层和虚拟机层,其余模块都部署在虚拟机中,对目标客户虚拟机不会产生任何的干扰,具有很高的透明性和隐蔽性。
对于底层内存活动的监控,硬件虚拟化技术提供内存虚拟化技术支持,从而能够实现对内存访问的权限管理,实现对客户虚拟机内存行为监控的同时也能保证了虚拟机的相互隔离与独立性。硬件虚拟化的特性保证了运行环境的一致性,即计算机软件在硬件虚拟机下的行为和在机器上直接运行保持一致;保证了VMM能够完全控制虚拟机的资源,包括内存、寄存器、I/O、中断和指令的执行;并保证了高效性,即普通指令的运行不受VMM干扰,能够全速运行。目前在x86架构下支持硬件虚拟化的技术有INTEL的Intel VT-x(2005)和AMD的AMD-V(2006),都已经广泛运用在各类个人电脑和服务器中。本例采用了intel VT 硬件虚拟化技术,在虚拟机平台Xen当中运行。监控模块初始化时通过内存EPT来修改内存页面的访问权限,当客户虚拟机对内存页面进行访问时就会触发一个VM exit并陷入到虚拟机监视器中,此时监视器从事件注册表中找到事先注册好的事件处理函数,然后将该事件传递到我们的取证系统中进行处理,同时此时会恢复内存访问权限让客户进程继续执行。
具体的说,监控模块包括模块初始化和事件处理两个单元,监控模块运作流程如图2所示。
其中模块初始化单元用于监控目标客户虚拟机的详细信息,然后向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,随后在内存相应位置修改内存访问权限,当有进程访问这块内存区域时就会触发一个内存硬件事件,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数。模块初始化单元处理的具体过程如下:
(1)监控模块向虚拟机监视器申请获取目标客户虚拟机的运行信息,包括客户虚拟机的ID,内存大小,虚拟机内存对应的实际内存地址范围和客户虚拟机用户进程的偏移量信息;
(2)向虚拟机监视器申请修改目标客户虚拟机内存区域的访问权限;
(3)向虚拟机监视器申请注册目标客户虚拟机内存事件的逻辑处理事件。
而事件处理单元主要由内存硬件事件的事件处理函数组成。事件处理单元自动截获到客户虚拟机触发的内存事件,此时控制流陷入虚拟机监视器中,虚拟机监视器通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机。事件处理单元处理的具体过程如下:
(1)虚拟机监视器接收到内存硬件事件,在事件注册表中找到注册的对于逻辑处理事件,并将该事件传给对应的处理函数,并取消掉该页面的访问权限,让客户进程正常进行;
(2)获取触发该事件的客户进程和进程空间地址,比对已有的进程白名单,将可信的进程内存活动过滤掉。如果该进程为可信进程则事件处理完成,直接退出;如果不是则进入步骤(3);
(3)提取该内存访问活动的相关信息,具体包括访问该页面的客户进程、访问时间、内存操作类型和访问该页面的具体位置;
(4)将提取到的信息组合打包好之后交由证据数据中心记录形成内存活动日志;
(5)向虚拟机监视器申请重新设置该页面的内存访问权限,继续监控该页面的访问情况。
识别模块根据基于时间的side-channel攻击内存活动的基本特征,通过对内存活动日志特征的抽象,将云平台下基于时间的side-channel攻击识别出来,提取出可疑进程日志并将冗余的监控日志过滤掉,然后进一步利用基于时间的side-channel攻击类型之间的差别作为攻击分类的基础,最终确定攻击的存在。
经过研究我们发现,基于时间的side-channel攻击的内存活动存在一个共同的特征表现:在固定的时间间隔内,重复访问同一块内存区域。用上述属性进行详细表述为:基于时间的边信道攻击进程在一段时间内会存在多次密集内存活动,对于攻击中的接收者,多次密集内存活动之间的密集内存活动访问时间间隔一致,访问内存页面集合一致,访问持续时间不一定一致,根据基于时间的边信道攻击的通信协议,持续时间的长短代表了传输数据的不同,一般情况下,持续时间长代表传输字节“1”,短则代表传输字节“0”。上述描述中,提到了关于基于时间的side-channel攻击的几个属性值:密集内存活动是指客户进程在短时间内对某块内存区域的密集访问,且与下一次访问有着明显的时间间隔;而密集内存活动访问时间间隔则表示相邻两次密集内存活动第一个被访问页面之间的时间间隔;访问内存页面集合表示每次密集内存活动中访问的内存页面集合;访问持续时间,表示每次密集内存活动总共持续的时间;访问开始时间,表示每次密集内存活动开始时间。
基于上述时间的side-channel攻击内存活动的基本特征,识别模块对证据数据中心保存的原始内存活动记录进行重新计算,提取出上述属性值,之后与基于时间的side-channel攻击内存特征进行比对。如图3所示,识别模块的处理流程如下:
(1)先将目标客户虚拟机的内存活动日志按照进程区分开来,便于日志与具体进程的对应检索。在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,包括每次密集活动时间间隔(当前这次密集活动与下一次密集活动开始时间之差)、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)对于side-channel攻击的接收者应该存在每次密集活动时间间隔一致。对于side-channel攻击的发送者应该存在每次密集活动时间间隔应该为正常时间间隔的整数倍,正常时间间隔就是攻击进程每次处理发送信息的时间间隔,每次处理发送时间时需要判断当前传输的数据,假设传输数据“1”时需要进程进行密集内存活动,传输“0”时则不活动,则在传输连续几个“0”时,如“000”,该次密集活动时间间隔就会为正常时间间隔的3倍。如果可疑进程不具备上述两种性质其中之一,则将该进程从可疑进程序列中去除;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除,到这个步骤结束则基本认定该攻击为基于时间的side-channel攻击了。
识别模块还会针对不同攻击的特性区分攻击的种类:
(5)在side-channel攻击的发送可疑进程和接收可疑进程中分别提取出来进行攻击类型识别:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则攻击类型为基于CPU负载的side-channel攻击;
如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
验证模块作用在于过滤识别模块识别出来的误报进程,并提取更完整的攻击证据对识别模块识别出来的可疑进程进行二次验证,其流程如图4所示,具体包括如下步骤:
(1)在识别出可疑进程之后,立即保存当前客户虚拟机的内存快照;
(2)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(3)找到可疑进程的代码数据段,将二进制代码提取出来;
(4)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(5)在汇编代码中重点查找执行重复指令的代码;
(6)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
(7)将可疑进程的内存快照和内存活动记录提取出来交由证据数据中心保存。
图5为证据数据中心数据流动图,在这些模块的执行过程中都需要与数据中心进行数据交互。数据中心包含三个数据池:为监控模块提供的最原始的内存活动记录数据池,经过识别模块过滤的可疑进程数据池,经过验证模块验证的恶意进程数据池。这三个数据池中分别记录三个阶段的数据:监控模块的内存活动原始记录,识别模块中被识别为可疑进程的内存活动记录,验证模块中被确认为可疑进程的内存活动记录和内存快照记录,这三个阶段为递进关系。数据中心为系统中其余三个模块提供数据输入和过滤的支持:对监控模块提供原始内存活动记录的存储支持,支持大数据量的存储和批量任务处理;对识别模块提供大数据量的检索和提取支持,对原始内存活动记录属性值计算的支持,对可疑进程数据的过滤支持;对验证模块提供可疑进程数据的检索和提取支持,对内存快照数据大文件存储的支持。
本例还公开了基于内存活动的边信道攻击取证方法,从图5中可以看出,监控模块、识别模块、验证模块是依次执行的, 方法的步骤流程即为监控模块、识别模块、验证模块依次处理的过程。
本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.基于内存活动的边信道攻击取证系统,其特征在于:包括监控模块、识别模块、验证模块和证据数据中心;
所述监控模块用于对系统底层内存活动进行实时监控,提取该内存活动的相关信息生成内存活动日志;
所述识别模块按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致;
所述验证模块在识别模块识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来交由证据数据中心保存;
所述证据数据中心用于记录监控模块获得的原始内存活动记录、经过识别模块过滤的可疑进程以及经过验证模块验证的恶意进程。
2.根据权利要求1所述的基于内存活动的边信道攻击取证系统,其特征在于:所述监控模块包括模块初始化单元和事件处理单元,所述模块初始化单元用于监控目标客户虚拟机的详细信息,然后向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,随后在内存相应位置修改内存访问权限,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数;所述事件处理单元用于截获客户虚拟机触发的内存事件,通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机,并用于过滤掉可信的进程内存活动,提取非可信进程的内存活动的相关信息交由证据数据中心记录形成内存活动日志。
3.根据权利要求1所述的基于内存活动的边信道攻击取证系统,其特征在于:所述识别模块判断可疑进程时具体包括如下步骤:
(1)将目标客户虚拟机的内存活动日志按照进程区分开来,在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,所述属性值包括:每次密集活动时间间隔、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)如果可疑进程不具备下述两种条件其中之一,则将该进程从可疑进程序列中去除,所述两种条件包括:
对于side-channel攻击的接收者存在每次密集活动时间间隔一致;
对于side-channel攻击的发送者存在每次密集活动时间间隔为正常时间间隔的整数倍;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除。
4.根据权利要求1或3所述的基于内存活动的边信道攻击取证系统,其特征在于,所述识别模块还进行攻击类型识别:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则判断攻击类型为基于CPU负载的side-channel攻击;如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
5.根据权利要求1或3所述的基于内存活动的边信道攻击取证系统,其特征在于,所述验证模块中对可疑进程进行静态的二进制代码分析的过程包括如下步骤:
(1)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(2)找到可疑进程的代码数据段,将二进制代码提取出来;
(3)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(4)在汇编代码中重点查找执行重复指令的代码;
(5)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
6.基于内存活动的边信道攻击取证方法,其特征在于,包括如下步骤:
步骤A,对系统底层内存活动进行实时监控,提取该内存活动的相关信息生成内存活动日志;
步骤B,按照进程区分内存活动日志,查找重复访问同一内存页面的进程,获得该进程访问的内存活动记录,当该进程满足发送可疑进程和/或接收可疑进程条件,并且每次密集活动访问页面集合都一致时则判断该进程为可疑进程,最终得到可疑进程序列;所述发送可疑进程条件包括每次密集活动时间间隔为正常时间间隔的整数倍,所述接收可疑进程条件包括每次密集活动时间间隔一致;
步骤C,在步骤B识别出可疑进程之后,保存当前客户虚拟机的内存快照,通过内存快照对可疑进程进行静态的二进制代码分析确认其是否为恶意进程,将恶意进程的内存快照和内存活动记录提取出来保存。
7.根据权利要求6所述的基于内存活动的边信道攻击取证方法,其特征在于,所述步骤A具体包括以下步骤:监控目标客户虚拟机的详细信息,向虚拟机监视器申请获取目标客户虚拟机的内存具体位置,在内存相应位置修改内存访问权限,最后在虚拟机监视器中对该内存硬件事件注册事件处理函数,截获客户虚拟机触发的内存事件,通过逻辑事件注册表找到该硬件事件对应的逻辑事件处理函数,在事件处理完成后,最后再将控制权交还客户虚拟机,并用于过滤掉可信的进程内存活动,提取非可信进程的内存活动的相关信息形成内存活动日志。
8.根据权利要求6所述的基于内存活动的边信道攻击取证方法,其特征在于,所述步骤B具体包括如下步骤:
(1)将目标客户虚拟机的内存活动日志按照进程区分开来,在每个进程里面查找是否存在某内存页面被同一进程重复访问,存在则进入步骤(2)并将访问该页面的进程放入可疑进程序列;
(2)从可疑进程序列中依次取出可疑进程,找到该进程访问的内存活动记录,根据这些记录分别计算其属性值,所述属性值包括:每次密集活动时间间隔、每次密集活动访问内存页面集合、每次密集活动访问持续时间和每次密集活动开始时间;
(3)如果可疑进程不具备下述两种条件其中之一,则将该进程从可疑进程序列中去除,所述两种条件包括:
对于side-channel攻击的接收者存在每次密集活动时间间隔一致;
对于side-channel攻击的发送者存在每次密集活动时间间隔为正常时间间隔的整数倍;
(4)检查可疑进程每次密集活动访问页面集合是否都一致,如果不一致则将该进程从可疑进程序列中去除。
9.根据权利要求6或8所述的基于内存活动的边信道攻击取证方法,其特征在于,所述步骤B还包括攻击类型识别的步骤:
如果发送者进程和接收者进程的每次密集访问开始时间一致,则判断攻击类型为基于CPU负载的side-channel攻击;如果发送者进程和接收者进程的每次密集访问开始时间不一致,则观察其密集访问持续时间,如果远远大于基于CPU缓存的side-channel攻击的延迟阈值,则该攻击为基于内存总线的side-channel攻击,否则为基于CPU缓存的side-channel攻击。
10.根据权利要求6所述的基于内存活动的边信道攻击取证方法,其特征在于,所述步骤C中对可疑进程进行静态的二进制代码分析的过程包括如下步骤:
(1)根据记录中可疑进程的进程空间地址,在内存快照中对应位置提取出可疑进程内存空间;
(2)找到可疑进程的代码数据段,将二进制代码提取出来;
(3)将二进制代码根据该代码运行的系统和硬件平台还原成汇编代码进行分析;
(4)在汇编代码中重点查找执行重复指令的代码;
(5)在重复指令代码里面查找是否存在进行时间刺探的代码以及其他存在的side-channel攻击代码特征,如果存在则表明该进程为恶意进程,如果不存在则过滤掉该可疑进程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510915411.8A CN105550574B (zh) | 2015-12-11 | 2015-12-11 | 基于内存活动的边信道攻击取证系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510915411.8A CN105550574B (zh) | 2015-12-11 | 2015-12-11 | 基于内存活动的边信道攻击取证系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105550574A CN105550574A (zh) | 2016-05-04 |
CN105550574B true CN105550574B (zh) | 2018-05-25 |
Family
ID=55829761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510915411.8A Active CN105550574B (zh) | 2015-12-11 | 2015-12-11 | 基于内存活动的边信道攻击取证系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105550574B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491692B (zh) * | 2016-06-13 | 2020-07-28 | 厦门雅迅网络股份有限公司 | 一种监测Android终端能量空耗攻击的方法及系统 |
CN109033826B (zh) * | 2018-06-26 | 2019-06-28 | 天津飞腾信息技术有限公司 | 可抵御边信道攻击的缓存加固方法及装置 |
CN111274582B (zh) * | 2020-01-14 | 2022-06-21 | 中国人民解放军战略支援部队信息工程大学 | 基于透明度的取证效果评估方法、取证分析装置及方法 |
CN111966457B (zh) * | 2020-08-10 | 2024-04-19 | 华中科技大学 | 一种基于快照的恶意代码检测方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102571746A (zh) * | 2011-11-23 | 2012-07-11 | 西安交通大学 | 一种面向云计算环境侧通道攻击防御的虚拟机部署方法 |
CN102843385A (zh) * | 2012-09-24 | 2012-12-26 | 东南大学 | 一种用于云计算环境中防范旁路攻击虚拟机的方法 |
US9009385B1 (en) * | 2011-06-30 | 2015-04-14 | Emc Corporation | Co-residency detection in a cloud-based system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9396135B2 (en) * | 2011-05-18 | 2016-07-19 | University Of North Texas | Method and apparatus for improving computer cache performance and for protecting memory systems against some side channel attacks |
-
2015
- 2015-12-11 CN CN201510915411.8A patent/CN105550574B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9009385B1 (en) * | 2011-06-30 | 2015-04-14 | Emc Corporation | Co-residency detection in a cloud-based system |
CN102571746A (zh) * | 2011-11-23 | 2012-07-11 | 西安交通大学 | 一种面向云计算环境侧通道攻击防御的虚拟机部署方法 |
CN102843385A (zh) * | 2012-09-24 | 2012-12-26 | 东南大学 | 一种用于云计算环境中防范旁路攻击虚拟机的方法 |
Non-Patent Citations (1)
Title |
---|
云计算环境下跨虚拟机的边信道攻击技术研究;王星;《中国优秀硕士学位论文全文数据库·信息科技辑》;20131215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105550574A (zh) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Case et al. | Memory forensics: The path forward | |
Srinivasan et al. | Process out-grafting: an efficient" out-of-vm" approach for fine-grained process execution monitoring | |
US9166988B1 (en) | System and method for controlling virtual network including security function | |
CN107612924B (zh) | 基于无线网络入侵的攻击者定位方法及装置 | |
Hizver et al. | Real-time deep virtual machine introspection and its applications | |
Lengyel et al. | Virtual machine introspection in a hybrid honeypot architecture. | |
Moustafa et al. | Data analytics-enabled intrusion detection: Evaluations of ToN_IoT linux datasets | |
CN105787370B (zh) | 一种基于蜜罐的恶意软件收集和分析方法 | |
CN105550574B (zh) | 基于内存活动的边信道攻击取证系统及方法 | |
CN107515778B (zh) | 一种基于上下文感知的起源追踪方法及系统 | |
CN103310152B (zh) | 基于系统虚拟化技术的内核态Rootkit检测方法 | |
CN107465702B (zh) | 基于无线网络入侵的预警方法及装置 | |
CN103886259B (zh) | 基于Xen虚拟化环境的内核级rootkit检测和处理方法 | |
CN107566401B (zh) | 虚拟化环境的防护方法及装置 | |
CN109597675B (zh) | 虚拟机恶意软件行为检测方法及系统 | |
CN104866407A (zh) | 一种虚拟机环境下的监控系统及监控方法 | |
Xie et al. | Rootkit detection on virtual machines through deep information extraction at hypervisor-level | |
CN108345795A (zh) | 用于检测和分类恶意软件的系统和方法 | |
CN104735069A (zh) | 一种基于安全可信的高可用性计算机集群 | |
Fischer et al. | CloudIDEA: a malware defense architecture for cloud data centers | |
Reeves | Autoscopy Jr.: Intrusion detection for embedded control systems | |
CN107517226B (zh) | 基于无线网络入侵的报警方法及装置 | |
Zhang et al. | Xen-based virtual honeypot system for smart device | |
CN107516039B (zh) | 虚拟化系统的安全防护方法及装置 | |
Tsifountidis | Virtualization security: Virtual machine monitoring and introspection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |