[发明专利]一种可抵抗基于flush操作的Spectre攻击的方法及系统在审
申请号: | 202010633770.5 | 申请日: | 2020-07-02 |
公开(公告)号: | CN111898127A | 公开(公告)日: | 2020-11-06 |
发明(设计)人: | 屠晨阳;何敏;单亦伟;李敏 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F11/30 |
代理公司: | 北京君尚知识产权代理有限公司 11200 | 代理人: | 李文涛 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 抵抗 基于 flush 操作 spectre 攻击 方法 系统 | ||
1.一种可抵抗基于flush操作的Spectre攻击的方法,其特征在于,包括以下步骤:
执行进程的flush操作,记录当前进程信息;
计算当前进程相邻两次flush操作的时间间隔,判断该时间间隔是否在恶意flush时间范围内,若在,则判定为恶意flush操作;
若恶意flush操作次数大于一阈值时,则判定为恶意进程;
关闭分支预测功能,休眠该恶意进程,阻止CPU推测执行,以抵抗基于flush操作的Spectre攻击。
2.如权利要求1所述的方法,其特征在于,当前进程信息包括进程ID、flush操作时间。
3.如权利要求1所述的方法,其特征在于,利用全局计时器查询和存储flush操作时间。
4.如权利要求1所述的方法,其特征在于,预先清除指定地址所在的缓存行,再执行进程flush操作。
5.如权利要求1所述的方法,其特征在于,在关闭分支预测功能和休眠该恶意进程后,将先前记录的恶意flush操作次数和时间数据清零,再由CPU跳入中断服务程序,唤醒恶意进程并重新开启分支预测。
6.如权利要求1所述的方法,其特征在于,对于ARM-FPGA嵌入式SoC,所述阈值小于等于16。
7.一种可抵抗基于flush操作的Spectre攻击的系统,其特征在于,包括用户层、内核层和硬件层,其中,
用户层用于执行进程的flush操作,调用Flush-Detector接口,记录当前进程信息;
硬件层包括缓存块、定时器和分支预测寄存器,定时器用于定期产生中断信号以中断当前进程并使之进入休眠,分支预测寄存器用于分支预测;
内核层含有flush操作检测器Flush-Detector,Flush-Detector包括检测模块和防御模块;检测模块用于计算当前进程相邻两次flush操作的时间间隔,判断该时间间隔是否在恶意flush时间范围内,若在,则判定为恶意flush操作,若恶意flush操作次数大于一阈值时,则判定为恶意进程;防御模块用于针对恶意进程控制定时器来关闭分支预测寄存器的分支预测功能,休眠该恶意进程,阻止CPU推测执行,以抵抗基于flush操作的Spectre攻击。
8.如权利要求7所述的系统,其特征在于,检测模块还用于预先清除指定地址所在的缓存行来执行进程的flush操作。
9.如权利要求8所述的系统,其特征在于,对于ARM-FPGA嵌入式SoC,清除缓存行是指把对应的L1和L2 cache行的数据清除,步骤包括:
设置程序状态寄存器的比特位,关闭中断模式IRQ和快速中断模式FIQ中断;
通过设置cache尺寸选择寄存器,选择L1 cache,清理对应的L1 cache行的数据;
把虚拟地址转换为物理地址;
选择L2 cache,通过PA清除L2 cache行的数据;
使能cache的写回模式,并且打开缓存行填充功能;
设置程序状态寄存器的比特位,打开IRQ和FIQ终端。
10.如权利要求7所述的系统,其特征在于,定时器为具有自动递增功能的递增计数器,用于监测flush操作的次数,当达到一设定阈值时,触发中断信号。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010633770.5/1.html,转载请声明来源钻瓜专利网。