一种可抵抗基于flush操作的cache攻击的软硬协同计时器实现方法和系统技术方案

技术编号:22659152 阅读:23 留言:0更新日期:2019-11-28 03:32
本发明专利技术涉及一种可抵抗基于flush操作的cache攻击的软硬协同计时器实现方法和系统。该系统包括初始化软件模块、硬件模块以及运行时软件模块。在初始化阶段,初始化软件模块与硬件模块之间相互协同,以测试安全范围内最高的时间分辨率,并把硬件模块中的安全低分辨率计时器调整到该时间分辨率;在运行时阶段,在出现flush操作时,可以短暂降低自身分辨率,而当没有flush操作时,恢复自身的高分辨率。通过这种flush操作和计时器分辨率的协同机制,可以有效的抵御基于flush操作的cache攻击。同时,本发明专利技术通过优化设计,保证了高安全性的同时,其自身的性能损失非常低,因此是一种高效、安全的计时器实现方法。

A soft and hard cooperative timer implementation method and system that can resist cache attack based on flush operation

The invention relates to a soft hard cooperative timer implementation method and system which can resist cache attack based on flush operation. The system includes initialization software module, hardware module and runtime software module. In the initialization phase, the initialization software module and hardware module cooperate with each other to test the highest time resolution within the safe range, and adjust the safe low resolution timer in the hardware module to this time resolution; in the runtime phase, when there is a flush operation, it can temporarily reduce its resolution, but when there is no flush operation, it can restore its high resolution \u3002 Through the cooperation mechanism of flush operation and timer resolution, we can effectively resist the cache attack based on flush operation. At the same time, the invention ensures high security through optimized design, and its own performance loss is very low, so it is an efficient and safe timer implementation method.

【技术实现步骤摘要】
一种可抵抗基于flush操作的cache攻击的软硬协同计时器实现方法和系统
本专利技术属于信息安全软硬件协同设计
,具体为基于ARM-FPGA嵌入式SoC的软硬协同计时器的实现方法和系统。本专利技术在保证了高安全性和低性能损失的情况下,可抵御基于flush操作的cache攻击,是一种高效、安全的计时器实现方法。
技术介绍
近年来,随着市场对高性能小型电子设备的需求越来越大,SoC(SystemonChip,片上系统)商品的功能也变得越来越强大、复杂并且个性化。其中,把ARM和FPGA(Field-ProgrammableGateArray,现场可编程门阵列)结合到一起的ARM-FPGA嵌入式SoC,为系统架构师和ARM开发工程师提供了一个弹性的平台以满足消费者的个性化需求。该类型SoC以Xilinx公司的Zynq系列为代表,已经被广泛应用到无人机以及高性能嵌入式和物联网设备中。但是,与Intel和AMD的芯片产品一样,ARM-FPGA嵌入式SoC同样面临着多种多样的安全威胁,以cache攻击为代表的微体系架构攻击就是其中不可忽略的一种类型。在过去的十几年里,越来越多的研究人员以cache(高速缓冲存储器)为突破口成功的实现了微体系架构攻击。Cache攻击已经成为了现代处理器和操作系统的重要安全威胁。更吸引人注意的是,2018年初,Meltdown(见M.Lipp,M.Schwarz,D.Gruss,T.Prescher,W.Haas,A.Fogh,J.Horn,S.Mangard,P.Kocher,D.Genkin,Y.Yarom,M.Hamburg.Meltdown:ReadingKernelMemoryfromUserSpace.In27thUSENIXSecuritySymposium,2018)和Spectre攻击(见P.Kocher,J.Horn,A.Fogh,D.Genkin,D.Gruss,W.Haas,M.Hamburg,M.Lipp,S.Mangard,T.Prescher,M.Schwarz,Y.Yarom.SpectreAttacks:ExploitingSpeculativeExecution.In40thIEEESymposiumonSecurityandPrivacy,2019)被公布在互联网上。它们把cache攻击技术与乱序执行和分支预测技术结合在一起,大大扩展了cache攻击的数据窃取能力。最近几年,为了降低cache攻击中的噪声并且增加攻击的分辨率,许多研究者已经开始在cache攻击中运用flush操作(清理操作),如Flush+Reload,Flush+Flush以及基于flush操作的Spectre攻击(利用Flush+Reload原理的Spectre攻击)。我们把这种类型的cache攻击称为“基于flush操作的cache攻击”。大多数类型的现代处理器拥有现成的指令或者与cache相关的控制寄存器,可以执行cache行的flush操作,这也是清理cache行的最高效的方法。由于cache的flush操作在系统中非常有用甚至不可或缺,因此直接关闭flush操作是不可行的。例如,DMA数据传输通常需要一个flush操作来确保cache数据中的一致性。另一个例子是没有硬件cache一致性机制的对称多处理器(SMP)体系结构是很可能存在的。在这种情况下,一个快速的cache行flush操作是非常有用的。因此,怎样保证快速flush操作可用的同时避免其引起的安全漏洞,已经成为一个工业界和学术界亟待解决的问题。当前学术界和工业界已经提出了许多检测和防御基于flush操作的cache攻击的方法。这些方法主要分为两个大类,静态代码分析/修复方法以及运行时防御方法。静态代码分析/修复对探测基于flush操作的cache攻击非常有效。但是,混淆和打包技术可以使恶意代码有效躲避静态代码分析技术的探测。而且,使用静态代码修复技术会大大增加系统的性能损失。另一大防御类型使运行时防御策略。大部分已提出的运行时防御方案是利用硬件性能计数器来实时的持续的监控恶意程序。但是,这种实时监控策略经常会带来很高的漏报率。另外,这种防御方案由于需要收集一定时间的记录数据,经常无法足够快速的探测恶意进程,因此无法及时杀死它们。还有一点,Flush+Flush攻击由于其自身的特点,无法被利用性能计数器的防御方案探测到。还有另一种运行时防御策略——永久降低时间接口的分辨率。很多浏览器厂商以及W3C组织已经在这方面做了改进工作。在Oren等人成功的在浏览器上实施了cache攻击(见Y.Oren,V.P.Kemerlis,S.Sethumadhavan,A.D.Keromytis.TheSpyintheSandbox:PracticalCacheAttacksinJavaScriptandtheirImplications.InProceedingsofthe22ndACMSIGSACConferenceonComputerandCommunicationsSecurity,2015)之后,浏览器厂商和W3C把performance.now的分辨率从纳秒级修改为5μs以上。但是,由于高分辨率时间在操作系统的本地应用中非常有用,大部分操作系统厂商没有在用户空间禁用高分辨率时间接口。在Intelx86处理器上,rdtsc指令可以在用户空间直接得到高分辨率时间戳,而运行在ARM-FPGA嵌入式SoC上的系统通常会提供高分辨率APIs,例如perf_event_open系统调用以及POSIX函数clock_gettime()。即便高分辨率时间接口在用户空间被禁止,拥有root权限以及计时器物理地址的攻击者仍然可以访问高分辨率计时器。
技术实现思路
本专利技术的目的在于,利用软硬协同技术,在ARM-FPGA嵌入式SoC上设计一个更安全的高分辨率计时器。软硬协同计时器可以根据系统中是否出现flush操作,自适应的调整自己的分辨率。软硬协同计时器不仅可以抵御拥有该计时器访问权限的攻击者发起的基于flush操作的cache攻击,而且保证了系统在flush操作没有出现时,高分辨率时间的可用性。本专利技术的软硬协同计时器按阶段分为两个阶段,分别为初始化阶段和运行时阶段。按功能模块分,本专利技术软硬协同计时器又可分为三个模块,分别为初始化软件模块、运行时软件模块和硬件模块。图1展示了软硬协同计时器的整体工作原理图。硬件模块的主要部件是两个计时器,分别为安全低分辨率计时器和高分辨率计时器。根据软硬协同计时器所处阶段的不同,以及系统运行时是否调用了flush操作,硬件模块自适应的使这两个计时器在系统中可访问或不可访问。当进程中出现了flush操作时,安全低分辨率计时器可通过硬件模块首地址访问,而高分辨率计时器不可访问,我们称这种状态为安全低分辨率状态。相对应的,当进程中没有出现flush操作时,高分辨率计时器可通过硬件模块首地址进行访问,而安全低分辨率计时器不可访问,我们称这种状态为高分辨率状态。本专利技术软硬协同计时器的硬件模本文档来自技高网
...

