TWI512520B - 偵測對數位電路之攻擊之系統與方法 - Google Patents
偵測對數位電路之攻擊之系統與方法 Download PDFInfo
- Publication number
- TWI512520B TWI512520B TW100106696A TW100106696A TWI512520B TW I512520 B TWI512520 B TW I512520B TW 100106696 A TW100106696 A TW 100106696A TW 100106696 A TW100106696 A TW 100106696A TW I512520 B TWI512520 B TW I512520B
- Authority
- TW
- Taiwan
- Prior art keywords
- unit
- predictor
- event
- target
- actual
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 37
- 239000000872 buffer Substances 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 14
- 230000006870 function Effects 0.000 claims description 13
- 238000013519 translation Methods 0.000 claims description 9
- 238000000605 extraction Methods 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 description 56
- 238000013461 design Methods 0.000 description 47
- 238000003860 storage Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 230000008859 change Effects 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 230000002596 correlated effect Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000012942 design verification Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2101—Auditing as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Debugging And Monitoring (AREA)
- Monitoring And Testing Of Nuclear Reactors (AREA)
- Testing And Monitoring For Control Systems (AREA)
Description
此申請案請求2010年3月1日申請之美國臨時專利申請案第61/309,194號的利益,其全文以引用方式併入本文。
本發明在Air Force Office of Scientific Research(AFOSR)授予之核准號碼第FA 9550-09-1-0389下藉由政府支援來加以完成。政府具有本發明中的某些權利。
本案為偵測對包含各種功能單元的數位電路之設計階層攻擊的系統與方法。
習知的電腦安全機制著重於軟體安全且隱含假設微處理器是值得信賴的。然而,微處理器易受到內部攻擊,其中惡意邏輯被嵌入微處理器硬體中。可在微處理器生產程序的設計或製造階段將此種攻擊嵌入微處理器中。
例如,硬體設計者/攻擊者可藉由改變僅僅幾個用來佈局邏輯元件的碼行來輕易引入「後門」至被製造的微處理器中。攻擊者可修改例如晶片上記憶體系統以傳送其接收的資料項至除了原始位址以外的影子位址。嵌入後門於微處理器中可被用來攻擊機密性(例如藉由輸出敏感資訊)、完整性(例如藉由停用諸如記憶體保護的安全檢查)、及可用性(例如藉由根據計時器或外部信號關閉組件)。
因為硬體組件(包括後門)在架構上位於運算裝置的最低層,非常難以偵測由這些組件所發出或協助的攻擊。的確,難以或不可能在較高層(例如在操作系統或應用程式階層)這樣做,且在目前處理器及主機板中用以偵測此種不當表現可用的功能典型上很少。實務的敘述是為了確定,硬體來自受信賴的來源且被受信賴的人員所維護在考慮到目前的設計及製造現實後事實上是不可能的。事實上,以傳統的設計與驗證程序不能抓到偶然的錯誤(即使在高容量處理器中)會使得藉由使用相同程序抓到隱藏的後門是更不可能,因為這是更具有挑戰的工作。
習知的方法已經著重於偵測惡意代工廠在生產階段的硬體攻擊。此種方法假設有在值得信賴的設計階段期間所生產的「金網表(golden netlist)」存在。然而,此種方法無法偵測高階層設計階段期間所嵌入的攻擊,因為這些攻擊將被含括於金網表中。
其他習知的方法已經嘗試從不值得信賴的組件建立值得信賴的系統。一個此種方法涉及對數個不值得信賴的組件冗餘地實施運算且使用「投票」來偵測不當表現。例如,由不同設計者所設計的數個核心可被用來執行相同指令且最受歡迎的輸出可被接受。然而,此方法可能導致設計團隊大小上的顯著增加且可能增加了驗證該設計的複雜度。此方法也可能導致微處理器性能減低及功率消耗增加。
本文中所描述的實施例解決了當微處理器經由不受信賴的設計流程所製造時如何可以增強該微處理器的信賴度。揭示的實施例著重於最初生產步驟的一者,其為硬體設計的編碼階段(即,暫存器轉移階層,RTL),因為在最初階段期間所引入的後門隨著其滲透過稍後階段中的最適化及工具而逐漸變得較難以偵測。
本文中所描述的實施例提供一種用以動態偵測在運轉時的微處理器中的惡意表現之低系統負擔、晶片上監測的系統。本文中所描述的系統包括用於發射器及控制損毀器防護的解決方案。本文中亦描述的是一種部份複製方法,稱為「智慧複製」,其可有效地對抗某些類型的資料損毀器。亦討論的是一種「正規複製」或「完整複製」方法,其可有效地對抗其他所述方法未涵蓋之類型的攻擊。
典型的微處理器設計包括實施特定功能的數個晶片上單元,例如解碼單元、提取單元、載入/儲存單元(LSU)、指令快取(I快取)、資料快取(D快取)、第2階(L2)快取等等。本文中所描述的方法利用這些各種晶片上單元間的分工,即,分割微處理器操作而成為由這些單元之各者所分開處理的部分。例如,記憶體指令涉及快取單元以及提取、解碼、及暫存器單元。如果這些單元的一者表現出惡意,整個事件鏈被改變。不可能鏈中的所有裝置將同時表現出惡意,因為在大多數的微處理器研發中,有分開的設計團隊負責各個主要單元。因此,不可能
沒有依賴任何特定單元的可信賴度來偵測惡意表現。
因此,本文中所揭示的實施例提供用以偵測對包含各種功能單元的數位電路之設計階層攻擊的系統與方法。該系統包含為了偵測從該等功能單元之中所選出的目標單元以及預測器單元。該預測器單元係組態成根據該預測器單元所接收的事件輸出預測事件訊息。該系統進一步包含反應器單元,從該數位電路之配置成在事件通過該目標單元以後接收該等事件的功能單元之中所選出。該反應器單元係組態成根據該反應器單元所接收的事件輸出實際事件訊息。該系統進一步包括監測器單元,經配置成接收來自該預測器單元之預測事件訊息及來自該反應器單元之實際事件訊息。該監測器單元係組態成根據自該預測器單元所接收之預測事件訊息與自該反應器單元所接收之實際事件訊息的比較來指示警報。在某些實施例中,該數位電路可為微處理器。事件可為該數位電路內的需要監測之任何事件,例如載入、儲存、或提取操作、指令等等。
將預測器單元設置於某些實施例中。此種單元可藉由選出微處理器設計中的功能單元或添加習知功能單元至該微處理器設計來加以設置。在任一情況中,可將功能單元本身的設計修改以設置事件訊息輸出功能。預測器單元也可藉由設計包括事件訊息輸出功能的新功能單元且將其併入至微處理器設計中來加以設置。新設計的預測器單元可具有的功能至少部份複製微處理器設計中的功能單元之功能。
反應器單元在某些實施例中係從微處理器設計的功能單元之中所選出。可將功能單元本身的設計修改以設置事件訊息輸出功能。
因此,在特定實施例中,該預測器單元可從該數位電路之配置成在事件到達該目標單元以前接收該等事件的功能單元之中選出。可將該預測器單元組態成至少部份複製該數位電路的一個功能單元之功能。
本文中所揭示實施例進一步提供一種偵測對數位電路之設計階層攻擊的方法。該方法包括在從該數位電路的功能單元之中所選出的預測器單元接收事件,且根據該預測器單元所接收的事件自該預測器單元輸出預測事件訊息。該方法進一步包括在為了監測從該等功能單元之中所選出的目標單元接收該事件。該方法進一步包括在從該數位電路的功能單元之中所選出的反應器單元接收該事件,且根據該反應器單元所接收的事件自該反應器單元輸出實際事件訊息。該方法進一步包括在監測器單元接收來自該預測器單元之預測事件訊息及來自該反應器單元之實際事件訊息。該方法進一步包括在該監測器單元中根據自該預測器單元所接收之預測事件訊息與自該反應器單元所接收之實際事件訊息的比較來決定是否產生警報指示。
本文中所描述的實施例提供一種監測晶片上單元中的微架構交易以偵測硬體後門攻擊之系統。該系統主要由預
測/反應監測三角所形成,如第1圖中所示,包括預測器單元100、反應器單元110、及目標單元120(即,受監測單元)、及監測器單元130。預測器單元100傳送訊息(140及150)至監測器單元130,預測應自目標單元120出來的事件。如果反應器單元110沒有接收預測事件,或如果反應器單元110接收從未被預測的事件,則監測器單元130輸出警報。
例如,如果微處理器的指令解碼單元(IDU)被選為目標,則可將在事件到達該解碼單元以前看見該等事件的任何單元(例如,指令提取單元(IFU))選為預測器單元。可將在事件通過該目標以後看見該等事件的任何單元(例如,執行單元(EXU))選為反應器單元。監測器可座落於晶片上的任何地方。
預測/反應監測三角以下列方式運作。IFU在各個循環知道是否它已經提取新的指令。EXU在各個循環知道是否有效指令正前進通過管線。這二項資訊可被比較且被用來確證IDU的輸出,藉此防止偽指令插入至管線中。
不需要額外的運算來實施預測/反應監測三角,因為確證該目標之輸出所需的資訊已經由預測及反應單元中的信號所代表。此外,此配置不需要該目標單元與監測器通訊。因此,即使目標單元的設計者知道監測器的設計(這很有可能),該設計者不能夠藉由自該目標單元傳送錯誤的通訊至該監測器而損毀該監測器的操作。
有二個主要類型的硬體後門攻擊:發射器後門及損毀
器後門。
發射器後門在定義上導致了比被執行的指令所指定之交易更多(或更少)微架構交易出現於受損毀單元中。例如,在記憶體單元中的發射器後門可送出載入或儲存操作至影子位址。當此類型的攻擊被觸發實,各記憶體指令在存取快取子單元時送出二或更多個微架構交易至該階層中的下游記憶體單元,而不是只有一個。
損毀器後門涉及改變微架構操作的結果而沒有直接改變微架構交易的數量。「控制損毀器」後門改變了通過該單元之指令的類型或語意,其可能接著改變在另一晶片上單元中的微架構交易之數量(在稍後的循環)。例如,如果解碼單元轉譯無操作(no-op)指令而成為儲存指令,這將間接造成快取單元做比在未受損毀微處理器中更多的工作。「資料損毀器」改變了被使用於微架構交易中的資料。例如,資料損毀器可能改變了被寫入至暫存器檔案的值或可能改變了儲存請求的位址。
本文中所揭示的實施例部分根據威脅模型,其作出某些有關硬體為基礎之攻擊的本質的假設。惡意硬體設計者必須有策略地產生後門,因為處理器研發(尤其是商業性研發)為仔細受到控制的程序。一般而言,攻擊者遵循二個步驟:首先,設置用於攻擊的後門,且其次建立用於該攻擊的觸發器。正如同正規的硬體設計,攻擊者必須處理
有關欺騙的程度、完成時間、驗證複雜度、及可程式性的權衡。
一個可應用至偵測硬體為基礎之攻擊的假設為「分工」。典型地,將微處理器團隊組織成子團隊,且各子團隊負責設計的一部分(例如,提取單元或載入儲存單元)。微處理器設計為高度合作及結構化的活動而具有幾十至幾百個參與者。可假設的是,設計中的任何子單元團隊可為敵方,但不超過一個子單元將同時被破解。
另一假設涉及對硬體設計的存取。揭示的實施例關於偵測惡意微處理器設計者(其可包括晶片設計師、微設計師、RTL工程師及核對員、及電路設計師)的手工(handiwork)。此種工人具有對該設計的已核准存取、改變該設計的特權、及微處理器設計程序與其作用的複雜知識。惡意設計者可能能夠在規格階段(例如,藉由分配「保留位元」給非必要功能)或者藉由改變RTL而設置後門。可假設的是,此種企圖將在實施階段期間及在碼查核(code review)完成以後不被注意到。碼稽核將不能夠抓到所有後門的此假設是(部份)正確的,因為此種稽核典型無法成功地抓到所有不經意、非惡意的設計錯誤。
可假設的是,惡意設計者能夠插入後門:(i)藉由使用儲存器(例如,鎖存器、正反器)的僅僅低的幾十位元;(ii)以非常小量的邏輯閘;及(iii)沒有循環階層重新管線化。此假設所併入的概念是,惡意設計者有非常高的機率可送入硬體後門而不被過去傳統稽核方法注意
到。
也可假設的是,將後門設計成根據觸發器操作。儘管非故意的錯誤可能具有與惡意後門相同的結果,重要的差異在於不像錯誤,後門可能不會一直活動。如果後門一直活動,有很高機會在隨機、單元階層的設計測試期間偵測到。為了避免偵測,惡意設計者可能仔細地控制何時將後門觸發。
為了本文中所描述的實施例之目的,可假設的是,在微處理器設計階段所寫入的唯讀記憶體(ROM)含有正確資料。尤其,可假設的是,微編碼資訊為正確的。此假設的原因在於,ROM中的資料被靜態地決定且不被處理器的狀態所改變。為了此原因,ROM的安全為一個靜態地解決會比在運轉時解決更好的議題,如同本文中所描述的實施例被設計來完成者。
除了以上討論的假設以外,威脅模型也涉及特定類型的攻擊觸發器。一般而言,RTL階層的攻擊者可使用二個觸發攻擊的通用策略:資料為基礎的觸發器或時間為基礎的觸發器。從RTL的觀點,輸入資料及經過時間為決定微處理器之狀態的因子。
將一個類型的資料為基礎之觸發器稱為「作弊碼」(cheat code,CC)。此種觸發器涉及了惡意設計者使用不常見位元的序列,被嵌入於指令或者資料流中以解鎖/鎖住後門。例如,可將對特定位址的「儲存」指令及某一值(即,2128空間中的一個配對,針對64位元微處理器)
用來作為用以解鎖後門的金鑰。由於搜尋空間過大,此觸發器由隨機驗證所命中的機會可忽略。也有此類型觸發器的變型,其中在程式中的指令序列解鎖觸發器。CC方法給予攻擊者對後門的非常高度控制,但可能需要相當先進的狀態機來解鎖該後門。進一步而言,其需要軟體的執行,這因為存取限制而不可能。換句話說,為了確保觸發指令被發出,攻擊者必須執行含有該(等)指令的程式。如果攻擊者無法獲得存取特權,則這將會不可能。
將一個類型的時間為基礎之觸發器稱為「定時炸彈」(ticking time-bomb,TT)。此種觸發器涉及了攻擊者設計電路以在機器已經啟動某循環數量以後開啟後門。TT方法在硬體方面非常容易實施。例如,可將每個處理器時脈循環遞增一次的簡單40位元計數器用來在1GHz之大約18分鐘的可用時間以後打開後門。不像CC方法,TT觸發器不需要任何特別軟體來打開後門。然而如同CC觸發器,TT觸發器可輕易避開在設計驗證期間的偵測,因為隨機測試典型不比幾百萬循環更久。
除了以上所討論之假設及觸發器以外,威脅模型也涉及特定類型的後門。儘管可能攻擊的空間僅受攻擊者的創意及對設計的存取所限制,可根據攻擊的運轉時間特性將該等攻擊廣泛地分類成二個類別。攻擊者可產生硬體後門來做比未破解設計所做更多的(或更少的)「工作」,即,「發射器後門」。替代地,攻擊者可產生硬體後門來做相同量的工作,但與未破解單元所做不同的工作,即,
「損毀器後門」。「工作」為了本討論之目的為必須被執行而用於執行指令的微架構子操作或通訊。
微架構單元中的發射器後門外顯地傳送與未破解單元不同數量的微架構通訊。例如,記憶體單元中的發射器後門可送出載入或儲存至影子位址。當此類型的攻擊被觸發實,各記憶體指令在存取快取子單元時送出二或更多個微架構交易至該階層中的下游記憶體單元。類似的攻擊也可針對「南橋」(即,輸入/輸出控制集線器)組件來加以安排,諸如直接記憶體存取(DMA)及視訊圖形陣列(VGA)控制器以洩露機密資料至未授權位置。
損毀器後門在另一方面改變微架構操作的結果而不直接改變微架構交易的數量。針對本討論之目的有二個類型的損毀器後門:「控制損毀器」及「資料損毀器」。
控制損毀器後門改變在執行期間之指令的類型或語意,此方式改變在晶片上其他處的微架構交易之數量(例如,在稍後的循環)。此類型的攻擊類似於發射器攻擊,除了不是僅僅發出額外的指令以外,該攻擊使用合法指令的一些部份以便改變晶片上所發生之交易的數量。例如,如果解碼單元轉譯無操作指令而成為儲存指令,這將間接造成快取單元做比在未修改微處理器中更多的工作。然而,此改變將不會顯現直到稍後的循環。這與發射器攻擊不同,因為解碼單元不直接插入任何新的交易。反而,在修改或未修改的情況中其解碼恰好相同數量的指令,但其在修改的情況中輸出的值造成快取單元在幾個循環後做較
多工作。
資料損毀器後門僅改變了被使用於微架構交易中的資料,而不改變在指令的壽命期間發生於晶片上的事件數量。此實例包括了改變被寫入至暫存器檔案的值或改變儲存請求的位址。例如,可將指令惡意地解碼以將加轉變成減,造成算數邏輯單元(ALU)產生差值而不是總和值。
也可將資料損毀器後門用來改變程式流程,例如,藉由改變暫存器中的值,因此改變未來的「分支-如果-相等」指令之結果。然而,在此種情況中,各個別指令將仍然做與其平常相同量的工作。額外的指令將不會出現,直到損毀指令被提交為止。因此,被個別考慮的各指令將看起來做正確量的工作。
對於攻擊者而言在考慮發射器後門與損毀器後門之間有某些權衡。發射器攻擊實施相對簡單,且某些類型的發射器攻擊(例如,「影子載入」)具有非常低的面積和邏輯要求。此種攻擊也具有的性質是,使用者在使用應用程式時可能不會看見任何硬體發射器的徵兆。這是因為該攻擊可保留原始的指令流。
損毀器攻擊在另一方面設計較複雜且較難以對使用者隱藏。事實上,控制損毀器攻擊需要比類似的發射器攻擊更多的邏輯,因為非僅僅傳送觸發器,它必須隱藏該觸發器於現場指令內,這涉及額外的多工處理或一些等同的處理。在此種攻擊中,非僅僅發射偽信號,使用者本身的指令被改變以產生該攻擊。因為使用者的指令被改變,攻擊
者必須具有一些被執行以便改變資料而不改變該使用者之二進制的知識。如果執行後門造成使用者的程式故障,這違反了攻擊的秘密性。損毀器攻擊也傾向隨著資料路徑大小而不佳地縮放,因為它們需要解碼使用者指令。在多階段解碼器的情況中,後門本身可能需要鎖存器且可能執行多個循環。
揭示的實施例提供一種晶片上監測系統作為對不受信賴設計者問題的解決方案,該監測系統無關於觸發器或單元而辨識在運轉時的惡意表現。以下所描述者為用於發射器及控制損毀器防護的低系統負擔解決方案。以下亦描述者為一種形式的部份複製,稱為「智慧複製」,其可被用來對抗一些資料損毀器後門。對於不受以上機制之任一者所防護的資料損毀器,可使用全複製。本文中所呈現的實施例在簡單微處理器(不重新排序指令)的情境中加以描述。
如以上所述,發射器後門造成比指令所指定更多的(或更少的)微架構交易出現於受損毀單元中。此實施例中所描述的監測系統(其被稱為「TrustNet」)監看各個受考察單元的微結構交易以抓到此種類的攻擊。概念上,系統偵測了晶片上單元間的確定性通訊不變量之違規,其由發射器後門所違反。
再參照第1圖,如以上所討論,監測系統包括以預測/
反應監測「三角」方式定位的數個受監測單元120。典型的監測三角包括三個晶片上單元:預測器100單元、反應器單元110、及目標單元120(即,受監測單元)。在此組態中,預測器單元100傳送訊息或「符記」(140及150)至監測器單元130,預測應自目標單元120出來的事件。訊息可為例如個別的位元,其在每次預測器接收到事件時被傳送。如果反應器沒有接收預測事件,或如果反應器接收從未被預測的事件,則監測器指示警報。將典型的監測三角之操作呈現於第2圖中。
監測三角的目標單元可為數個晶片上單元的任一者。例如,可將第3圖中所示的指令解碼單元(IDU)選為目標單元。在此種情況中,預測器單元可為在事件到達該IDU以前看見該等事件的任何單元,諸如,例如指令提取單元(IFU)。提取單元在每個指令到達該解碼單元以前看見該指令。反應器單元可為在事件通過該目標單元以後看見該等事件的任何單元。例如,可將執行單元(EXU)選為此實例中的反應器單元,因為該單元一直在指令通過該解碼單元以後接收有關該等指令的資訊。監測器可座落於晶片上的任何地方。
在此實例中,IFU在各個循環知道是否它已經提取新的指令。同樣地,EXU在各個循環知道是否有效指令正前進通過管線。使這二個資訊來源互相確證會防止IDU插入偽指令至管線中。沒有需要額外運算來作出此決定,因為此資訊已經由各別單元中的信號所代表。
此設計的一個態樣在於,目標單元從未與監測器通訊。因此,即使特定單元X的設計者知道監測器的設計(這很有可能),該設計者不能夠損毀單元X與單元X的監測器兩者。為了此原因,較佳的是,X的監測器不應該實體上為單元X的部份。
在威脅模型中所假設的是(如以上所討論),微處理器設計中所涉及的僅一個子團隊被損毀,且因此攻擊者無法損毀晶片上的二個獨立單元。本文中所揭示的監測系統確保該系統對於這些預期威脅是安全的,如下列討論將顯明。
考慮到例如監測設置以監看特定單元X。在此監測中有涉及四個單元:X的預測器(稱為P);X的反應器(稱為R);單元X本身;且單元X的監測器(稱為M)。攻擊者(被假定為在僅僅一個子團隊上)可選擇這些項目的一個且僅僅一個來損毀。為了造成機密性或完整性攻擊於單元X中,攻擊者將必須選擇損毀X本身。然而,在此情況中,單元P、R、及M將全部不被篡改,且該攻擊將在運轉時由包括單元單元P、R、及M的監測三角所抓到。
替代地,攻擊者可反而篡改單元P或R(但非兩者)。然而,在任一情況中,此種攻擊將在運轉時被抓到,因為單元P及R將互相牴觸。最後的可能性將為攻擊者損毀單元M以造成可用性攻擊。然而,因為單位M含有僅一個(或幾個)邏輯閘,太小而不足以含有作弊碼或定時炸彈。單位M具有如此少的狀態(通常沒有)及輸入位元(通常二
個),而其可輕易藉由窮盡列舉來在統計上加以驗證。
如以上所討論,控制損毀器改變在執行期間之指令的語意。以上用以抓到發射器攻擊所描述之相同的預測器/反應器方案也對偵測控制損毀器攻擊起作用,因為這些攻擊造成未被預測的反應(即,微架構交易)或者防止被預測的交易。偵測系統(其被稱為「DataWatch」)的此實施例為以上所描述之TrustNet實施例的延伸。
DataWatch使用類似於TrustNet實施例的監測三角組態。然而,不是傳輸個別的位元至監測器單元,將簽章(例如,雜湊、同位位元、切片)送至檢查等效性的監測器單元。例如,在解碼器的情況中,二位元簽章足以界定是否指令涉及載入、儲存、兩者、或都不是(即,二個位元用於四個情況)。對來自預測器單元及反應器單元之簽章的相等性檢查足以確認晶片上不變量,即進入IDU之各類型正規記憶體操作的數量等於離開該IDU之各類型記憶體操作的數量。此例如防止了藉由轉換無操作而成為儲存指令來洩露資料的攻擊。
如以上所討論資料損毀器攻擊僅改變在晶片上通訊中所傳送的資料。這些後門基本上與發射器後門及控制損毀器不同,因為在執行指令期間單元間的通訊量及類型與正確作用的晶片相同。監測三角(儘管對於辨識交易的量及類型非常有效率)對於此情況無法順利運作,因為在沒有複製一些已經被損毀的計算邏輯之情況下無法辨識資料損毀器攻擊。例如,如果執行單元(EXU)產生不正確總
和,事實上在沒有複製算數邏輯單元(ALU)的情況(或者沒有實施算數邏輯單元的功能之情況)下無法得知總和是錯誤的。
然而,資料損毀器攻擊具有一些與可出現於微處理器中的暫態錯誤之類似性。在許多情況中足以複製選定的計算邏輯以便保護RTL設計,因為標準記憶體結構(例如,RAM)對於RTL階層攻擊不敏感。可將此類型的最少複製(其可被稱為「智慧複製」)以逐個情況的方式用來保護DataWatch系統未涵蓋的任何單元(例如,記憶體控制單元)或被視為易受到資料損毀器攻擊的任何單元。
使用部份複製容許了對資料損毀器攻擊的防護。然而,這是在處理器停頓及額外的面積之可能代價下完成。此外,如先前所解說,在大多數的領域中,資料損毀器攻擊可能被視為不可行,因為需要在未來於RTL設計階段期間被執行的有關二進制之先進知識。
第9圖包含總結所述實施例的一些屬性的表格。這些實施例沒有具有誤肯定的問題(即,誤警報),因為它們使用了可被輕易在統計上決定於非臆測性、循序之微處理器中的不變量。使用這些技術於具有先進臆測性技術的設計中(諸如預提取)可能使誤肯定的避免是非顯然的。誤否定(即,未命中的攻擊)僅為DataWatch技術中的多個信號被雜湊以節省空間時的問題,因為二個不同值可能雜湊至相同金鑰,因此欺騙了相等性核對器。然而,此種雜湊不是必要的,因為底線DataWatch系統的空間要求相當
低。
為了展示TrustNet及DataWatch實施例的原理,以下所呈現的案例研究描述了這些技術如何可被應用至假想、非臆測性、循序的微處理器。此研究中所使用的循序微處理器密切地模型化OpenSPARC T2微處理器的核心及快取階層,除了核心與記憶體系統間的交叉網路(cross bar network)、執行緒切換單元、及諸如時脈與測試單元的晶片系統單元以外。針對此研究,處理器核心中的單元如OpenSPARC T2文件中所描述來加以分割,且將開放原始碼RTL碼用來識別用於各單元的預測器及反應器。將基本技術呈現於第4圖的流程圖中。下列為該研究中所實施的TrustNet監測三角,由受監測的目標單元來加以分類:
#1指令解碼單元(IDU):IDU的主要責任為解碼指令。由IFU所預測且由EXU所反應,IDU監測在各循環確認的是,如果且僅如果一有效指令進入該IDU時,一有效指令自該IDU出來。此監測偵測了其中IDU插入假指令至串流中的任何攻擊。在分支及跳躍指令的情況中(其沒有一路通過該管線),資訊行進得夠遠而足以令EXU知道出現了分支或跳躍。如果此監測可以可靠地識別臆測性指令,可將該監測用來支援臆測性微處理器。
#2指令提取單元(IFU):IFU的主要責任為提取指令。由指令快取(I-Cache)所預測且由IDU所反應,此監
測在各循環確認的是,如果且僅如果一有效指令從I-Cache加以提取時,一有效指令自該IFU出來。此不變量抓到其中IFU偷渡指令(不是來自I-Cache)至串流中的任何攻擊。該監測相對於整個快取線而操作在單一指令的階層上。僅管整個線從L2載入至I-Cache中,該I-Cache知道何時個別指令被提取至IFU中。
#3載入儲存單元(LSU):該LSU處理SPARC核心、L1資料快取及L2快取間的記憶體偏好。由IDU所預測且由資料快取(D-Cache)所反應,此監測在各循環確認的是,如果且僅如果記憶體指令被饋送至LSU中時請求記憶體動作(即,載入或儲存)。此抓到LSU中的影子載入或影子儲存攻擊。此研究中的微處理器使用寫入合併,其涉及數個輸入寫入請求被合併至單一輸出寫入請求。然而,此不造成問題,因為有信號在各循環產生,表示是否載入/儲存被啟動,所以即使經過數個循環數個寫入將被合併,各循環仍然有信號針對監測系統產生。
#4指令快取(I-cache):由IFU所預測且由統一的L2快取所反應,此監測在各循環確認的是,如果且僅如果載入對應於I-Cache中所未命中的提取時在該L2快取中接收L2指令載入請求。IFU可預測這個,因為它接收來自I-Cache之對未命中的「無效」信號。I-Cache未命中立即觸發L2請求且停頓該IFU,所以快取線大小沒有問題。IFU緩衝此預測直到從L2快取接收該反應。此抓到I-Cache中的影子指令載入。
#5資料快取(D-Cache):由LSU所預測且由L2快取所反應,此監測與監測#4相同,但它監看資料請求而不是指令請求。
#6第2階快取(L2快取):由I-Cache所預測且由記憶體管理單元(MMU)所反應,此與監測#4相同,但在快取階層中較高一個階。
#7 L2快取:由D-Cache所預測且由MMU所反應,此與監測#5相同,但在快取階層中較高一個階。
#8 D-Cache:由LSU所預測且由L2快取所反應,此與監測#5相同,但它監測寫入而不是讀取。必要的是,二個獨立的監測器監看讀取及寫入,因為如果單一監測器僅計數讀取與寫入的總數量,則攻擊者可轉換寫入成為讀取而不被注意到。這將造成舊資料被載入至該快取中且防止新的值被寫入。
#9 L2快取:由D-Cache及I-Cache所預測且由記憶體管理單元(MMU)所反應,此監測確認該MMU中的線存取對應於第1階快取所發出的線存取。此監測防止由L2快取所執行的影子載入/儲存。
下列為被實施於該研究中的DataWatch監測三角,由受監測的單元來加以分類:#10指令提取單元(IFU):由IDU所預測且由I-Cache所反應,此監測在各循環確認的是,如果該I-Cache接收有效PC值,它與該IFU中所算出的值相同。這需要一些PC邏輯的複製,但不需要任何額外的儲存。此監測防止其中
IFU惡意地改變控制流程的攻擊。
#11資料轉譯後備緩衝器(TLB):由核對器資料TLB所預測且由LSU所反應,此監測在各循環確認的是,資料TLB的輸出匹配核對器資料TLB的輸出。此防止資料TLB攻擊,諸如允許違規或頁誤轉譯。這接近了可被視為「智慧複製」者,因為簽章是如此之大。然而,這還是被含括於DataWatch實施方式及模擬中。
#12指令轉譯後備緩衝器(TLB):由核對器指令TLB所預測且由IFU所反應,這與監測#11相同,但針對指令TLB而不是資料TLB。
#13資料解碼單元(IDU):由IFU所預測且由LSU所反應,此監測確認的是,被解碼成記憶體操作之指令的數量匹配被提取之記憶體指令的數量。針對此研究中所使用的微處理器,此監測需要IFU觀看該指令的幾個位元。該監測出現在滯後一個循環,所以關鍵路經的時序不受影響。當可用幾個邏輯閘作出預測時,該IFU將來自提取的指令之幾個位元儲存於正反器中直到次一循環。針對此案例研究,這是被解決的唯一類型之控制損毀器解碼器攻擊。這是此種情況,因為在該研究的簡單微處理器中,解碼器可造成的唯一類型之信號為載入或儲存。如果例如解碼器改變相加至相減,這將為資料損毀器,因為它將不改變執行單元中的交易數量,只改變輸出的值。在較複雜的微處理器中,解碼單元可能負責較多類型的交易且可能需要額外的監測三角。當客製化DataWatch系統以擬合特定
設計時,最重要的是識別各單元負責的信號為什麼類型。
將預測器及監測器單元的微架構描繪於第5圖中。預測器單元包括:(i)事件或「符記」緩衝器510,用以延遲發出符記至監測器單元130;(ii)符記發出邏輯520,用以決定何時可從事件緩衝器510釋放緩衝的事件。預測器單元100需要小的緩衝器,因為有可能在反應發生以前發生多個預測,且這些預測必須被記住經過該期間。這些緩衝器可依推理定大小以避免溢流。監測器單元130檢查是否事件在相同循環期間出現在監測器單元130的預測器輸入530及反應器輸入540,例如,藉由使用互斥OR操作(XOR)。替代地,可將緩衝器併入監測器單元中或作為獨立的單元。
當使用TrustNet實施例以抓到發射器後門時,較佳的是,監測器輕易地擬合至管線中而沒有任何複雜的時序或緩衝。因為預測及反應必須在相同循環期間抵達監測器,時序必須面對不確定性來加以控制,這由於快取未命中等等而產生於所有微處理器中。這以不同方式在記憶體階層的情況對在管線的情況中加以處理。
該管線提供了固有的鎖步方式而用以協調事件。如果反應階段為低於預測階段N個管線,則該預測階段具有大小N的緩衝器,該緩衝器只在該管線的階段前進時前進。因為監測網路在鎖步中隨著管線事件前進,時序不是問
題。例如,如果第三管線階段想要傳送預測至位在第五管線階段中的監測器,這需要二個管線前進(不需要轉送)。如果第三階段為了任何原因停頓,該預測也停頓且被緩衝。當來自第三階段的資料到達第五階段,預測符記也抵達。當然,在此種情況中,預測符記不應通過第四階段,但應反而維持在預測緩衝器中,藉由一位元表示它語意上在該第四階段中。
另一方面在快取階層的情況中,必須知道哪一個預測對應於哪一個反應,因為有可能記憶體請求以失序方式來加以處理。這需要封包的時間戳記,例如藉由從8位元模組計數器所複製的一個位元組本地時間簽章。
當使用DataWatch實施例時,用以抓到轉譯後備緩衝器(TLB)中的控制損毀器後門之一個解決方案為僅僅使二(或更多)個設計者設計相同的TLB且在各循環比較它們的輸出。因為TLB傾向為耗電、高度關聯性結構,複製不是好的構思。不是完整複製,可使用新的TLB微架構,其提供顯著的保護而沒有與複製關聯的成本。
TLB含有晶片上其他處不可取得的頁轉譯及允許資訊。TLB具有轉譯虛擬頁而成為實體頁的內容可定址記憶體(CAM),接著將該實體頁藉由針對該實體頁的對應允許資訊而儲存於表(即,RAM)中。
如第6圖中所示,此實施例包括「核對器TLB」600,其為具有與目標單元120相同之功能的直接映射結構,該目標單元120在此實例中為轉譯後備緩衝器610(TLB)。
使用直接映射結構是因為此種結構使用僅僅關聯者之功率的一部份。在本文中所呈現之案例研究中的TLB為完全關聯性。將功能添加至TLB 610的CAM 620以輸出該輸出的線數量。此容許使用核對器TLB 600(其使用這些線數量)。因此,不是具有一個CAM及一個直接映射RAM,系統可具有一個CAM 620,其並行提供匹配項目至二個RAM(630及640)。RAM 630的一者與晶片的其餘者通訊,而其他RAM 640僅僅給予輸出至監測器單元130(即,其效果上當作相等性驗證器)。相等性檢查出現在一個循環的潛時,所以該等值於該循環加以緩衝。
CAM可能可被篡改,使得它將傳送不正確線數量至核對器TLB。這將造成相等性檢查失敗,因為來自原始TLB之RAM的一個線之資料將與來自第二RAM之不同線的資料作比較,造成警報被指示。因此,本文中所描述的核對器TLB轉變潛在的機密性或完整性攻擊而成為(在最壞情況)可用性攻擊。這類的可用性攻擊將容易在驗證時間抓到,因為傳送線數量很簡單、組合邏輯可由窮盡列舉來加以檢查。
此外,僅管以上所描述的複製比用於發射器後門防護之較簡單的監測器昂貴許多,它比完整複製便宜許多且對高度脆弱的單元提供強力保護。
本文中所描述之評估的目標為:(1)研究TrustNet及
DataWatch所提供的準確度及涵蓋範圍;(2)量測來自DataWatch執行於真實程式上的晶片上網路壅塞中的增加;及(3)量測兩種機制的區域系統負擔。不需要討論性能,因為提出的機制沒有停頓該管線、記憶體系統、或任何其他晶片上單元,且安全封包於專用網路上前進。因此,將預期這些技術對性能有顯著影響。
下列討論解決了揭示的實施例所提供之解決方案的一般可應用性及限制,包括相關的態樣及潛在的延伸。
本文中所描述之TrustNet及DataWatch的實施方式針對簡單、循序的微處理器來加以設計。僅管該方法可應用於任何循序微處理器,此確切的實施方式針對案例研究的微處理器。為了擬合TrustNet及DataWatch至其他設計,必須在高階層分析該等單元且決定什麼是固有的預測器及反應器。
本文中所描述的實施例在暫存器轉移階層(RTL)操作,且因此可僅僅抓到操作在RTL上的攻擊。後RTL(post-RTL)、電路階層攻擊(諸如篡改某些電晶體上的電壓臨限)將不會被這些技術抓到。本文中所描述的實施例涵蓋OpenSPARC T2微處理器的核心及快取階層,但不涵蓋除錯/測試邏輯或雜項(miscellanies),諸如時脈分佈。額外地,側通道攻擊也沒有涵蓋。
如以上所述,本文中所描述的實施例在假設最多一個微處理器設計團隊被損毀之下操作。監測組態為三角形(即,大小為三的完全圖)。如果容許n個不同子團隊被
損毀且完全協調,則解決方案變得較複雜。
為了使TrustNet系統抓到n個協調的攻擊者,必須形成大小為n+2的完全圖。此種系統的前提在於二個誠實單元必須互相通訊以比較資訊及偵測不一致。如果有最多n+1個節點且n個已經被篡改,則它們中最多一個為誠實,且該一個誠實單元僅接收無效資訊。因此,圖的大小必須為至少n+2,使得有至少二個誠實節點。如果該圖不完全,即,如果它缺少一邊,則可能該缺少的邊連接僅有的二個誠實節點。在此情況中,該二個誠實節點僅接收無效資訊。因此,該圖必須為完全。由於完全圖含有n(n+1)/2個雙向邊,TrustNet解決方案在被應用至針對u個單元之微處理器的n個攻擊者時具有基本通訊系統負擔n(n+1)u n 2 u。
因此,可推論TrustNet及DataWatch可針對多個、協調的攻擊子團隊加以一般化。然而,此種一般化實施方式的複雜度對應地增加。
如何處理警報的決定在某程度上為領域特定的。不過,下列討論呈現了管理來自監測器單元之警報指示的可能方式。對警報的最簡單回應為除去缺陷處理器,這具有了轉變機密性或完整性攻擊而成為可用性攻擊的效應。在高度安全的領域中,可能想要防止洩露敏感性資料。額外地,在異質處理器(即,多樣性)設定中,可能想要除去缺陷核心。TrustNet及DataWatch基礎結構可大幅簡化了使微處理器為篡改可修正的工作。例如,如果警報被指示,問題可藉由撤回(roll back)至最後提交的指令來加以修
正。額外地,可將受損毀單元中被執行的指令旗標為作弊碼且被儲存於日誌中以供未來執行。也可將警報儲存於記憶體中及/或自微處理器輸出至使用者。
一般化TrustNet及DataWatch架構有數個方式。多執行緒的情況為相對簡單的一般化,其可藉由針對n執行緒的核心令封包為n寬來加以實施。假設一個執行緒不應該改變另一執行緒的微架構交易,該n寬的封包可在語意上作為n個獨立的監測器。失序的情況較為複雜,因為它需要用以處理執行期間之預測器/反應器符記的重新排序之機制。處理臆測性微處理器組態也將需要一些修改。然而,可藉由識別指令的壽命是什麼且監測該指令經過該壽命(即,無論它被預提取、臆測或提交)而應用以上所討論之實施例的原理以在此種情況中作用而沒有任何誤警報。現代的微處理器有其他先進的特徵,且各者可能需要某些修改。例如,一些微處理器具有與TLB所管理之允許分開的特許狀態或監督狀態。此種增加物為控制損毀器開了門,且因此保證了額外的監測三角。
本文中所討論的實施例藉由使用Sun Microsystems的OpenSPARC T2微架構之簡化模型來加以模擬。僅管這些實驗及分析被實施於此特定的模擬核心,可將該等技術應用至具有記憶體階層及管線的任何微處理器。在以上所討論的案例研究中,將RTL硬體實施方式用來:(1)建構良好形成、有意義的攻擊以測試系統的回彈性;及(2)系統式地決定可由揭示的技術所涵蓋之晶片上單元的數量。
為了量測壅塞,使用循環準確的模擬器,其確切地模型化該模擬的微處理器之一個核心。將模擬基礎結構的細節總結於第10圖顯示的表格中。將以上所討論之所有TrustNet及DataWatch監測三角模型化,如第11圖及第12圖顯示的表格中所呈現,包括部份複製的TLB。
為了決定TrustNet及DataWatch在防護對微處理器之攻擊的方面有多好,必須考慮微處理器攻擊/脆弱性空間。為了量測攻擊/脆弱性空間,觀察到的是,晶片上單元僅對於後門是脆弱的,只要它的介面受到威脅。該單元內部發生的事並不重要,只要進出該單元的一切都正確。如果所有輸入及輸出與在未受損毀單元中相同,則沒有問題,因為沒有資料損毀或洩露。因此,為了識別脆弱性的點,記錄晶片上單元的介面。該解決方案的效力接著藉由這些介面是否由使用TrustNet及DataWatch而被保護免受攻擊來加以決定。
第7A至7D圖顯示了在OpenSPARC T2的RTL實施方式中,分別在整體晶片、處理器核心、記憶體元件及系統元件內的單元間之共用介面的分佈。柵格中的各量測值代表了進入及離該處理器內之單元的信號數量。將所有的通訊對具有最高通訊的單元加以正規化。非常小的長條(即,低於0.1)表示了不是指令處理之一部份的連接,但反而含有雜項資訊,諸如電源設定、時脈分佈等等。對此種連接的攻擊在製造時是有可能的(例如,藉由使特定單元時脈錯誤(misclocking)),但將難以經由RTL碼來達成。
這些雜項信號大多數未出現於以上所討論的案例研究中。因此,案例研究中的微處理器比真實OpenSPARC T2略簡單且缺少一些較不重要的特徵,諸如電源管理及符點運算。
如從第11圖及第12圖中顯示的表格(其分別描述已知的發射器及損毀器監測)以及第7A至7B圖(其描述所有介面)可見,在具有顯著通訊之核心中的所有單元(即,超過0.1)藉由TrustNet及DataWatch來加以監測。針對此研究,將手動分析用來識別介面上的哪些信號可以被改變而造成發射器及控制損毀器攻擊,以便驗證TrustNet及DataWatch可涵蓋這些信號。根據此分析,大多數的脆弱介面可被保護免受已知攻擊。然而,手動分析可能不會揭露所有可能的攻擊情境,所以想要自動化此程序以達成全涵蓋。
可將自動化程序用來分析硬體描述語言(HDL)碼(定義微處理器的設計)、列舉該等介面及功能單元間的一些基本關係、且決定哪些功能單元應受監測,即,目標單元。例如,目標單元可根據在功能單元的介面之通訊數量來加以選定。該程序可接著根據單元在事件流程中相對於對應的目標單元之位置,決定哪一單元選為預測器單元及反應器單元,即,預測器單元在事件通過該目標單元以前看見該等事件,且反應器單元在事件通過該對應的目標單元以後看見該等事件。根據這個,自動化程序可決定在何處插入監測單元,這將典型地接近對應的預測器、目
標、及反應器單元。
僅管TrustNet及DataWatch被用於處理器核心及快取階層對抗已識別的發射器及控制損毀器攻擊,不將這些技術使用於針對浮點邏輯、記憶體控制器單元、交叉桿(crossbar)及雜項邏輯的案例研究中。實際上,相信可將正式的(即,數學的)驗證用來涵蓋浮點邏輯及交叉桿。該案例研究也不涵蓋雜項邏輯,諸如電源管理單元及串流處理單元,但這些單元很少與其他晶片上單元接觸(即,少於0.1正規化),且認為這些單元不可能顯著增加攻擊脆弱性。難以用TrustNet涵蓋記憶體控制器單元(MCU),因為該MCU只與主記憶體通訊且沒有可用的單元當作反應器。用以處理此特殊情況的最簡單方式將是複製MCU控制邏輯,其如同完整複製之目的,但不增加記憶體頻寬。
根據以上所討論之OpenSPARC T2 RTL的研究,發射器及控制損毀器攻擊被建構(如第13圖中顯示的表格所描述)且注入模擬器中以量測誤肯定及誤否定的百分率。沒有將資料損毀器攻擊實施於該研究中,因為這些攻擊(諸如改變了有效載入之位址的攻擊)可能需要邏輯複製。在此種情況中,可將位址(或該位址的雜湊)轉送以確定該位址未被改變。然而,這沒有在以上所討論的實施方式(其僅對發射器及控制損毀器攻擊加以防護)中完成。如以上所述,該研究不涉及根據警報的修正或撤回量測。針對該研究的目的,僅記錄警報是充足的。此外,如以上所
述,用以處理MCU的一個方式為複製該MCU控制邏輯,而不是整個結構,這可以在不增加記憶體頻寬的情況下加以完成。此在第13圖的表格中被指示為「複製」。
如所預期,該研究結果是所有發射器及控制損毀器攻擊在所有情況中被抓到。此表示該系統提供了涵蓋給所有被施加各種類型攻擊的單元。該研究也量測該解決方案沒有攻擊時的整體準確度,如其中沒有誤肯定結果之循環的百分率所示。此量測指示的是,針對該研究期間所執行的所有測試,沒有誤肯定出現。沒有誤肯定且沒有誤否定是重要的,因為前者可能削弱該系統且後者將為安全漏洞。
由於TrustNet及DataWatch不會停頓管線或者增加運算循環,該系統的最相關成本為增加晶片上網路流量。此增加取決於架構,但如果假設了快取階層及一或更多個管線化運算單元時它一般可被局限。在最壞情況中流量的總量依據下列方程式而有上限:流量2*(記憶體操作*記憶體監測器+指令*管線監測器)。
以上方程式中的因子2來自事實上個監測事件具有二個封包:預測及反應。此為估計的上限,且預期實際系統將產生遠小於此估計的流量。然而,此上限表示該設計的可縮放性(scalability)。考慮到目標為監測每個管線階段及每個指令,隨著每一循環的指令(instructions per cycle,IPC)與管線深度之此線性縮放為最適的(到恆定
因子)。
由真實程式所產生的監測網路流量用實驗方式來加以量測以回答二個問題:(1)有會產生流量之溢流(接近最壞情況的界限)的程式;及(2)程式間的高階差異會影響監測器所造成之流量的量嗎?所預期的是,不同程式的執行將對監測器所產生之流量的量具有少量影響。
如第8圖所確認,程式間的差異沒有顯著影響監測系統之每一循環的事件(events per cycle,EPC)。第8圖顯示在執行SPEC整數基準期間傳送於TrustNet監測器間之每一循環的通訊數量。每一循環的通訊數量為確定性的,因為監測器以確定性方式表現且指令按照順序。所產生的流量是相對低的(即,一直低於2 IPC)。它也在該等基準間是穩定的(即,在1.1與1.2之間)。此傾向於指示,單一模型適用於所有程式且不必程式自適應的特徵。這些數字對於例如由僅僅儲存指令或僅僅分支指令所組成的程式而言將較高,但此種表現不是真實程式的典型。
下列討論提供了對TrustNet及DataWatch的一般區域成本之界限且估計了案例研究中的實施方式之成本。將儲存器的位元組用來作為度量,因為所需要的運算邏輯是顯然的(例如,XOR、緩衝器邏輯、或幾個位元之上的相等性檢查)。監測器的區域成本來自事實上事件必須藉由監測系統而從它到達預測器的時刻儲存至它到達反應器的時刻。在複雜的處理器中,此時刻可能是可變動的。必須具有足夠大的緩衝器來儲存所有仍然不完整的事件。此數量
取決於架構,但對於給定的微處理器而言依推理得知。因此:緩衝器封包最大記憶體請求+最大管線中指令。
在單一發出、循序的情況中,各封包為單一位元。額外地,如果有N個共用管線的執行緒,資料必須為N位元寬而不是一個位元,使得不可能執行緒調換攻擊。所以,一般而言:區域(最大記憶體請求+最大管線中指令)*封包大小。
具體而言,TrustNet如第11圖的表格中所描述而採用了九個不同監測三角。針對各三角在輸入處使用一個位元組的預測緩衝器是充足的(僅管在大多數情況中較小的緩衝器將足夠)。OpenSPARC T2核心的分析顯示的是,一個位元組的預測緩衝器(即,八個槽)不可能溢流。這造成總共最多九個位元組的儲存。使用最大縮放(即,不具有微架構最適化之保守的縮放)將需要9*8=72位元組以涵蓋八個執行緒的OpenSPARC T2核心。OpenSPARC T2晶片(其含有八個核心)將需要八個TrustNet複製而總共72*8=576位元組的儲存。
DataWatch如第12圖的表格中所描述而採用除了TrustNet所使用的三角以外的四個額外三角。用於管線的
二個三角使用一個位元組簽章的八寬度預測緩衝器,每一個總共八個位元組。如果一者對所有八個核心產生二個三角,則造成2*8*8=128總位元組的儲存。包括複製的直接映射TLB(資料與指令兩者)添加總共128+64=192個複製的TLB項目。如果此針對八個核心之各者來完成且各個線給予量大的九個位元組之儲存,此添加8*9*192=13824位元組的儲存。因此,DataWatch使用TrustNet以外之總共128+13824=13952位元組的儲存,總共13952+576=14528位元組,或稍低於15KB的儲存(即,8核心及快取階層的總儲存)。
以上所描述的某些實施例可包括電子硬體、軟體、或兩者之組合。可將軟體實施於電腦可讀取媒體上,諸如可為非暫時性的磁碟或記憶體。
以上所呈現之構思的其他實施例、延伸、及修改被領會且應在精通本技藝之人士檢閱本揭示以後所達到的範圍內。因此,呈其各種態樣之所揭示標的的範圍不應受到以上所呈現之實例的限制。應將所揭示標的之個別態樣以及所揭示標的整體視為容許在本揭示範圍內的設計修改及未來的發展。所揭示標的可僅僅由之後的申請專利範圍來加以限制。
100‧‧‧預測器單元
110‧‧‧反應器單元
120‧‧‧受監測單元
130‧‧‧監測器單元
140、150‧‧‧訊息
510‧‧‧符記緩衝器
520‧‧‧符記發出邏輯
530‧‧‧預測器輸入
540‧‧‧反應器輸入
600‧‧‧核對器TLB
610‧‧‧轉譯後備緩衝器
620‧‧‧內容可定址記憶體
630、640‧‧‧隨機存取記憶體
所揭示標的之以上及其他目的及優點在考慮到以上實施方式連同所附圖式將顯而易見,在該等圖式中相似的元
件符號從頭到尾意指相似的部件,且其中:第1圖為微處理器單元之監測三角配置的方塊圖,包括預測器單元、受監測單元、反應器單元、及監測器單元。
第2圖為顯示監測三角之操作步驟的流程圖。
第3圖為顯示對其施加監測之微處理的主要單元之方塊圖。
第4圖為顯示在數位電路設計中實施監測三角之步驟的流程圖。
第5圖為顯示預測器及監測器單元之微架構的方塊圖。
第6圖為具有預測器單元之監測三角的方塊圖,該預測器單元部份複製轉譯後備緩衝器的功能。
第7A至7D圖為顯示整體晶片內的單元間之共用介面分佈的圖式。
第8圖為顯示在執行SPEC整數基準期間傳送於TrustNet監測器間之每一循環的通訊數量之圖式。
第9圖為總結所述實現的各種屬性之表格。
第10圖為總結所用模擬基礎結構的細節之表格。
第11圖為提供關於各種發射器監測的細節之表格。
第12圖為提供關於各種損毀器監測的細節之表格。
第13圖為提供關於發射器及控制損毀器攻擊的細節之表格。
100‧‧‧預測器單元
110‧‧‧反應器單元
120‧‧‧受監測單元
130‧‧‧監測器單元
140、150‧‧‧訊息
Claims (28)
- 一種偵測對硬體實現電路之攻擊之系統,該硬體實現電路包含功能單元,該系統包含:微架構目標單元,為了監測從該硬體實現電路之該等功能單元之中所選出;微架構預測器單元,從該硬體實現電路之該等功能單元之中所選出,組態成回應於由該預測器單元提供至該目標單元之微架構輸入,輸出由該目標單元產生的代表預測微架構輸出之預測事件訊息;微架構反應器單元,從該硬體實現電路之該等功能單元之中所選出,配置以回應於由該預測器單元提供至該目標單元之該微架構輸入,接收由該目標單元造成之實際微架構輸出,該反應器單元進一步組態成回應於由該預測器單元提供至該目標單元之該微架構輸入,輸出由該目標單元造成之代表該實際微架構輸出之實際事件訊息;及微架構監測器單元,經配置成接收來自該預測器單元之預測事件訊息及來自該反應器單元之實際事件訊息;其中該監測器單元係組態成根據自該預測器單元所接收之預測事件訊息與自該反應器單元所接收之實際事件訊息的比較來指示警報;以及其中該等預測事件訊息各包含下列其中之一:i)預測事件位元,其回應於由該預測器單元提供至該目標單元之該微架構輸入,由該預測器單元針對由該目標單元預測造成之各個微架構交易產生,以及其中,當該 等預測事件訊息各包含各自的預測事件位元,該等實際事件訊息回應於由該預測器單元提供至該目標單元之該微架構輸入,各包含由該反應器單元針對由該目標單元造成之各個實際微架構交易產生之實際事件位元,以及其中,在由該預測器單元預測的位元預測數量與由該反應器單元產生的位元實際數量之間的位元整體差異係指示在該目標單元中的發射器後門實現;或ii)預測事件值,其回應於由該預測器單元提供至該目標單元之該微架構輸入,由代表預測指令類型之該預測器單元針對由該目標單元提供至該反應器單元的預測指令產生,以及其中,當該等預測事件訊息各包含各自的預測事件值,該等實際事件訊息回應於由該預測器單元提供至該目標單元之該微架構輸入,各包含由代表實際指令類型之該反應器單元針對由該目標單元提供至該反應器單元的實際指令產生的實際事件值,以及其中,在由該預測器單元產生的該預測事件值與由該反應器單元產生的該實際事件值之間的指令類型值差異係指示在該目標單元中的損毀器後門實現。
- 如申請專利範圍第1項之系統,其中該預測器單元係從該硬體實現電路之配置成在事件到達該目標單元以前接收該等事件的功能單元之中所選出。
- 如申請專利範圍第1項之系統,其中該預測器單元係組態成至少部份複製該目標單元的功能。
- 如申請專利範圍第3項之系統,其中該目標單元為 轉譯後備緩衝器且該預測器單元為核對器轉譯後備緩衝器,該核對器轉譯後備緩衝器包含與該轉譯後備緩衝器共用的內容可定址記憶體及直接映射隨機存取記憶體。
- 如申請專利範圍第1項之系統,其中該目標單元係至少部份根據在該目標單元之介面出現的通訊量來加以選出。
- 如申請專利範圍第1項之系統,其中該預測器單元及該反應器單元係各組態成每次出現一事件時傳送至少一個指示符位元作為事件訊息至該監測器單元,且其中該監測器單元係組態成比較所接收的指示符位元。
- 如申請專利範圍第1項之系統,其中該預測器單元及該反應器單元係各組態成傳送複數個位元作為事件訊息,該事件訊息從複數個指令之中識別特定指令。
- 如申請專利範圍第1項之系統,其中該系統包含複數個目標單元,各目標單元係與對應的預測器單元相關、反應器單元、及監測器單元。
- 如申請專利範圍第1項之系統,其中如果該監測器單元沒有接收對應於所接收之預測事件訊息的實際事件訊息或如果該監測器單元接收該監測器單元未接收到對應的預測事件訊息之實際事件訊息,則該監測器單元指示警報。
- 如申請專利範圍第1項之系統,其中該硬體實現電路回應於來自該監測器單元的警報指示而被關閉。
- 如申請專利範圍第1項之系統,其中,回應來自該 監測器單元的警報指示,最後提交的指令被撤回(roll back)。
- 如申請專利範圍第1項之系統,其中,回應來自該監測器單元的警報指示,最後提交的指令被旗標為作弊碼且被儲存於日誌中。
- 如申請專利範圍第1項之系統,其中該硬體實現電路為異質處理器,以及其中回應於警報指示,將被識別為警報指示來源的該處理器之特定核心關閉。
- 如申請專利範圍第1項之系統,其中該預測器單元於該硬體實現電路的事件流中恰在該目標單元之前。
- 如申請專利範圍第1項之系統,其中該反應器單元於該硬體實現電路的事件流中恰在該目標單元之後。
- 如申請專利範圍第1項之系統,其中該硬體實現電路為微處理器,該目標單元包含指令解碼單元,該預測器單元包含指令提取單元,且該反應器單元包含執行單元。
- 如申請專利範圍第1項之系統,其中該預測器單元包含用以延遲至該監測器單元之預測事件訊息輸出的事件緩衝器,且進一步包含用以決定何時從該緩衝器釋放該等預測事件訊息的訊息發出邏輯。
- 如申請專利範圍第17項之系統,其中決定何時從該緩衝器釋放該等預測事件訊息係至少部份根據分開該預測器單元與該反應器單元之數個管線步驟。
- 如申請專利範圍第17項之系統,其中決定何時從該緩衝器釋放該等預測事件訊息係至少部份根據各預測事 件訊息及各實際事件訊息中所含括的時間戳記。
- 如申請專利範圍第1項之系統,其中該監測器單元包含用以延遲自該預測器單元所接收之預測事件訊息的事件緩衝器,且進一步包含訊息發出邏輯,其用以決定何時從該緩衝器釋放該等預測事件訊息以對自該反應器單元所接收的實際事件訊息作比較。
- 如申請專利範圍第1項之系統,其中該攻擊係由該硬體實現電路所接收作弊碼來加以觸發。
- 如申請專利範圍第1項之系統,其中該攻擊係由根據該硬體實現電路之時脈的計數器來加以觸發。
- 一種微處理器,包含如申請專利範圍第1項的系統。
- 如申請專利範圍第1項之系統,其中該各個微架構交易包含由該目標單元處理之有效指令。
- 一種偵測對硬體實現電路之攻擊的方法,該硬體實現電路包含功能單元,該方法包含:為了監測從該硬體實現電路之該等功能單元之中選出微架構目標單元;設置微架構預測器單元,從該硬體實現電路之該等功能單元之中所選出,組態成回應於由該預測器單元提供至該目標單元之微架構輸入,輸出由該目標單元產生的代表預測微架構輸出之預測事件訊息;從該硬體實現電路之該等功能單元之中選出回應於由該預測器單元提供至該目標單元之該微架構輸入,配置以 接收由該目標單元造成之實際微架構輸出之微架構的反應器單元,該反應器單元進一步組態成回應於由該預測器單元提供至該目標單元之該微架構輸入,輸出由該目標單元造成之代表該實際微架構輸出之實際事件訊息;及設置微架構監測器單元,其配置成接收來自該預測器單元之預測事件訊息及來自該反應器單元之實際事件訊息;其中該監測器單元係組態成根據自該預測器單元所接收之預測事件訊息與自該反應器單元所接收之實際事件訊息的比較來指示警報;以及其中該等預測事件訊息各包含下列其中之一:i)預測事件位元,其回應於由該預測器單元提供至該目標單元之該微架構輸入,由該預測器單元針對由該目標單元預測造成之各個微架構交易產生,以及其中,當該等預測事件訊息各包含各自的預測事件位元,該等實際事件訊息回應於由該預測器單元提供至該目標單元之該微架構輸入,各包含由該反應器單元針對由該目標單元造成之各個實際微架構交易產生之實際事件位元,以及其中,在由該預測器單元預測的位元預測數量與由該反應器單元產生的位元實際數量之間的位元整體差異係指示在該目標單元中的發射器後門實現;或ii)預測事件值,其回應於由該預測器單元提供至該目標單元之該微架構輸入,由代表預測指令類型之該預測器單元針對由該目標單元提供至該反應器單元的預測指令 產生,以及其中,當該等預測事件訊息各包含各自的預測事件值,該等實際事件訊息回應於由該預測器單元提供至該目標單元之該微架構輸入,各包含由代表實際指令類型之該反應器單元針對由該目標單元提供至該反應器單元的實際指令產生的實際事件值,以及其中,在由該預測器單元產生的該預測事件值與由該反應器單元產生的該實際事件值之間的指令類型值差異係指示在該目標單元中的損毀器後門實現。
- 如申請專利範圍第25項之方法,其中該預測器單元係從該硬體實現電路之配置成在事件到達該目標單元以前接收該等事件的功能單元之中所選出。
- 如申請專利範圍第25項之方法,其中該預測器單元係組態成至少部份複製該目標單元的功能。
- 一種偵測對硬體實現電路之攻擊的方法,該硬體實現電路包含功能單元,該方法包含:在從該硬體實現電路的功能單元之中所選出的微架構預測器單元接收事件;回應於由該預測器單元提供至該目標單元之對應於該事件之微架構輸入,自該預測器單元輸出由微架構目標單元產生的代表預測微架構輸出之預測事件訊息;在為了監測從該硬體實現電路之該等功能單元之中所選出的該目標單元接收該事件;在從該硬體實現電路的功能單元之中所選出的微架構反應器單元接收,回應於由該預測器單元提供至該目標單 元之該微架構輸入,由該目標單元造成實際微架構輸出;回應於由該預測器單元提供至該目標單元之該微架構輸入,自該反應器單元輸出由該目標單元造成之代表該實際微架構輸出之實際事件訊息;在微架構監測器單元接收來自該預測器單元之該預測事件訊息及來自該反應器單元之該實際事件訊息;在該監測器單元中根據自該預測器單元所接收之該預測事件訊息與自該反應器單元所接收之該實際事件訊息的比較來決定是否產生警報指示;其中該預測事件訊息包含下列其中之一:i)存在預測事件位元,其回應於由該預測器單元提供至該目標單元之該微架構輸入,由該預測器單元針對由該目標單元預測造成之各個微架構交易產生,以及其中,當該等預測事件訊息各包含各自的預測事件位元,該等實際事件訊息回應於由該預測器單元提供至該目標單元之該微架構輸入,各包含由該反應器單元針對由該目標單元造成之各個實際微架構交易產生之實際事件位元,以及其中,在由該預測器單元預測的位元預測數量與由該反應器單元產生的位元實際數量之間的位元整體差異係指示在該目標單元中的發射器後門實現;或ii)存在預測事件值,其回應於由該預測器單元提供至該目標單元之該微架構輸入,由代表預測指令類型之該預測器單元針對由該目標單元提供至該反應器單元的預測指令產生,以及其中,當該等預測事件訊息各包含各自的 預測事件值,該等實際事件訊息回應於由該預測器單元提供至該目標單元之該微架構輸入,各包含由代表實際指令類型之該反應器單元針對由該目標單元提供至該反應器單元的實際指令產生的實際事件值,以及其中,在由該預測器單元產生的該預測事件值與由該反應器單元產生的該實際事件值之間的指令類型值差異係指示在該目標單元中的損毀器後門實現。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US30919410P | 2010-03-01 | 2010-03-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201209630A TW201209630A (en) | 2012-03-01 |
TWI512520B true TWI512520B (zh) | 2015-12-11 |
Family
ID=45098573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100106696A TWI512520B (zh) | 2010-03-01 | 2011-03-01 | 偵測對數位電路之攻擊之系統與方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9098700B2 (zh) |
TW (1) | TWI512520B (zh) |
WO (1) | WO2011156021A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI685739B (zh) * | 2017-12-18 | 2020-02-21 | 新唐科技股份有限公司 | 處理故障注入攻擊的安全系統和方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
US9037895B2 (en) * | 2010-10-13 | 2015-05-19 | The Trustees Of Columbia University In The City Of New York | System and methods for silencing hardware backdoors |
US9197653B2 (en) * | 2012-06-05 | 2015-11-24 | Empire Technology Development Llc | Cross-user correlation for detecting server-side multi-target intrusion |
US9063721B2 (en) | 2012-09-14 | 2015-06-23 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9330026B2 (en) * | 2013-03-05 | 2016-05-03 | Qualcomm Incorporated | Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW) |
US9015400B2 (en) | 2013-03-05 | 2015-04-21 | Qualcomm Incorporated | Methods and systems for reducing the amount of time and computing resources that are required to perform a hardware table walk (HWTW) |
WO2014137416A1 (en) | 2013-03-08 | 2014-09-12 | The Trustees Of Columbia University In The City Of New York | Identification of backdoors and backdoor triggers |
US9218488B2 (en) | 2013-08-28 | 2015-12-22 | Globalfoundries U.S. 2 Llc | Malicious activity detection of a processing thread |
US9172714B2 (en) * | 2013-08-28 | 2015-10-27 | Global Foundries U.S. 2 LLC | Malicious activity detection of a functional unit |
US10055587B2 (en) | 2013-12-23 | 2018-08-21 | The Trustees Of Columbia University In The City Of New York | Implementations to facilitate hardware trust and security |
CN106462709A (zh) * | 2014-01-27 | 2017-02-22 | 克洛诺斯赛博科技有限公司 | 自动渗透测试设备、方法和系统 |
US9465938B2 (en) | 2014-09-22 | 2016-10-11 | Qualcomm Incorporated | Integrated circuit and method for detection of malicious code in a first level instruction cache |
US10642981B2 (en) * | 2017-02-20 | 2020-05-05 | Wuxi Research Institute Of Applied Technologies Tsinghua University | Checking method, checking device and checking system for processor |
CN108345787B (zh) * | 2017-02-20 | 2019-04-23 | 清华大学 | 确定处理器安全性的方法、检测装置及系统 |
US10970395B1 (en) * | 2018-01-18 | 2021-04-06 | Pure Storage, Inc | Security threat monitoring for a storage system |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11720714B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11500788B2 (en) | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11625481B2 (en) | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273858A1 (en) * | 2004-06-07 | 2005-12-08 | Erez Zadok | Stackable file systems and methods thereof |
TW200707254A (en) * | 2005-04-26 | 2007-02-16 | Ibm | Method for fast decryption of processor instructions in an encrypted instruction power tm architecture |
TW200741504A (en) * | 2006-04-17 | 2007-11-01 | Winnow Technologies Inc | Malicious attack detection system and an associated method of use |
US20100050266A1 (en) * | 2005-03-31 | 2010-02-25 | Cheng Antonio S | Providing Extended Memory Protection |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237671A (en) | 1986-05-02 | 1993-08-17 | Silicon Graphics, Inc. | Translation lookaside buffer shutdown scheme |
WO1998040833A1 (en) | 1997-03-11 | 1998-09-17 | Advanced Bytes & Rights Limited | Automated formal verification analysis of complex hardware circuits |
US6547364B2 (en) | 1997-07-12 | 2003-04-15 | Silverbrook Research Pty Ltd | Printing cartridge with an integrated circuit device |
US5961644A (en) * | 1997-09-19 | 1999-10-05 | International Business Machines Corporation | Method and apparatus for testing the integrity of computer security alarm systems |
US7168093B2 (en) | 2001-01-25 | 2007-01-23 | Solutionary, Inc. | Method and apparatus for verifying the integrity and security of computer networks and implementation of counter measures |
JP4009437B2 (ja) * | 2001-05-09 | 2007-11-14 | 株式会社ルネサステクノロジ | 情報処理装置 |
US20050138515A1 (en) | 2003-11-05 | 2005-06-23 | Hyduke Stanley M. | Method and apparatus for co-verification of digital designs |
US7663479B1 (en) * | 2005-12-21 | 2010-02-16 | At&T Corp. | Security infrastructure |
US7752006B2 (en) | 2007-06-19 | 2010-07-06 | International Business Machines Corporation | Device, system and method of generating a hardware-verification test case |
IL187045A0 (en) | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Software protection against fault attacks |
-
2011
- 2011-02-28 US US13/580,121 patent/US9098700B2/en active Active
- 2011-02-28 WO PCT/US2011/026516 patent/WO2011156021A2/en active Application Filing
- 2011-03-01 TW TW100106696A patent/TWI512520B/zh not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273858A1 (en) * | 2004-06-07 | 2005-12-08 | Erez Zadok | Stackable file systems and methods thereof |
US20100050266A1 (en) * | 2005-03-31 | 2010-02-25 | Cheng Antonio S | Providing Extended Memory Protection |
TW200707254A (en) * | 2005-04-26 | 2007-02-16 | Ibm | Method for fast decryption of processor instructions in an encrypted instruction power tm architecture |
TW200741504A (en) * | 2006-04-17 | 2007-11-01 | Winnow Technologies Inc | Malicious attack detection system and an associated method of use |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI685739B (zh) * | 2017-12-18 | 2020-02-21 | 新唐科技股份有限公司 | 處理故障注入攻擊的安全系統和方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201209630A (en) | 2012-03-01 |
WO2011156021A9 (en) | 2012-03-08 |
US9098700B2 (en) | 2015-08-04 |
US20130061322A1 (en) | 2013-03-07 |
WO2011156021A2 (en) | 2011-12-15 |
WO2011156021A3 (en) | 2012-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI512520B (zh) | 偵測對數位電路之攻擊之系統與方法 | |
Waksman et al. | Tamper evident microprocessors | |
Arora et al. | Secure embedded processing through hardware-assisted run-time monitoring | |
Chen et al. | Flexible hardware acceleration for instruction-grain program monitoring | |
US9325493B2 (en) | System and methods for silencing hardware backdoors | |
US9177153B1 (en) | Verifying integrity and guaranteeing execution of code on untrusted computer platform | |
US8583880B2 (en) | Method for secure data reading and data handling system | |
US20080034350A1 (en) | System and Method for Checking the Integrity of Computer Program Code | |
CN110048997A (zh) | 处理故障注入攻击的安全系统和方法 | |
Yuce et al. | FAME: Fault-attack aware microprocessor extensions for hardware fault detection and software fault response | |
Milenković et al. | Using instruction block signatures to counter code injection attacks | |
EP1843250B1 (en) | System and method for checking the integrity of computer program code | |
Ragel et al. | Micro embedded monitoring for security in application specific instruction-set processors | |
Malekpour et al. | DoSGuard: Protecting pipelined MPSoCs against hardware Trojan based DoS attacks | |
Taouil et al. | LightRoAD: Lightweight rowhammer attack detector | |
Zhu et al. | Jintide: Utilizing low-cost reconfigurable external monitors to substantially enhance hardware security of large-scale CPU clusters | |
Santos et al. | Leveraging speculative architectures for runtime program validation | |
Katsunuma et al. | Base address recognition with data flow tracking for injection attack detection | |
Wang | Information leakage due to cache and processor architectures | |
Milenković et al. | A framework for trusted instruction execution via basic block signature verification | |
Lantz | Detection of side-channel attacks targeting Intel SGX | |
He | Lightweight mitigation against transient cache side-channel attacks | |
Chen | Exploitable Hardware Features and Vulnerabilities Enhanced Side-Channel Attacks on Intel SGX and Their Countermeasures | |
Ghosh | Trustguard: A containment architecture with verified output | |
Yin et al. | CPU Address-Leakage Transient Execution Attack Detection and Its Countermeasures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |