TWI680371B - 用於偵測在第一階指令快取中之惡意碼之積體電路、方法及電腦程式產品 - Google Patents
用於偵測在第一階指令快取中之惡意碼之積體電路、方法及電腦程式產品 Download PDFInfo
- Publication number
- TWI680371B TWI680371B TW104128496A TW104128496A TWI680371B TW I680371 B TWI680371 B TW I680371B TW 104128496 A TW104128496 A TW 104128496A TW 104128496 A TW104128496 A TW 104128496A TW I680371 B TWI680371 B TW I680371B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- detection routine
- storage capacity
- level
- instructions
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
本發明提供一種積體電路,其可包含:一處理器;一第一階指令快取,其具有一第一儲存容量;及一第二階快取,其具有大於該第一儲存容量之一第二儲存容量。該第一階指令快取經組態以儲存該第二階快取中所儲存之指令的一子集。該第二階快取經組態以儲存一外部記憶體中所儲存之資料及指令的一子集。該處理器執行一偵測常式之一內部迴圈,且監測該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼。偵測常式指令之一總數大於該第一儲存容量。該內部迴圈需要自該第二階快取提取偵測常式指令,且在該內部迴圈之執行期間執行的指令之一執行數目小於該第一儲存容量。
Description
本申請案主張2014年9月22日向美國專利局申請的美國非臨時申請案第14/493,306號之優先權及權利,該申請案之全部內容以引用的方式併入本文中。
本發明大體上係關於偵測與不快取攻擊相關聯之惡意碼。
許多計算環境包括直接自RAM提取一或多個指令之指令。此等指令不儲存於第二階(L2)快取中,而替代地直接被複製至較小且較快的一階(L1)指令快取中。通常,繞過L2快取為善意操作。然而,在不存取L2快取的情況下執行程式碼之能力可允許敵人用不使用L2快取之惡意/損毀碼替換使用L2快取之無害碼而此替換不被發現。舉例而言,若整個惡意碼適配於L1快取中,則惡意碼可隱藏其存在而不被掃描/偵測軟體發現。
因此,需要偵測隱藏於第一階指令快取中之惡意碼的能力。
本發明之一態樣可駐留於一種積體電路中,其包含:一處理器;一第一階指令快取,其具有一第一儲存容量;及一第二階快取,其具
有大於該第一儲存容量之一第二儲存容量。該第一階指令快取耦接於該處理器與該第二階快取之間,且經組態以儲存該第二階快取中所儲存之指令的一子集。該第二階快取耦接於該第一階指令快取與一外部記憶體之間,且經組態以儲存該外部記憶體中所儲存之資料及指令的一子集。該處理器經組態以執行一偵測常式之一內部迴圈,且監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼。偵測常式指令之總數大於該第一儲存容量。在執行期間,該內部迴圈需要自該第二階快取提取偵測常式指令,且在該內部迴圈之執行期間執行的指令之執行數目小於該第一儲存容量。
在本發明之更詳細態樣中,該執行數目可顯著小於該第一儲存容量。該等偵測常式指令可包含一系列類似函式,且該系列類似函式中之至少兩個函式可為不同的。在執行期間,該偵測常式之該內部迴圈可包括基於在該偵測常式之該執行之前未知的至少一個選擇輸入對至少一個偵測常式指令之選擇。
本發明之另一態樣可駐留於一種方法中,其包含:藉由一處理器執行一偵測常式之一內部迴圈,其中偵測常式指令之總數大於一第一階指令快取之一第一儲存容量;及在該內部迴圈正執行時自具有一第二儲存容量之一第二階快取提取偵測常式指令,該第二階快取用於儲存一外部記憶體中所儲存之資料及指令的一子集,其中在該內部迴圈之執行期間執行的指令之執行數目小於該第一儲存容量;且藉由該處理器監視該內部迴圈之執行時間以偵測該第一階指令快取中之惡意碼。
本發明之另一態樣可駐留於一種積體電路中,其包含:用於執行一偵測常式之一內部迴圈的構件,其中偵測常式指令之總數大於一第一階指令快取之一第一儲存容量;用於在該內部迴圈正執行時自具有一第二儲存容量之一第二階快取提取偵測常式指令的構件,該第二階
快取用於儲存一外部記憶體中所儲存之資料及指令的一子集,其中在該內部迴圈之執行期間執行的指令之執行數目小於該第一儲存容量;及用於監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼的構件。
本發明之另一態樣可駐留於一種電腦程式產品中,其包含:電腦可讀媒體,其包含:用於使一電腦執行一偵測常式之一內部迴圈的程式碼,其中偵測常式指令之總數大於一第一階指令快取之一第一儲存容量,其中在執行期間該內部迴圈需要自具有一第二儲存容量之一第二階快取提取偵測常式指令,該第二階快取用於儲存一外部記憶體中所儲存之資料及指令的一子集,且其中在該內部迴圈之執行期間執行的指令之執行數目小於該第一儲存容量;及用於使該電腦監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼的程式碼。
100‧‧‧無線通信系統
102‧‧‧無線遠端台(RS)
104‧‧‧基地台
106‧‧‧基地台控制器(BSC)
108‧‧‧核心網路
110‧‧‧網際網路
112‧‧‧公眾交換電話網路(PSTN)
210‧‧‧積體電路
220‧‧‧處理器/構件
230‧‧‧第一階指令快取
240‧‧‧第二階快取
250‧‧‧外部記憶體/電腦可讀媒體
260‧‧‧L1資料快取
300‧‧‧偵測常式
310‧‧‧內部迴圈
350‧‧‧6位元組
360‧‧‧6位元組
370‧‧‧跳轉
400‧‧‧用於偵測第一階指令快取中之惡意碼的方法
500‧‧‧電腦
510‧‧‧處理器/構件
520‧‧‧儲存媒體/電腦可讀媒體
530‧‧‧顯示器
540‧‧‧輸入裝置
550‧‧‧無線連接
圖1為無線通信系統之實例的方塊圖。
圖2為根據本發明之態樣的用於實施用於偵測第一階指令快取中之惡意碼之技術的積體電路之方塊圖。
圖3為根據本發明之態樣的偵測常式之流程圖。
圖4為根據本發明之態樣的用於偵測第一階指令快取中之惡意碼的方法之流程圖。
圖5為包括處理器及記憶體之電腦的方塊圖。
詞語「例示性」在本文中用以意謂「充當實例、例子或說明」。本文中描述為「例示性」的任何實施例不必解釋為比其他實施例更佳或更有利。
參看圖2及圖3,本發明之一態樣可駐留於積體電路210中,其包含:處理器220、具有第一儲存容量之第一階指令快取230及具有大於
第一儲存容量之第二儲存容量的第二階快取240。第一階指令快取耦接於處理器與第二階快取之間,且經組態以儲存第二階快取中所儲存之指令的子集。第二階快取耦接於第一階指令快取與外部記憶體250之間,且經組態以儲存外部記憶體中所儲存之資料及指令的子集。處理器經組態以執行偵測常式300之內部迴圈310,且監視內部迴圈之執行時間以偵測第一階指令快取中之惡意碼。偵測常式指令之總數大於第一儲存容量。在執行期間,內部迴圈需要自第二階快取提取偵測常式指令,且在內部迴圈之執行期間執行的指令之執行數目小於第一儲存容量。
在本發明之更詳細態樣中,執行數目可顯著小於第一儲存容量。偵測常式指令可包含一系列類似函式,且該系列類似函式中之至少兩個函式可為不同的。在執行期間,偵測常式300之內部迴圈310可包括基於在偵測常式之執行之前未知的至少一個選擇輸入對至少一個偵測常式指令之選擇。第一階指令快取可包含4千位元組,且執行數目可包含16。
進一步參看圖1及圖5,遠端台102可包含:包括處理器510(例如,積體電路210中之處理器220)、儲存媒體520(諸如,記憶體250及/或磁碟機)的電腦500、顯示器530及諸如小鍵盤之輸入裝置540以及無線連接550(諸如,Wi-Fi連接及/或蜂巢式連接)。
進一步參看圖4,本發明之另一態樣可駐留於方法400中,其包含:藉由處理器220執行偵測常式300之內部迴圈310(步驟410)。偵測常式指令之總數大於第一階指令快取230之第一儲存容量。在內部迴圈正執行時,自具有第二儲存容量之第二階快取240提取偵測常式指令,該第二階快取用於儲存外部記憶體250中所儲存之資料及指令的子集。在內部迴圈之執行期間執行的指令之執行數目小於第一儲存容量。該方法進一步包括藉由處理器監視內部迴圈之執行時間以偵測第
一階指令快取中之惡意碼(步驟420)。
本發明之另一態樣可駐留於積體電路210中,其包含:用於執行偵測常式300之內部迴圈310的構件(例如,220、510),其中偵測常式指令之總數大於第一階指令快取230之第一儲存容量;用於在內部迴圈正執行時自具有第二儲存容量之第二階快取240提取偵測常式指令的構件(例如,220、510),該第二階快取用於儲存外部記憶體250中所儲存之資料及指令的子集,且其中在內部迴圈之執行期間執行的指令之執行數目小於第一儲存容量;及用於監視內部迴圈之執行時間以偵測第一階指令快取中之惡意碼的構件(例如,220、510)。
本發明之另一態樣可駐留於電腦程式產品中,其包含:電腦可讀媒體(例如,250、520),其包含:用於使電腦執行偵測常式300之內部迴圈310的程式碼,其中偵測常式指令之總數大於第一階指令快取230之第一儲存容量,其中在執行期間內部迴圈需要自具有第二儲存容量之第二階快取240提取偵測常式指令,該第二階快取用於儲存外部記憶體250中所儲存之資料及指令的子集,且其中在內部迴圈之執行期間執行的指令之執行數目小於第一儲存容量;及用於使電腦監視內部迴圈之執行時間以偵測第一階指令快取中之惡意碼的程式碼。
本發明之一態樣涉及使用善意/誠信碼,亦即,偵測常式300,其防止惡意不快取碼適配於L1快取230中且快速執行(例如,1.6毫秒)。出於可用性及安全性兩個目的,快速執行對於基於軟體之認證(SBA)係合乎需要的。善意碼具有以下特徵:1)善意碼之內部迴圈310為大型的,意謂其並不適配於L1快取中,且因此,執行內部迴圈需要自L2快取240或RAM/次要儲存器提取程式碼;及2)經執行以用於內部迴圈之一個反覆的指令之數目實質上小於適配於L1快取中的指令之數目。
此係藉由使用具有善意碼的廣泛分支而獲得,其中分支之一些部
分引起L1快取未命中,此係因為可叉出分支至內部迴圈310內之所有程式碼無法適配於L1快取230中。只要不同分支含有充分不同的程式碼(諸如,不同運算或位移)而不引起與解壓縮相關之延遲,善意碼便無法以適配於L1快取中之方式壓縮或表示。因此,嘗試執行相同計算任務之惡意碼將歸因於解壓縮而耗費顯著較長時間來執行或歸因於快取未命中而耗費較長時間來執行。此係因為善意碼可儲存於L1快取及L2快取兩者中,其中當存在L1快取未命中時,事物自L2載入至L1;然而,惡意碼希望避免使用L2,且任何L1快取未命中將因此導致解壓縮(其耗費長時間)或自DRAM或其他慢速儲存器提取資料(其亦耗費長時間。)此結構與其他管線/提取失敗結構之組合保證不快取攻擊無法在不被偵測到的情況下進行。
善意碼之實例可包括一系列類似(或等效)但不同的函式(互斥或(XOR)、位元旋轉、加成及交換等),該等函式可需要6千位元組,而L1指令快取之容量可為4千位元組,亦即,善意碼可為L1指令快取之大小的大約150%。善意碼可僅執行(例如)16個步驟,但在每一步驟,其基於條件1、2…N(其為未知的直至執行期間)而不可預測地選擇新函式(例如,F1、F2…FN)。因此,在每一步驟,存在快取未命中之改變,其無法由惡意不快取碼預測/避免。對於善意碼,快取未命中將引起較小延遲,此係因為用於新函式之程式碼係自L2快取存取(或分頁)。然而,在惡意不快取碼存在情況下的快取未命中將引起對外部記憶體250(例如,RAM或次要儲存器(諸如,磁碟機或其類似者))之存取,其耗費更長時間來存取。因此,歸因於更長執行時間的延遲允許偵測惡意碼之存在。
每一函式可包含運算及運算元,諸如XOR 3076或AND Z。一階快取亦可包括L1資料快取260。
偵測常式300之善意碼亦可包括共同指令以載入具有在執行階段
已知之內容的暫存器(步驟320)。視情況,暫存器內容可包括處理暫存器內容之步驟(步驟330)。共同程式碼可包括跳轉指令,該跳轉指令叉出分支至基於暫存器內容或狀態之位置或程式碼路徑(步驟340)。每一程式碼路徑可包含另外6個位元組之序列(350、360…),包括至共同部分之開始的跳轉370。共同部分可包括至退出迴圈310之分支的繼續步驟(步驟380)或在完成後返回(步驟390)。因此,在此實例中,可存在1000個分支路徑,每一者為6位元組長,從而產生用於偵測常式之大約6千位元組。共同程式碼可包含大約10位元組。
所揭示之技術抵制繞過L2快取之攻擊,且直接應用於作用中惡意程式碼之偵測(包括作用中行動惡意程式碼)。作為一實例,駐留於記憶體250及L1指令快取230中但不駐留於L2快取240中之惡意碼可計算關於駐留在L2快取中之無害或誠信碼的總和檢查碼,且返回彼總和檢查碼以避免偵測。藉由迫使惡意碼駐留於L2快取中(自總和檢查碼偵測)或引起顯著延遲之記憶體(若其實行)中(自執行時間偵測),則惡意碼無法隱藏。
前述描述亦適用於具有兩個以上階層之快取階層架構,或更一般而言,適用於具有三個以上階層之記憶體階層架構,且其中善意碼經組態以使用可用階層之子集,且目標為偵測惡意碼是否使用可用階層之另一集合。
參看圖1,無線遠端台(RS)102可與無線通信系統100之一或多個基地台(BS)104通信。RS可為行動台。無線通信系統100可進一步包括一或多個基地台控制器(BSC)106,及核心網路108。核心網路可經由合適回程連接至網際網路110及公眾交換電話網路(PSTN)112。典型無線行動台可包括手持型電話或膝上型電腦。無線通信系統100可使用多種多重存取技術中之任一者,諸如分碼多重存取(CDMA)、分時多重存取(TDMA)、分頻多重存取(FDMA)、分域多重存取
(SDMA)、分極多重存取(polarization division multiple access,PDMA)或此項技術中已知之其他調變技術。
熟習此項技術者將理解,可使用多種不同技藝及技術中之任一者表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合表示貫穿以上描述所參考的資料、指令、命令、資訊、信號、位元、符號及碼片。
熟習此項技術者將進一步瞭解,結合本文中所揭示之實施例而描述之各種說明性邏輯區塊、模組、電路及演算法步驟可經實施為電子硬體、電腦軟體或兩者之組合。為了清楚地說明硬體與軟體之此可互換性,上文已大體上在功能性方面描述了各種說明性組件、區塊、模組、電路及步驟。將此功能性實施為硬體抑或軟體取決於特定應用及強加於整個系統上之設計約束。熟習此項技術者可針對每一特定應用以變化之方式實施所描述功能性,但此等實施決策不應被解譯為造成對本發明之範疇的脫離。
可藉由一般用途處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯器件、離散閘或電晶體邏輯、離散硬體組件或其經設計以執行本文中所描述之功能之任何組合來實施或執行結合本文所揭示之實施例而描述的各種說明性邏輯區塊、模組及電路。一般用途處理器可為微處理器,但在替代例中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可實施為計算器件之組合,例如,DSP與微處理器之組合、複數個微處理器、結合DSP核心之一或多個微處理器,或任一其他此組態。
結合本文中所揭示之實施例而描述之方法或演算法的步驟可直接體現於硬體中、由處理器執行之軟體模組中,或兩者之組合中。軟體模組可駐留於RAM記憶體、快閃記憶體、ROM記憶體、EPROM記憶
體、EEPROM記憶體、暫存器、硬碟、抽取式磁碟、CD-ROM,或此項技術中已知之任何其他形式之儲存媒體中。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊及將資訊寫入至儲存媒體。在替代例中,儲存媒體可整合至處理器。處理器及儲存媒體可駐留於ASIC中。ASIC可駐留於使用者終端機中。在替代例中,處理器及儲存媒體可作為離散組件駐留於使用者終端機中。
在一或多個例示性實施例中,可以硬體、軟體、韌體或其任何組合來實施所描述之功能。若作為電腦程式產品而以軟體來實施,則該等功能可作為一或多個指令或程式碼而儲存於電腦可讀媒體上或經由電腦可讀媒體傳輸。電腦可讀媒體包括非暫時性電腦儲存媒體以及包括促進將電腦程式自一處傳送至另一處之任何媒體的通信媒體兩者。儲存媒體可為可由電腦存取之任何可用媒體。藉由實例且並非限制,此等電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存器件,或可用以攜載或儲存呈指令或資料結構之形式之所要程式碼且可由電腦存取的任何其他媒體。又,將任何連接適當地稱為電腦可讀媒體。舉例而言,若使用同軸纜線、光纖纜線、雙絞線、數位用戶線(DSL)或諸如紅外線、無線電及微波之無線技術而自網站、伺服器或其他遠端源傳輸軟體,則同軸纜線、光纖纜線、雙絞線、DSL或諸如紅外線、無線電及微波之無線技術包括於媒體之定義中。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位影音光碟(DVD)、軟碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟藉由雷射以光學方式再生資料。以上各物之組合亦應包括於電腦可讀媒體之範疇內。
提供所揭示之實施例的先前描述以使任何熟習此項技術者能夠製作或使用本發明。熟習此項技術者將容易地顯而易見對此等實施例之各種修改,且可在不脫離本發明之精神或範疇的情況下將本文中所界
定的一般原理應用於其他實施例。因此,本發明並不意欲限於本文中所展示之實施例,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
Claims (18)
- 一種用於偵測惡意碼之積體電路,其包含:一處理器;一第一階指令快取,其具有一第一儲存容量;及一第二階快取,其具有大於該第一儲存容量之一第二儲存容量;該第一階指令快取耦接於該處理器與該第二階快取之間,該第一階指令快取經組態以儲存該第二階快取中所儲存之指令的一子集,該第二階快取耦接於該第一階指令快取與一外部記憶體之間,該第二階快取經組態以儲存該外部記憶體中所儲存之資料及指令的一子集,且該處理器經組態以執行一偵測常式之一內部迴圈,且監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼,其中偵測常式指令之一總數大於該第一儲存容量,其中在執行期間該內部迴圈需要自該第二階快取提取偵測常式指令,且其中在該內部迴圈之執行期間執行的指令之一執行數目小於該第一儲存容量。
- 如請求項1之積體電路,其中該執行數目小於該第一儲存容量。
- 如請求項1之積體電路,其中該等偵測常式指令包含一系列類似函式,且其中該系列類似函式中之至少兩個函式為不同的。
- 如請求項1之積體電路,其中在執行期間,該偵測常式之該內部迴圈包括基於在該偵測常式之該執行之前未知的至少一個選擇輸入對至少一個偵測常式指令之一選擇。
- 一種用於偵測惡意碼之方法,其包含:藉由一處理器執行一偵測常式之一內部迴圈,其中偵測常式指令之一總數大於一第一階指令快取之一第一儲存容量;及在該內部迴圈正執行時自具有一第二儲存容量之一第二階快取提取偵測常式指令,該第二階快取用於儲存一外部記憶體中所儲存之資料及指令的一子集,其中在該內部迴圈之執行期間執行的指令之一執行數目小於該第一儲存容量;及藉由該處理器監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼。
- 如請求項5之方法,其中該執行數目小於該第一儲存容量。
- 如請求項5之方法,其中該等偵測常式指令包含一系列類似函式,且其中該系列類似函式之至少兩個函式為不同的。
- 如請求項5之方法,其中該偵測常式之該內部迴圈在經執行時包括基於在該偵測常式之該執行之前未知的至少一個選擇輸入對至少一個偵測常式指令之一選擇。
- 如請求項5之方法,其中該第二儲存容量大於該第一儲存容量且該第一階指令快取儲存該第二階快取中所儲存之指令的一子集,其中該第一階指令快取耦接於該處理器與該第二階快取之間,且第二階快取耦接於該第一階指令快取與該外部記憶體之間。
- 一種用於偵測惡意碼之積體電路,其包含:用於執行一偵測常式之一內部迴圈的構件,其中偵測常式指令之一總數大於一第一階指令快取之一第一儲存容量;用於在該內部迴圈正執行時自具有一第二儲存容量之一第二階快取提取偵測常式指令的構件,該第二階快取用於儲存一外部記憶體中所儲存之資料及指令的一子集,其中在該內部迴圈之執行期間執行的指令之一執行數目小於該第一儲存容量;及用於監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼的構件。
- 如請求項10之積體電路,其中該執行數目小於該第一儲存容量。
- 如請求項10之積體電路,其中該等偵測常式指令包含一系列類似函式,且其中該系列類似函式中之至少兩個函式為不同的。
- 如請求項10之積體電路,其中在執行期間該偵測常式之該內部迴圈包括基於在該偵測常式之該執行之前未知的至少一個選擇輸入對至少一個偵測常式指令之一選擇。
- 如請求項10之積體電路,其中該第二儲存容量大於該第一儲存容量,且該第一階指令快取儲存該第二階快取中所儲存之指令的一子集。
- 一種電腦程式產品,其包含:電腦可讀媒體,其包含:用於使一電腦執行一偵測常式之一內部迴圈的程式碼,其中偵測常式指令之一總數大於一第一階指令快取之一第一儲存容量,其中在執行期間該內部迴圈需要自具有一第二儲存容量之一第二階快取提取偵測常式指令,該第二階快取用於儲存一外部記憶體中所儲存之資料及指令的一子集,且其中在該內部迴圈之執行期間執行的指令之一執行數目小於該第一儲存容量;及用於使該電腦監視該內部迴圈之一執行時間以偵測該第一階指令快取中之惡意碼的程式碼。
- 如請求項15之電腦程式產品,其中該執行數目顯著小於該第一儲存容量。
- 如請求項15之電腦程式產品,其中該偵測常式之該內部迴圈在經執行時包括基於在該偵測常式之該執行之前未知的至少一個選擇輸入對至少一個偵測常式指令之一選擇。
- 如請求項15之電腦程式產品,其中該第二儲存容量大於該第一儲存容量,且該第一階指令快取儲存該第二階快取中所儲存之指令的一子集,其中該第一階指令快取耦接於一處理器與該第二階快取之間,且第二階快取耦接於該第一階指令快取與該外部記憶體之間。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/493,306 US9465938B2 (en) | 2014-09-22 | 2014-09-22 | Integrated circuit and method for detection of malicious code in a first level instruction cache |
| US14/493,306 | 2014-09-22 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201626235A TW201626235A (zh) | 2016-07-16 |
| TWI680371B true TWI680371B (zh) | 2019-12-21 |
Family
ID=54012356
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW104128496A TWI680371B (zh) | 2014-09-22 | 2015-08-28 | 用於偵測在第一階指令快取中之惡意碼之積體電路、方法及電腦程式產品 |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US9465938B2 (zh) |
| EP (1) | EP3198451A1 (zh) |
| JP (1) | JP6199528B1 (zh) |
| KR (1) | KR101729215B1 (zh) |
| CN (1) | CN107077424B (zh) |
| AU (1) | AU2015321998A1 (zh) |
| BR (1) | BR112017005791A2 (zh) |
| TW (1) | TWI680371B (zh) |
| WO (1) | WO2016048548A1 (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9607152B1 (en) * | 2015-05-20 | 2017-03-28 | Symantec Corporation | Detect encrypted program based on CPU statistics |
| US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
| US11263307B2 (en) * | 2018-01-08 | 2022-03-01 | Digital Immunity Llc | Systems and methods for detecting and mitigating code injection attacks |
| CN112673376B (zh) * | 2018-09-25 | 2024-07-23 | 美商新思科技有限公司 | 用于标识状态保持回路和振荡回路的硬件仿真系统和方法 |
| WO2024206318A1 (en) * | 2023-03-28 | 2024-10-03 | Qualcomm Incorporated | System and method for providing a processor boot for safety protected memories |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1870814A1 (en) * | 2006-06-19 | 2007-12-26 | Texas Instruments France | Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices |
| US20140115283A1 (en) * | 2012-10-23 | 2014-04-24 | Oracle International Corporation | Block memory engine with memory corruption detection |
| US20140282819A1 (en) * | 2013-03-14 | 2014-09-18 | Manoj R. Sastry | Method, apparatus, system for qualifying cpu transactions with security attributes |
| US20140281354A1 (en) * | 2013-03-15 | 2014-09-18 | Thomas E. Tkacik | Continuous run-time integrity checking for virtual memory |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7130981B1 (en) * | 2004-04-06 | 2006-10-31 | Symantec Corporation | Signature driven cache extension for stream based scanning |
| US7590813B1 (en) * | 2004-08-09 | 2009-09-15 | Symantec Corporation | Cache scanning system and method |
| US8949989B2 (en) | 2009-08-17 | 2015-02-03 | Qualcomm Incorporated | Auditing a device |
| US20110197256A1 (en) | 2009-12-18 | 2011-08-11 | Assured Information Security, Inc. | Methods for securing a processing system and devices thereof |
| WO2011156021A2 (en) | 2010-03-01 | 2011-12-15 | The Trustees Of Columbia University In The City Of New York | Systems and methods for detecting design-level attacks against a digital circuit |
| US8595510B2 (en) | 2011-06-22 | 2013-11-26 | Media Patents, S.L. | Methods, apparatus and systems to improve security in computer systems |
| US8839429B2 (en) * | 2011-11-07 | 2014-09-16 | Qualcomm Incorporated | Methods, devices, and systems for detecting return-oriented programming exploits |
-
2014
- 2014-09-22 US US14/493,306 patent/US9465938B2/en active Active
-
2015
- 2015-08-26 BR BR112017005791A patent/BR112017005791A2/pt not_active Application Discontinuation
- 2015-08-26 EP EP15756806.4A patent/EP3198451A1/en not_active Ceased
- 2015-08-26 WO PCT/US2015/046880 patent/WO2016048548A1/en not_active Ceased
- 2015-08-26 KR KR1020177007275A patent/KR101729215B1/ko not_active Expired - Fee Related
- 2015-08-26 CN CN201580049149.1A patent/CN107077424B/zh active Active
- 2015-08-26 AU AU2015321998A patent/AU2015321998A1/en not_active Abandoned
- 2015-08-26 JP JP2017513092A patent/JP6199528B1/ja not_active Expired - Fee Related
- 2015-08-28 TW TW104128496A patent/TWI680371B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP1870814A1 (en) * | 2006-06-19 | 2007-12-26 | Texas Instruments France | Methods, apparatus, and systems for secure demand paging and other paging operations for processor devices |
| US20140115283A1 (en) * | 2012-10-23 | 2014-04-24 | Oracle International Corporation | Block memory engine with memory corruption detection |
| US20140282819A1 (en) * | 2013-03-14 | 2014-09-18 | Manoj R. Sastry | Method, apparatus, system for qualifying cpu transactions with security attributes |
| US20140281354A1 (en) * | 2013-03-15 | 2014-09-18 | Thomas E. Tkacik | Continuous run-time integrity checking for virtual memory |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201626235A (zh) | 2016-07-16 |
| US20160085968A1 (en) | 2016-03-24 |
| EP3198451A1 (en) | 2017-08-02 |
| CN107077424A (zh) | 2017-08-18 |
| WO2016048548A1 (en) | 2016-03-31 |
| CN107077424B (zh) | 2018-09-25 |
| JP2017531253A (ja) | 2017-10-19 |
| KR101729215B1 (ko) | 2017-04-21 |
| AU2015321998A1 (en) | 2017-03-02 |
| KR20170034914A (ko) | 2017-03-29 |
| US9465938B2 (en) | 2016-10-11 |
| JP6199528B1 (ja) | 2017-09-20 |
| BR112017005791A2 (pt) | 2018-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11544070B2 (en) | Efficient mitigation of side-channel based attacks against speculative execution processing architectures | |
| CN112187773B (zh) | 一种网络安全漏洞的挖掘方法和装置 | |
| TWI680371B (zh) | 用於偵測在第一階指令快取中之惡意碼之積體電路、方法及電腦程式產品 | |
| CN103946855B (zh) | 用于检测面向返回编程攻击的方法、装置和系统 | |
| CN104221026B (zh) | 用于移动站中的恶意活动检测的方法 | |
| TWI528216B (zh) | 隨選檢測惡意程式之方法、電子裝置、及使用者介面 | |
| KR20170055933A (ko) | 정적 바이너리 계측을 사용하여 커널 제어-흐름 무결성을 보호하기 위한 방법 및 장치 | |
| US11347839B2 (en) | Techniques for control flow protection | |
| JP2017514260A (ja) | リターン指向プログラミング攻撃の透過的な検出及び抽出 | |
| US10395033B2 (en) | System, apparatus and method for performing on-demand binary analysis for detecting code reuse attacks | |
| WO2017148289A1 (zh) | 一种主动防御方法和装置 | |
| CN107944278A (zh) | 一种内核漏洞检测方法及装置 | |
| US11914724B2 (en) | Systems and methods for adjusting data protection levels based on system metadata | |
| US10025930B2 (en) | Hardware assisted branch transfer self-check mechanism | |
| US10776490B1 (en) | Verifying an operating system during a boot process using a loader | |
| CN112395610B (zh) | 内核层shellcode的检测方法及装置 | |
| KR20140139752A (ko) | 루팅 검출방법 및 검출장치 | |
| US20170177863A1 (en) | Device, System, and Method for Detecting Malicious Software in Unallocated Memory | |
| WO2019050634A1 (en) | METHOD AND APPARATUS FOR DETECTING DYNAMICALLY LOADED MALWARE SOFTWARE USING PREDICTIVE TIME OF EXECUTION TIME ANALYSIS | |
| CN118797641A (zh) | 一种代码检测方法、装置、存储介质、程序产品和设备 | |
| KR20170000286A (ko) | 시스템 정보를 이용한 파일 보안 방법 |