【技术保护点】
1.一种可抵抗基于flush操作的cache攻击的软硬协同计时器实现方法,其特征在于,包括初始化阶段和运行时阶段,其中:/n在初始化阶段,初始化软件模块与硬件模块之间相互协同,以测试安全范围内最高的时间分辨率,并将硬件模块中的安全低分辨率计时器调整到该时间分辨率;/n在运行时阶段,运行时软件模块和硬件模块根据系统进程是否调用了flush操作来自适应的转换时间分辨率。/n

【技术特征摘要】
1.一种可抵抗基于flush操作的cache攻击的软硬协同计时器实现方法,其特征在于,包括初始化阶段和运行时阶段,其中:
在初始化阶段,初始化软件模块与硬件模块之间相互协同,以测试安全范围内最高的时间分辨率,并将硬件模块中的安全低分辨率计时器调整到该时间分辨率;
在运行时阶段,运行时软件模块和硬件模块根据系统进程是否调用了flush操作来自适应的转换时间分辨率。


2.根据权利要求1所述的方法,其特征在于,所述初始化阶段的步骤包括:
循环发起选定的基于flush操作的cache攻击,根据每次循环的攻击结果,不断调节硬件模块的安全分辨率;
当循环攻击成功时,初始化软件模块和硬件模块之间协同工作,使硬件模块结束初始化阶段,开始进入运行时阶段。


3.根据权利要求2所述的方法,其特征在于,所述步骤1中选定的基于flush操作的cache攻击按照以下步骤运行:
分别对在cache内和不在cache内的数据进行多次访问并记录时间,然后分别计算出两种数据的平均访问时间;
计算两种平均访问时间的差值,当差值小于1个比特时,判定为攻击失败,当差值大于等于1时,判定为攻击成功。


4.根据权利要求2所述的方法,其特征在于,所述步骤1中根据每次循环结果调节硬件模块的安全分辨率,其操作分别为:
攻击失败时:初始化软件模块向硬件模块发送升高分辨率信号,使硬件模块的安全低分辨率增大1个比特,然后重新开始攻击;
攻击成功时:初始化软件模块向硬件模块发送降低分辨率信号,使硬件模块的安全分辨率降低1个比特。


5.根据权利要求2所述的方法,其特征在于,所述的攻击成功时,初始化软件模块和硬件模块之间协同工作,按照以下步骤运行:
第一步,初始化软件模块向硬件模块发送降低分辨率信号,使硬件模块的安全分辨率减低1个比特;
第二步,初始化软件模块向硬件模块发送初始化完成信号;
第三步,硬件模块接收初始化完成信号,对信号进行认证;
第四步,认证通过后,硬件模块接收初始化完成命令,...

【专利技术属性】
技术研发人员:屠晨阳高能葛景全彭佳李敏
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

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

1
相关领域技术
  • 暂无相关专利