[發明專利]一種可抵抗基于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.szxzyx.cn/pat/books/202010633770.5/1.html,轉載請聲明來源鉆瓜專利網。





