基于控制流锁的SGX侧信道攻击防御方法技术

技术编号:20725521 阅读:22 留言:0更新日期:2019-03-30 17:49
本发明专利技术提供一种基于控制流锁的SGX侧信道攻击防御方法。该方法包括:步骤1、在enclave内部指令的特定位置设置若干控制流检测点;步骤2、根据所述若干控制流检测点,检测处理器执行过的非法外部控制流;步骤3、记录enclave内部指令执行周期内所述非法外部控制流中非法外部控制转移的次数,将所述非法外部控制转移的次数作为发生系统异常的次数;步骤4、若所述系统异常的次数超过预设阈值,则认为发生侧信道攻击;步骤5、当认为发生侧信道攻击时,enclave内部指令中止运行,避免攻击者窥探enclave内部信息。本发明专利技术支持大体积的指令集正常工作,并且,本发明专利技术仅是在原有目标进程中插入少量指令(即控制流检测点),基本不会增加性能开销。

【技术实现步骤摘要】
基于控制流锁的SGX侧信道攻击防御方法
本专利技术涉及网络安全
,尤其涉及基于控制流锁的SGX侧信道攻击防御方法。
技术介绍
SGX(SoftwareGuardExtensions),是Intel处理器的一种硬件特性,用于增强软件的安全性。SGX并不是识别和隔离平台上的所有恶意软件,而是将合法软件的安全操作封装在一个enclave中,保护其不受恶意软件的攻击,特权或者非特权的软件都无法访问enclave。也就是说,一旦软件和数据位于enclave中,即便操作系统或者VMM(也称Hypervisor,虚拟机监视器)也无法影响enclave里面的代码和数据。enclave是指基于SGX构建的可信执行环境。IntelSGX可以为进程提供安全的执行环境,保护进程指令和数据。然而,攻击者可以利用不可信操作系统来影响enclave内部进程的执行,通过各种手段猜测SGX所保护进程的内部数据,从而绕开SGX保护机制。SGX侧信道攻击防御方法的困难在于:不可信操作系统可以在任何时候暂停enclave内部进程的执行,从而观测进程执行过程和结果,并从硬件中获取enclave执行过程的遗留信息。现有技术1:ShwetaShinde等研究者在文献“PreventingYourFaultsfromTellingYoursecrets:DefensesagainstPigeonholeAttacks”中提出通过改变enclave内部指令结构达到干扰攻击者侧信道分析的目的。具体来说,就是在程序编译时,识别需要保护的指令和数据,改变其虚拟地址空间布局,按规则重写指令扰乱页面访问结构,使侧信道攻击者无法通过分析页面访问结构重构enclave内部信息。现有技术2:JaebaekSeo等研究者在文献“SGX-Shield:EnablingAddressSpaceLayoutRandomizationforSGXPrograms”中提出利用地址空间随机化技术防御SGX侧信道攻击。地址空间随机化技术可以在一定程度上改变enclave内部指令访问页面的结构,从而也在一定程度上干扰了攻击者分析。现有技术3:Ming-WeiShih等研究者在文献“T-SGX:EradicatingControlled-ChannelAttacksAgainstEnclavePrograms”中提出利用TSX硬件特性,保证enclave内部指令执行过程不被中断。即使因为不可抗拒原因发生系统异常,首先也由TSX异常处理程序进行处理,从而避免攻击者利用系统异常来观察enclave内部指令的执行。现有技术1和现有技术2针对侧信道攻击的第二环节(如图7所示的第二环节),现有技术3的T-SGX针对侧信道攻击的第一环节(如图7所示的第一环节)。为了防止侧信道攻击者利用页面异常等手段,干扰enclave内部指令的执行,T-SGX利用处理器TSX硬件特性的支持,阻止侧信道攻击者中断enclave内部指令的执行。简单来说就是可以利用TSX硬件特性,使指令执行呈事务特性(即不可中断),即使中断以后,控制权也是转交TSX指定的异常处理程序,而非攻击者所编制的恶意程序,从而避免enclave外部攻击者无法获得enclave内部执行情况。虽然T-SGX可以阻止侧信道攻击者对enclave内部观察,但是由于其基于TSX硬件特性,所以要求每个事务所包含的代码量少。为了使用TSX,用户必须将原有指令划分成小的指令片段。这又引起新的问题,指令片段与指令片段不可避免的存在数据交互的情况,导致性能开销增加。
技术实现思路
为了在基本不额外增加性能开销的基础上,防止SGX侧信道攻击,本专利技术提出一种基于控制流锁的SGX侧信道攻击防御方法来避免侧信道攻击者对enclave内部进一步窥探。本专利技术提供的基于控制流锁的SGX侧信道攻击防御方法,包括以下步骤:步骤1、在enclave内部指令的特定位置设置若干控制流检测点;步骤2、根据所述若干控制流检测点,检测处理器执行过的非法外部控制流;步骤3、记录enclave内部指令执行周期内所述非法外部控制流中非法外部控制转移的次数,将所述非法外部控制转移的次数作为发生系统异常的次数;步骤4、若所述系统异常的次数超过预设阈值,则认为发生侧信道攻击;步骤5、当认为发生侧信道攻击时,enclave内部指令中止运行,避免攻击者窥探enclave内部信息。进一步地,所述特定位置包括:函数头部、函数尾部、函数调用指令前、函数调用指令后、函数内部的基本块的头部、函数内部的基本块的尾部中的至少一个。进一步地,所述步骤2具体包括:步骤21、根据所述若干控制流检测点,记录处理器在当前时刻之前的预设时间段内的控制转移信息;步骤22、根据所述控制转移信息判断处理器在所述预设时间段内是否发生外部控制流;步骤23、若判定发生外部控制流,区分所述外部控制流中的可预知外部控制流和不可预知外部控制流;步骤24、判断所述不可预知外部控制流是否为非法外部控制流,所述非法外部控制流指包含若干次非法外部控制转移的控制流。进一步地,所述控制流检测点包括LBR检测点和PMC检测点中的至少一种。进一步地,若所述控制流检测点为LBR检测点,则所述步骤21具体为:根据若干所述LBR检测点,利用LBR记录处理器在当前时刻之前的预设时间段内所执行过的控制转移信息。进一步地,若所述控制流检测点为PMC检测点,则所述步骤21具体为:根据若干所述PMC检测点,利用PMC记录处理器在当前时刻之前的预设时间段内的控制转移信息,所述控制转移信息包括控制转移指令的执行次数和内部控制流的发生次数;所述步骤22具体为:若所述控制转移指令的执行次数大于所述内部控制流的发生次数,则认为处理器在所述预设时间段内发生外部控制流。进一步地,所述步骤23具体为:若判定发生外部控制流,采用黑白名单的方式或指令分析的方式区分所述外部控制流中的可预知外部控制流和不可预知外部控制流。进一步地,在检测处理器执行过的非法外部控制流时,采用自适应调整检测粒度原则,所述自适应调整检测粒度原则具体为:若发现不可预知外部控制流时,按照检测粒度调整方式缩短检测周期;若持续m个检测周期内均未发现不可预知外部控制流时,按照检测粒度调整方式延长检测周期;其中,所述检测周期指程序执行过程中从一控制流检测点到下一个同类型的控制流检测点,m>1。进一步地,所述检测粒度调整方式具体包括:第一检测等级、第二检测等级和第三检测等级;所述第一检测等级为:在函数头部植入LBR检测点和PMC检测点,在函数尾部植入PMC检测点;所述第二检测等级为:在函数内部的函数调用指令前植入PMC检测点,在函数内部的函数调用指令后植入LBR检测点和PMC检测点;所述第三检测等级为:在函数内部的每个基本块头部植入LBR检测点和PMC检测点,在函数内部的每个基本块尾部植入PMC检测点。本专利技术的有益效果:侧信道攻击是针对SGX的主要攻击。防御侧信道攻击的一个重要手段是保证目标进程能够不被干扰的执行,以避免被不可信操作系统窥视内部信息。然而,由于在基于SGX构建的enclave内运行的目标进程,仍然需要依赖不可信操作系统的可信支撑,导致目标进程的执行过程可能在任一时刻点被中断。与利用TSX硬件特性的现有技术(无本文档来自技高网
...

【技术保护点】
1.基于控制流锁的SGX侧信道攻击防御方法,其特征在于,包括:步骤1、在enclave内部指令的特定位置设置若干控制流检测点;步骤2、根据所述若干控制流检测点,检测处理器执行过的非法外部控制流;步骤3、记录enclave内部指令执行周期内所述非法外部控制流中非法外部控制转移的次数,将所述非法外部控制转移的次数作为发生系统异常的次数;步骤4、若所述系统异常的次数超过预设阈值,则认为发生侧信道攻击;步骤5、当认为发生侧信道攻击时,enclave内部指令中止运行,避免攻击者窥探enclave内部信息。

【技术特征摘要】
1.基于控制流锁的SGX侧信道攻击防御方法,其特征在于,包括:步骤1、在enclave内部指令的特定位置设置若干控制流检测点;步骤2、根据所述若干控制流检测点,检测处理器执行过的非法外部控制流;步骤3、记录enclave内部指令执行周期内所述非法外部控制流中非法外部控制转移的次数,将所述非法外部控制转移的次数作为发生系统异常的次数;步骤4、若所述系统异常的次数超过预设阈值,则认为发生侧信道攻击;步骤5、当认为发生侧信道攻击时,enclave内部指令中止运行,避免攻击者窥探enclave内部信息。2.根据权利要求1所述的方法,其特征在于,所述特定位置包括:函数头部、函数尾部、函数调用指令前、函数调用指令后、函数内部的基本块的头部、函数内部的基本块的尾部中的至少一个。3.根据权利要求2所述的方法,其特征在于,所述步骤2具体包括:步骤21、根据所述若干控制流检测点,记录处理器在当前时刻之前的预设时间段内的控制转移信息;步骤22、根据所述控制转移信息判断处理器在所述预设时间段内是否发生外部控制流;步骤23、若判定发生外部控制流,区分所述外部控制流中的可预知外部控制流和不可预知外部控制流;步骤24、判断所述不可预知外部控制流是否为非法外部控制流,所述非法外部控制流指包含若干次非法外部控制转移的控制流。4.根据权利要求3所述的方法,其特征在于,所述控制流检测点包括LBR检测点和PMC检测点中的至少一种。5.根据权利要求4所述的方法,其特征在于,若所述控制流检测点为LBR检测点,则所述步骤21具体为:根据若干所述LBR检测点,利用LBR记录处理器在当前时刻之前的预设时间段内所执行过的控制转移...

【专利技术属性】
技术研发人员:周洪伟原锦辉杜遵良冯贤李福林
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1