本申请实施例公开一种SGX恶意软件检测方法及系统。所述方法包括:A1、构建驱逐集;A2、从每个所述驱逐集中随机选取一个内存行,将所有选取的所述内存行组织到一个集合中形成探测集;A3、通过将所述探测集中的内存行放入到CPU的最后一级缓存的一个缓存集中以实现连续访问所述探测集的每一个内存行,并且记录本次访存花费的访问时间;如果所述访问时间大于特定阈值,则表明本次访问对应的所述缓存集被过度使用,从而得到一个表示所述缓存集是否被过度使用的缓存监控矩阵;A4、基于所述缓存监控矩阵检测恶意行为。所述系统用于执行所述方法。本申请实施例可通过分析Enclave不变的静态特征和调研从Enclave外观察到的动态特征来检测恶意的SGX程序。
【技术实现步骤摘要】
SGX恶意软件检测方法及系统
本申请涉及计算机安全
,特别涉及一种SGX恶意软件检测方法及系统。
技术介绍
IntelSoftwareGuardExtensions(SGX)是现代Intel处理器上新兴的安全功能,它可以创建称为Enclave的内存区域来为用户级的应用程序提供基于硬件的保护,使其免受恶意操作系统的攻击。SGX程序的安全性由扩展的内存管理单元提供的内存隔离功能、内存加密引擎提供的内存加密功能和处理器中内置密钥的远程认证功能来保护。SGX能够保证程序安全地运行在不可信的环境中(如云厂商),从而成功地解除了应用程序和底层系统软件之间的信任关系。然而,与其他被攻击者滥用的安全机制相似,SGX也可能被用来制造恶意软件,并且SGX技术使得该恶意软件变的十分隐蔽,可以逃避当前以下的恶意软件检测方法。1).基于静态分析的检测。该方案是目前最基础也是应用最广泛的一种解决方案,它通过在样本的可执行文件中检索已知的恶意特征来检测恶意软件。但是,SGX程序至少会划分为两个文件以分别在Enclave内外环境中执行,因此其保持着与传统文件不同的文件结构,这会使传统的静态检测方法失效。更严重的是,恶意软件开发者可能会采用自修改代码(如加密技术)来隐藏恶意载荷。这都会使得逆向工程和静态分析技术完全无效。2).基于内存取证的检测。该方案利用了加密的恶意载荷会在运行时解密的特点,通过转储并分析样本运行时的内存来检测恶意软件。然而,SGX本质上提供了隔离的内存区域Enclave,当前的技术方案都无法获得Enclave中的数据或追踪其内存访问痕迹。因此,该方法也不能检测SGX恶意软件。3).基于调试的检测。该方案使用x86指令集提供的高级辅助调试功能,如陷阱和单步调试等来分析程序的执行和识别恶意软件;例如,EDB-Debugger工具已经集成进当前的数据取证操作系统(如KaliLinux)来分析恶意软件。而SGX在Enclave内显式地抑制了这类调试技术,因此传统的基于调试的方法也完全无效。4).基于沙盒分析的检测。该方案利用了沙盒(如虚拟机和模拟器)提供的灵活的恢复和隔离功能,将待检测样本放入其中执行以收集运行时数据来检测恶意软件。然而虚拟机和模拟器并不能很好的执行SGX程序:在Enclave内执行若干特殊指令(RDRAND)可能会导致虚拟机退出,执行这类指令的时间差异会使得恶意SGX程序意识到虚拟机的存在从而不表现出恶意行为;此外,模拟器通常是基于软件的实现,因此不能完成硬件协助的远程认证功能。5).基于系统调用的检测。该方案通过分析系统调用的序列及其参数来检测恶意软件。但是:a).部分SGX运行时系统会改变原有系统调用的序列和参数,如Graphene-SGX会将access转换为openaccessclose,这可能会使得训练好的检测模型无效;b).这类方法只能检测出基于系统调用的攻击,而不能检测出其他攻击(如基于处理器缓存的侧信道攻击)。6).基于性能监控计数器的检测。该方案利用Intel处理器中提供的性能监控计数器来监控程序的cachemiss/hit和branch信息,从而检测一系列基于微架构元素的侧信道攻击。而产品级的Enclave会设置AntiSide-ChannelInterference(ASCI)比特来抑制性能监控功能,因此攻击者可以利用Enclave来发起侧信道攻击并能够成功躲避当前所有检测方案。可见,当前主流的各类恶意软件检测方法都不能应对基于SGX技术的恶意软件,且迄今为止并没有专注于检测SGX恶意软件的方案。以上
技术介绍
内容的公开仅用于辅助理解本申请的专利技术构思及技术方案,其并不必然属于本申请的现有技术,在没有明确的证据表明上述内容在本申请的申请日已经公开的情况下,上述
技术介绍
不应当用于评价本申请的新颖性和创造性。
技术实现思路
本申请提出一种SGX恶意软件检测方法及系统,可通过分析Enclave不变的静态特征和调研从Enclave外观察到的动态特征来检测恶意的SGX程序。在第一方面,本申请提供一种SGX恶意软件检测方法,包括:A1、构建驱逐集;A2、从每个所述驱逐集中随机选取一个内存行,将所有选取的所述内存行组织到一个集合中形成探测集;A3、通过将所述探测集中的内存行放入到CPU的最后一级缓存的一个缓存集中以实现连续访问所述探测集的每一个内存行,并且记录本次访存花费的访问时间;如果所述访问时间大于特定阈值,则表明本次访问对应的所述缓存集被过度使用,从而得到一个表示所述缓存集是否被过度使用的缓存监控矩阵;A4、基于所述缓存监控矩阵检测恶意行为。在一些优选的实施方式中,还包括:B1、通过观察侧信道信息来监控Enclave对不可信程序的内存访问。在一些优选的实施方式中,所述B1具体包括:B11、在CPU切换到Enclave模式之前,清除不可信内存所有可执行页面的页表项的Accessed位,并且在快表TLB中移除所述Accessed位的记录;B12、在CPU从Enclave模式切换到普通模式之前,重复地进行以下操作:a)、检查不可信内存可执行页面的Accessed位;b)、如果所述Accessed位被置1,则将所述Accessed位记录并清零;c)、清除快表TLB中的记录;B13、构建一个表示内存页面是否被访问的内存访问监控矩阵;B14、基于所述内存访问监控矩阵检测恶意内存访问行为。在一些优选的实施方式中,还包括:C1、静态地分析主应用程序和Enclave文件的二进制代码来提取Enclave元数据和ECall或OCall的函数原型。在一些优选的实施方式中,还包括:D1、通过对Enclave线程控制结构页面的监控来捕捉Enclave入口;在一些优选的实施方式中,所述D1具体包括:D11、在SGX驱动加载Enclave页面进入Enclave时,获得一个Enclave中所有的线程控制结构页面的地址;D12、当Enclave通过EINIT指令初始化完毕,则清除线程控制结构页面PTE的Present位并在快表TLB中移除所述Present位的记录;D13、获得当前的上下文信息并与标准的Enclave入口比较,以检测异常的Enclave进入行为。在一些优选的实施方式中,还包括:E1、利用产品版Enclave提供的反调试功能来捕捉Enclave退出;在一些优选的实施方式中,所述E1具体包括:E11、为当前线程设置调试标志;E12、获取异常上下文并与标准的Enclave退出位置进行比较,以检测异常的退出。在一些优选的实施方式中,还包括:F1、通过检查Enclave进出前后的栈帧和寄存器值来检测控制流劫持攻击。在一些优选的实施方式中,还包括:H1、通过创建钩子的方式来监控标准的Enclave接口行为。在一些优选的实施方式中,所述H1具体包括:挂钩sgx_ecall和sgx_ecall_switchless函数来监控ECal本文档来自技高网...
【技术保护点】
1.一种SGX恶意软件检测方法,其特征在于,包括:/nA1、构建驱逐集;/nA2、从每个所述驱逐集中随机选取一个内存行,将所有选取的所述内存行组织到一个集合中形成探测集;/nA3、通过将所述探测集中的内存行放入到CPU的最后一级缓存的一个缓存集中以实现连续访问所述探测集的每一个内存行,并且记录本次访存花费的访问时间;如果所述访问时间大于特定阈值,则表明本次访问对应的所述缓存集被过度使用,从而得到一个表示所述缓存集是否被过度使用的缓存监控矩阵;/nA4、基于所述缓存监控矩阵检测恶意行为。/n
【技术特征摘要】
1.一种SGX恶意软件检测方法,其特征在于,包括:
A1、构建驱逐集;
A2、从每个所述驱逐集中随机选取一个内存行,将所有选取的所述内存行组织到一个集合中形成探测集;
A3、通过将所述探测集中的内存行放入到CPU的最后一级缓存的一个缓存集中以实现连续访问所述探测集的每一个内存行,并且记录本次访存花费的访问时间;如果所述访问时间大于特定阈值,则表明本次访问对应的所述缓存集被过度使用,从而得到一个表示所述缓存集是否被过度使用的缓存监控矩阵;
A4、基于所述缓存监控矩阵检测恶意行为。
2.根据权利要求1所述方法,其特征在于,还包括:B1、通过观察侧信道信息来监控Enclave对不可信程序的内存访问。
3.根据权利要求2所述方法,其特征在于,所述B1具体包括:
B11、在CPU切换到Enclave模式之前,清除不可信内存所有可执行页面的页表项的Accessed位,并且在快表TLB中移除所述Accessed位的记录;
B12、在CPU从Enclave模式切换到普通模式之前,重复地进行以下操作:a)、检查不可信内存可执行页面的Accessed位;b)、如果所述Accessed位被置1,则将所述Accessed位记录并清零;c)、清除快表TLB中的记录;
B13、构建一个表示内存页面是否被访问的内存访问监控矩阵;
B14、基于所述内存访问监控矩阵检测恶意内存访问行为。
4.根据权利要求1所述方法,其特征在于,还包括:C1、静态地分析主应用程序和Enclave文件的二进制代码来提取Enclave元数据和ECall或OCall的函数原型。
5.根据权利要求4所述方法,其特征在于,
还包括:D1、通过对Enclave线程控制结构页...
【专利技术属性】
技术研发人员:李琦,张泽宇,张晓丽,孙琨,李晓宁,
申请(专利权)人:清华大学深圳国际研究生院,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。