[go: up one dir, main page]

TW201935306A - 用於安全初始化的策略連結及/或載入之系統和方法 - Google Patents

用於安全初始化的策略連結及/或載入之系統和方法 Download PDF

Info

Publication number
TW201935306A
TW201935306A TW108104323A TW108104323A TW201935306A TW 201935306 A TW201935306 A TW 201935306A TW 108104323 A TW108104323 A TW 108104323A TW 108104323 A TW108104323 A TW 108104323A TW 201935306 A TW201935306 A TW 201935306A
Authority
TW
Taiwan
Prior art keywords
interpretation data
entity
tag
processor
data
Prior art date
Application number
TW108104323A
Other languages
English (en)
Inventor
伊利 柏林
史蒂芬 米爾本
格雷戈里 T 沙利文
安德魯 薩瑟蘭德
Original Assignee
美商多佛微系統公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商多佛微系統公司 filed Critical 美商多佛微系統公司
Publication of TW201935306A publication Critical patent/TW201935306A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/52Binary to binary
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

本發明提供一種包括至少一個處理器之系統,該至少一個處理器經程式化以基於待執行之一策略來識別對應於一實體名稱之一或多個詮釋資料符號;自描述一目標系統之一目標描述來識別與該實體名稱匹配之一實體描述,其中該實體描述描述該目標系統之一實體;以及將一詮釋資料標籤應用至該目標系統之該實體,其中該詮釋資料標籤係基於與如基於該策略所識別之該實體名稱對應之該一或多個詮釋資料符號。

Description

用於安全初始化的策略連結及/或載入之系統和方法
本申請案與用於安全初始化的策略連結及/或載入之系統和方法有關。

相關申請案
本申請案依據35 U.S.C. § 119(e)主張2018年2月2日申請標題為「用於安全初始化之系統及方法(SYSTEMS AND METHODS FOR SECURE INITIALIZATION)」之具有代理人案號D0821.70000US00之美國臨時專利申請案第62/625,822號及2018年2月26日申請標題為「用於安全初始化之系統及方法(SYSTEMS AND METHODS FOR SECURE INITIALIZATION)」之具有代理人案號D0821.70000US01之美國臨時專利申請案第62/635,289號之權益,該等美國臨時專利申請案各自以全文引用之方式併入本文中。
本申請案與以下申請案在同一天申請:
• 國際專利申請案第______號,標題為「用於轉換用於詮釋資料處理之指令之系統及方法(SYSTEMS AND METHODS FOR TRANSFORMING INSTRUCTIONS FOR METADATA PROCESSING)」,具有代理人案號D0821.70001WO00,依據35 U.S.C. § 119(e)主張2018年2月2日申請標題為「用於指令集架構之間的轉譯的系統及方法(SYSTEMS AND METHODS FOR TRANSLATING BETWEEN INSTRUCTION SET ARCHITECTURES)」之具有代理人案號D0821.70001US00之美國臨時專利申請案第62/625,746號、2018年2月26日申請標題為「用於轉換用於詮釋資料處理之指令之系統及方法(SYSTEMS AND METHODS FOR TRANSFORMING INSTRUCTIONS FOR METADATA PROCESSING)」之具有代理人案號D0821.70001US01之美國臨時專利申請案第62/635,319號,及2018年2月2日申請標題為「用於保護中斷服務常式條目之系統及方法(SYSTEMS AND METHODS FOR SECURING INTERRUPT SERVICE ROUTINE ENTRY)」之具有代理人案號D0821.70004US00之美國臨時專利申請案第62/625,802號之權益;及
• 國際專利申請案第______號,標題為「用於快取後互鎖之系統及方法(SYSTEMS AND METHODS FOR POST CACHE INTERLOCKING)」,具有代理人案號D0821.70003WO00,依據35 U.S.C. § 119(e)主張2018年2月2日申請標題為「用於快取後互鎖之系統及方法(SYSTEMS AND METHODS FOR POST CACHE INTERLOCKING)」之具有代理人案號D0821.70003US00之美國臨時專利申請案第62/625,770號及2018年2月26日申請標題為「用於快取後互鎖之系統及方法(SYSTEMS AND METHODS FOR POST CACHE INTERLOCKING)」之具有代理人案號D0821.70003US01之臨時專利申請案第62/635,475號之權益。
上文提及之申請案中之每一者以全文引用之方式併入本文中。
電腦安全性在社會各階層,自個人至企業至政府機構均已變為愈來愈迫切的問題。例如,在2015年,安全性研究人員識別出零日漏洞,其將允許攻擊者經由網際網路侵入Jeep Cherokee之機載電腦系統且控制車輛之儀錶盤功能、轉向、制動,及傳動。在2017年,WannaCry勒索軟體攻擊估計影響全球超過200,000台電腦,從而至少引起數億美元之經濟損失。值得注意地,該攻擊嚴重破壞英國的若干國民健康服務醫院的操作。同一年,美國消費者信用報告機構艾可飛公司(Equifax)的資料外泄曝光人員資料,諸如全名、身分證號碼、出生日期、位址、駕駛執照號碼、信用卡號等。據報導該攻擊影響超過1億4千萬消費者。
安全性專家一直與攻擊者進行追趕遊戲。一旦報告漏洞,安全性專家就爭相修補該漏洞。未能以及時方式修補漏洞(例如,歸因於對資源之較差管理及/或資源之缺乏)之個人及組織變為攻擊者之容易目標。
一些安全性軟體監控電腦上及/或網路內之活動,且尋找可指示攻擊之形態。此方法無法防止惡意程式碼首先被執行。常常,在出現任何可疑形態時已經發生損壞。
根據至少一個態樣,提供一種系統。該系統包含至少一個處理器,該至少一個處理器經程式化以基於待執行之策略來識別對應於實體名稱之一或多個詮釋資料符號;自描述目標系統之目標描述來識別與該實體名稱匹配之實體描述,其中該實體描述描述該目標系統之實體;以及將詮釋資料標籤應用至該目標系統之該實體,其中該詮釋資料標籤係基於與如基於該策略所識別之該實體名稱相對應之該一或多個詮釋資料符號。
在一些具體實例中,該至少一個處理器進一步經程式化以至少部分地藉由在該詮釋資料標籤中包括該一或多個詮釋資料符號與該策略有關之指示,而建構該詮釋資料標籤。
在一些具體實例中,在執行一或多個程式之目標程式碼期間執行該策略;該目標程式碼呈可載入二進位格式;以及該至少一個處理器經程式化以至少部分地藉由使用該詮釋資料標籤之二進位表示來註解該目標程式碼之至少一部分,而將該詮釋資料標籤應用至該實體。
在一些具體實例中,該至少一個處理器進一步經程式化以至少部分地藉由使用該實體描述來識別與該實體相關聯之一或多個目標符號名稱及一或多個位址範圍,而識別待註解之該目標程式碼之該至少一部分;及自該目標程式碼以基於該一或多個位址範圍來識別與該一或多個目標符號名稱匹配之一或多個指令;且註解該目標程式碼之該至少一部分包含使用該詮釋資料標籤之該二進位表示來註解自該目標程式碼所識別之該一或多個指令。
在一些具體實例中,該至少一個處理器進一步經程式化以至少部分地基於該策略及該目標描述來產生初始化規格;且該至少一個處理器經程式化以至少部分地藉由在該初始化規格中包括該實體與該詮釋資料標籤相關聯之指示,而將該詮釋資料標籤應用至該實體。
在一些具體實例中,該至少一個處理器進一步經程式化以將該一或多個詮釋資料符號中之至少一個詮釋資料符號解析成二進位表示;且該至少一個詮釋資料符號之該二進位表示包括於該初始化規格中。
在一些具體實例中,該初始化規格呈可載入二進位格式。
在一些具體實例中,該實體包含硬體實體;該實體描述包含該硬體實體之命名屬性;以及該至少一個處理器經程式化以剖析硬體規格且基於自該硬體規格所提取之資訊而產生該命名屬性。
在一些具體實例中,該實體包含軟體實體;該實體描述包含該軟體實體之命名屬性;以及該至少一個處理器經程式化以基於對該軟體實體之原始程式碼及/或目標程式碼之分析而產生該命名屬性。
根據至少一個態樣,提供一種系統。該系統包含至少一個處理器,該至少一個處理器經程式化以回應於將一段目標程式碼載入至應用程式記憶體中之位置,基於初始化規格識別與該段目標程式碼相關聯之至少一個詮釋資料標籤;及使載入有該段目標程式碼之該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯。
在一些具體實例中,該段目標程式碼包含一或多個可執行指令。
在一些具體實例中,該段目標程式碼包含待由一或多個可執行指令操控之資料。
在一些具體實例中,該至少一個處理器經程式化以至少部分地藉由在標記映射表中創建條目,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯,該條目將該應用程式記憶體中之該位置映射至該至少一個詮釋資料標籤。
在一些具體實例中,該標記映射表中之該條目儲存該至少一個詮釋資料標籤之二進位表示。
在一些具體實例中,該標記映射表中之該條目儲存資訊,其指示儲存有該至少一個詮釋資料標籤之二進位表示之位置。
在一些具體實例中,該資訊包含在詮釋資料記憶體中儲存有該至少一個詮釋資料標籤之二進位表示之位址。
在一些具體實例中,該詮釋資料記憶體與該應用程式記憶體實體上分離。
在一些具體實例中,該資訊包含用於儲存有該至少一個詮釋資料標籤之二進位表示之暫存器之識別符。
在一些具體實例中,在該應用程式記憶體中載入有該段目標程式碼之該位置處於第一位址;儲存有該至少一個詮釋資料標籤之該二進位表示之該位置處於第二位址;以及該標記映射表中之該條目經由位址轉譯將該第一位址映射至該第二位址。
在一些具體實例中,該系統進一步包含策略執行硬體,其中該至少一個處理器經程式化以至少部分地藉由致使該策略執行硬體評估一或多個規則,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯;評估該一或多個規則包含查找該標記映射表以查找對應於該應用程式記憶體中之該位置之條目;以及該策略執行硬體經組態以回應於判定該標記映射表並未已經包括對應於該應用程式記憶體中之該位置之條目,而在該標記映射表中創建將該應用程式記憶體中之該位置映射至該至少一個詮釋資料標籤之該條目。
在一些具體實例中,該至少一個處理器進一步經程式化以將該至少一個詮釋資料標籤解析成至少一個二進位表示;且使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯包含使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤之該至少一個二進位表示相關聯。
在一些具體實例中,該段目標程式碼包含經動態地載入之使用者應用程式之目標程式碼;且該至少一個處理器經程式化以將該至少一個詮釋資料標籤動態地解析成該至少一個二進位表示;及使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤之該至少一個二進位表示動態地相關聯。
在一些具體實例中,該至少一個處理器進一步經程式化以至少部分地藉由驗證該初始化規格上之密碼編譯簽名,而確認該初始化規格來自受信任源;且該至少一個處理器經程式化以僅回應於確認該初始化規格來自受信任源,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯。
在一些具體實例中,該至少一個詮釋資料標籤包含第一詮釋資料標籤;該至少一個處理器進一步經程式化以至少部分地藉由驗證該段目標程式碼上之密碼編譯簽名,而確認該段目標程式碼來自受信任源;及使該段目標程式碼與指示該段目標程式碼來自受信任源之第二詮釋資料標籤相關聯。
在一些具體實例中,該系統進一步包含策略執行硬體,其中該至少一個詮釋資料標籤包含預設詮釋資料標籤;該至少一個處理器進一步經程式化以致使該策略執行硬體評估一或多個規則;且評估該一或多個規則致使該策略執行硬體用另一詮釋資料標籤替換該預設詮釋資料標籤。
根據至少一個態樣,提供一種系統。該系統包含至少一個處理器,該至少一個處理器經程式化以識別與目標系統中之實體相關聯之詮釋資料,其中該詮釋資料包含詮釋資料標籤之二進位表示;使用所儲存資訊以將該二進位表示映射至該詮釋資料標籤之不同表示;及以指示該詮釋資料標籤與該目標系統中之該實體相關聯之方式按人類可讀取形式來顯示該詮釋資料標籤。
在一些具體實例中,該至少一個處理器進一步經程式化以將詮釋資料標籤解析成各別二進位表示;且該所儲存資訊包含自該等二進位表示返回至該等詮釋資料標籤之映射。
在一些具體實例中,該至少一個處理器進一步經程式化以按人類可讀取形式來顯示將該目標系統之複數個實體映射至一或多個詮釋資料標籤之各別組之初始化規格。
在一些具體實例中,該至少一個處理器進一步經程式化以自使用者接收檢查策略違反之請求;及回應於該請求而判定該目標系統之該實體與該策略違反相關。
根據至少一個態樣,提供一種方法,其由先前態樣及具體實例中之任一者之系統來執行。
根據至少一個態樣,提供至少一種電腦可讀取媒體,其上編碼有指令,該等指令在由至少一個處理器執行時致使該至少一個處理器執行如上文所定義之態樣及具體實例之方法。
攻擊者所利用之許多漏洞追溯到資料及可執行指令混植(intermingle)於同一記憶體中之電腦架構設計。此混植允許攻擊者藉由將惡意程式碼偽裝為資料而將惡意程式碼注入至遠端電腦中。例如,程式可將緩衝區分配於電腦之記憶體中以儲存經由網路接收之資料。若該程式接收比該緩衝區可保存之資料更多的資料,但在將所接收的資料寫入至緩衝區中之前並未檢查該資料之大小,則所接收的資料之部分將超出緩衝區邊界寫入至鄰近記憶體中。攻擊者可利用此行為將惡意程式碼注入至鄰近記憶體中。若鄰近記憶體分配用於可執行程式碼,則惡意程式碼最終可由電腦執行。
已經提出使得電腦硬體更具安全性意識之技術。例如,記憶體位置可與用於執行安全性策略之詮釋資料相關聯,且可檢查指令以符合安全性策略。例如,在給定待執行之指令之情況下,可檢查與指令相關聯之詮釋資料及/或與指令之一或多個運算元相關聯之詮釋資料以判定是否應接受指令。另外或替代地,適合的詮釋資料可與指令之輸出相關聯。
圖1展示根據一些具體實例之用於執行策略之例示硬體系統100。在此實例中,硬體系統100包括主機處理器110,其可具有任何合適的指令集架構(instruction set architecture,ISA),諸如精簡指令集計算(reduced instruction set computing,RISC)架構或複雜指令集計算(complex instruction set computing,CISC)架構。主機處理器110可經由寫入互鎖112執行記憶體存取。寫入互鎖112可連接至系統匯流排115,其經組態以在諸如寫入互鎖112、應用程式記憶體120、詮釋資料記憶體125、唯讀記憶體(ROM)130、一或多個周邊裝置135等各種組件之間傳送資料。
在一些具體實例中,由主機處理器110操控(例如,修改、消耗及/或產生)之資料可儲存於應用程式記憶體120中。此類資料在本文中被稱作「應用程式資料」,區別於用於執行策略之詮釋資料。後者可儲存於詮釋資料記憶體125中。應瞭解,應用程式資料可包括由作業系統(OS)操控之資料、OS之指令、由一或多個使用者應用程式操控之資料,及/或該一或多個使用者應用程式之指令。
在一些具體實例中,應用程式記憶體120及詮釋資料記憶體125可實體上分離,且主機處理器110可能無法存取詮釋資料記憶體125。以此方式,即使攻擊者成功將惡意程式碼注入至應用程式記憶體120中且致使主機處理器110執行惡意程式碼,詮釋資料記憶體125亦可能不受影響。然而,應瞭解,本發明之態樣不限於將應用程式資料及詮釋資料儲存於實體上分離之記憶體上。另外或替代地,詮釋資料可與應用程式資料儲存於同一記憶體中,且可使用實施有適合的保護方案的記憶體管理組件以防止執行於主機處理器110上之指令修改詮釋資料。另外或替代地,詮釋資料可與應用程式資料混植於同一記憶體中,且一或多個策略可用於保護詮釋資料。
在一些具體實例中,可提供標記處理硬體140以確保藉由主機處理器110執行之指令符合一或多個策略。標記處理硬體140可包括任何合適的電路組件或電路組件之組合。例如,標記處理硬體140可包括將應用程式記憶體120中之位址映射至詮釋資料記憶體125中之位址之標記映射表142。例如,標記映射表142可將應用程式記憶體120中之位址X映射至詮釋資料記憶體125中之位址Y。此位址Y在本文中被稱作「詮釋資料標記」或僅被稱作「標記」。儲存於位址Y處之值在本文中亦被稱作「詮釋資料標記」或僅被稱作「標記」。
在一些具體實例中,儲存於位址Y處之值又可為位址Z。此類間接定址可重複任一合適次數,且最終可在詮釋資料記憶體125中產生用於儲存詮釋資料之資料結構。此類詮釋資料以及任何中間位址(例如,位址Z)在本文中亦被稱作「詮釋資料標記」或僅被稱作「標記」。
應瞭解,本發明之態樣不限於將位址儲存於詮釋資料記憶體中之標記映射表。在一些具體實例中,標記映射表條目本身可儲存詮釋資料,使得標記處理硬體140能夠存取詮釋資料而無需執行記憶體操作。在一些具體實例中,標記映射表條目可儲存所選位元型樣,其中位元型樣之第一部分可對詮釋資料進行編碼,且位元型樣之第二部分可對詮釋資料記憶體中可儲存有其他詮釋資料之位址進行編碼。此可提供在速度與表達性之間的所需平衡。例如,標記處理硬體140能夠僅使用儲存於標記映射表條目本身中之詮釋資料來迅速檢查某些策略。對於較複雜規則情況下之其他策略,標記處理硬體140可存取儲存於詮釋資料記憶體125中之其他詮釋資料。
再次參看圖1,藉由將應用程式記憶體位址映射至詮釋資料記憶體位址,標記映射表142可在應用程式資料與描述應用程式資料之詮釋資料之間創建相關性。在一個實例中,儲存於詮釋資料記憶體位址Y處且因此與儲存於應用程式記憶體位址X處之應用程式資料相關聯之詮釋資料可指示應用程式資料可為可讀取、可寫入及/或可執行的。在另一實例中,儲存於詮釋資料記憶體位址Y處且因此與儲存於應用程式記憶體位址X處之應用程式資料相關聯之詮釋資料可指示應用程式資料之類型(例如,整數、指標、16位元字組、32位元字組等)。取決於待執行策略,相關於該策略之任何合適詮釋資料可與一段應用程式資料相關聯。
在一些具體實例中,詮釋資料記憶體位址Z可儲存於詮釋資料記憶體位址Y處。與儲存於應用程式記憶體位址X處之應用程式資料相關聯之詮釋資料可儲存於詮釋資料記憶體位址Z處,而不是詮釋資料記憶體位址Y處(或外加詮釋資料記憶體之位址Y處)。例如,詮釋資料符號「RED」之二進位表示可儲存於詮釋資料記憶體位址Z處。藉由將詮釋資料記憶體位址Z儲存於詮釋資料記憶體位址Y中,儲存於應用程式記憶體位址X處之應用程式資料可標記為「RED」。
以此方式,詮釋資料符號「RED」之二進位表示可僅儲存於詮釋資料記憶體125中一次。例如,若儲存於另一應用程式記憶體位址X’處之應用程式資料亦將被標記為「RED」,則標記映射表142可將應用程式記憶體位址X’映射至亦儲存有詮釋資料記憶體位址Z之詮釋資料記憶體位址Y’。
此外,以此方式,可簡化標記更新。例如,若儲存於應用程式記憶體位址X處之應用程式資料在後續時間將被標記為「BLUE」,則詮釋資料記憶體位址Z’可寫入於詮釋資料記憶體位址Y處以替換詮釋資料記憶體位址Z,且詮釋資料符號「BLUE」之二進位表示可儲存於詮釋資料記憶體位址Z’處。
因此,本發明人已認識且瞭解到,具有任何合適長度N之一系列詮釋資料記憶體位址可用於標記,包括N = 0 (例如,其中詮釋資料符號之二進位表示儲存於詮釋資料記憶體位址Y本身處)。
在應用程式資料與詮釋資料之間的相關性(在本文中亦被稱作「標記」)可在任何合適的粒度級別及/或以可變粒度來進行。例如,可逐字組地進行標記。另外或替代地,記憶體中之一區域可映射至單一標記,使得該區域中之所有字組均與相同詮釋資料相關聯。此可有利地減小標記映射表142及/或詮釋資料記憶體125之大小。例如,相較於維持分別對應於位址範圍中之不同位址之多個標記,可針對整個位址範圍維持單一標記。
在一些具體實例中,標記處理硬體140可經組態以將一或多個安全性規則應用至與指令相關聯之詮釋資料及/或與指令之一或多個運算元相關聯之詮釋資料,以判定是否應接受指令。例如,主機處理器110可提取及執行指令,且可將執行指令之結果佇列至寫入互鎖112中。在將該結果寫回至應用程式記憶體120中之前,主機處理器110可將指令類型(例如,作業碼)、儲存有指令之位址、指令所提及之一或多個記憶體位址,及/或一或多個暫存器識別符發送至標記處理硬體140。此暫存器識別符可識別在執行指令時由主機處理器110所使用之暫存器,諸如用於儲存指令之運算元或結果之暫存器。
在一些具體實例中,除了寫入指令或替代寫入指令,還可對破壞性讀取指令進行佇列。例如,嘗試存取破壞性讀取指令之目標位址之後續指令可佇列於非快取記憶體區域中。若判定應允許破壞性讀取指令且當判定應允許破壞性讀取指令時,則佇列指令可經載入以供執行。
在一些具體實例中,可允許繼續進行破壞性讀取指令,且自目標位址讀取之資料可俘獲於緩衝區中。若判定應允許破壞性讀取指令且當判定應允許破壞性讀取指令時,則緩衝區中俘獲之該資料可捨棄。若判定不應允許破壞性讀取指令且當判定不應允許破壞性讀取指令時,則緩衝區中俘獲之該資料可恢復至該目標位址。另外或替代地,可藉由經緩衝資料為後續讀取服務。
應瞭解,本發明之態樣不限於對已經藉由主機處理器所執行之指令(諸如已經被主機處理器之執行管線所引退之指令)來執行詮釋資料處理。在一些具體實例中,可在主機處理器之執行管線之前、期間及/或之後對指令執行詮釋資料處理。
在一些具體實例中,在給定接收自主機處理器110之位址(例如,儲存有指令之位址或指令所提及之位址)之情況下,標記處理硬體140可使用標記映射表142來識別對應標記。另外或替代地,對於接收自主機處理器110之暫存器識別符,標記處理硬體140可自標記處理硬體140內之標記暫存器檔案146存取標記。
在一些具體實例中,若應用程式記憶體位址並不具有標記映射表142中之對應標記,則標記處理硬體140可將查詢發送至策略處理器150。該查詢可包括有疑慮之應用程式記憶體位址,且策略處理器150可回傳用於該應用程式記憶體位址之標記。另外或替代地,策略處理器150可針對包括該應用程式記憶體位址之位址範圍創建新標記映射條目。以此方式,可在與有疑慮之應用程式記憶體位址相關聯之標記映射表142中提供適合標記以供未來參考。
在一些具體實例中,標記處理硬體140可將查詢發送至策略處理器150以檢查是否應允許藉由主機處理器110所執行之指令。該查詢可包括一或多個輸入,諸如指令之指令類型(例如,作業碼)、用於程式計數器之標記、用於提取指令之應用程式記憶體位址之標記(例如,程式計數器所針對之記憶體中之字組)、用於儲存有指令之運算元之暫存器之標記,及/或用於指令所提及之應用程式記憶體位址之標記。在一個實例中,該指令可為載入指令,且指令之運算元可為應用程式記憶體位址,應用程式資料將自該應用程式記憶體位址載入。該查詢尤其可包括用於儲存有應用程式記憶體位址之暫存器之標記以及用於應用程式記憶體位址本身之標記。在另一實例中,該指令可為算術指令,且可存在兩個運算元。該查詢尤其可包括用於儲存有第一運算元之第一暫存器之第一標記及用於儲存有第二運算元之第二暫存器之第二標記。
亦應瞭解,本發明之態樣不限於每次對單一指令執行詮釋資料處理。在一些具體實例中,主機處理器之ISA中之多個指令可例如經由至策略處理器150之單一查詢作為指令束而共同被檢查。此查詢可包括更多輸入以允許策略處理器150檢查指令束中之所有指令。類似地,可經由至策略處理器150之單一查詢來檢查語義上可對應於多個操作之CISC指令,其中該查詢可包括足夠的輸入以允許策略處理器150檢查CISC指令內之所有構成操作。
在一些具體實例中,策略處理器150可包括可組態處理單元,諸如微處理器、場可程式化閘陣列(FPGA),及/或任何其他合適的電路系統。策略處理器150中可能已載入用以描述主機處理器110之允許操作之一或多個策略。回應於來自標記處理硬體140之查詢,策略處理器150可評估策略中之一或多者以判定是否應允許有疑慮之指令。例如,標記處理硬體140可將中斷信號以及關於有疑慮之指令(例如,如上文所描述)之一或多個輸入發送至策略處理器150。策略處理器150可將查詢之該等輸入儲存於工作記憶體中(例如,一或多個佇列中)以供立即或延遲處理。例如,策略處理器150可以某一合適的方式(例如,基於與每一查詢相關聯之優先權旗標)來優先化查詢之處理。
在一些具體實例中,策略處理器150可評估一或多個輸入(例如,一或多個輸入標記)上之一或多個策略以判定是否應允許有疑慮之指令。若該指令未經允許,則策略處理器150可因此通知標記處理硬體140。若該指令經允許,則策略處理器150可計算一或多個輸出(例如,一或多個輸出標記)以回傳至標記處理硬體140。作為一個實例,該指令可為儲存指令,且策略處理器150可計算用於儲存有應用程式資料之應用程式記憶體位址之輸出標記。作為另一實例,該指令可為算術指令,且策略處理器150可計算用於暫存器之輸出標記,暫存器用於儲存執行該算術指令之結果。
在一些具體實例中,策略處理器150可經程式化以執行外加關於評估策略之任務或替代關於評估策略之任務的一或多個任務。例如,策略處理器150可執行關於標記初始化、啟動載入、應用程式載入、對於詮釋資料記憶體125之記憶體管理(例如,廢料收集)、登入、除錯支援,及/或中斷處理之任務。此等任務中之一或多者可在背景下執行(例如,在為來自標記處理硬體140之查詢服務之間執行)。
在一些具體實例中,標記處理硬體140可包括用於將一或多個輸入標記映射至決策及/或一或多個輸出標記之規則快取記憶體144。例如,至規則快取記憶體144中之查詢可類似地建構為至策略處理器150之查詢以檢查是否應允許由主機處理器110所執行之指令。若存在快取命中,則規則快取記憶體144可輸出關於是否應允許指令之決策,及/或一或多個輸出標記(例如,如上文結合策略處理器150所描述)。可使用來自策略處理器150之查詢回應而在規則快取記憶體144中創建此映射。然而,如在一些具體實例中,一或多個映射可提前安置於規則快取記憶體144中,但此提前不是必要的。
在一些具體實例中,規則快取記憶體144可用於提供效能增強。例如,在藉由一或多個輸入標記來查詢策略處理器150之前,標記處理硬體140可首先藉由該一或多個輸入標記來查詢規則快取記憶體144。在快取命中狀況下,標記處理硬體140可藉由來自規則快取記憶體144之決策及/或一或多個輸出標記繼續進行查詢,而無需查詢策略處理器150。此可提供顯著加速。在快取未命中狀況下,標記處理硬體140可查詢策略處理器150且將來自策略處理器150之回應安置於規則快取記憶體144中以供未來可能使用。
在一些具體實例中,若標記處理硬體140判定應允許有疑慮之指令(例如,基於規則快取記憶體144中之命中或規則快取記憶體144中之未命中,隨後以來自策略處理器150指示未發現策略違反之回應),則標記處理硬體140可向寫入互鎖112指示執行指令之結果可寫回至記憶體。另外或替代地,標記處理硬體140可藉由一或多個輸出標記更新詮釋資料記憶體125、標記映射表142,及/或標記暫存器檔案146(例如,如接收自規則快取記憶體144或策略處理器150)。作為一個實例,對於儲存指令,詮釋資料記憶體125可藉由標記映射表142以經由位址轉譯而進行更新。例如,儲存指令所提及之應用程式記憶體位址可用於自標記映射表142查找詮釋資料記憶體位址,且接收自規則快取記憶體144或策略處理器150之詮釋資料可以該詮釋資料記憶體位址而儲存至詮釋資料記憶體125。作為另一實例,當待更新詮釋資料儲存於標記映射表142中之條目中(相較於儲存於詮釋資料記憶體125中)時,可更新標記映射表142中之該條目。作為另一實例,對於算術指令,對應於由主機處理器110所用於儲存執行該算術指令之結果之暫存器之標記暫存器檔案146中之條目可藉由適合的標記進行更新。
在一些具體實例中,若標記處理硬體140判定有疑慮之指令表示策略違反(例如,基於規則快取記憶體144中之未命中,隨後以來自策略處理器150指示已經發現策略違反之回應),則標記處理硬體140可向寫入互鎖112指示執行該指令之結果應被捨棄而非寫回至記憶體。另外或替代地,標記處理硬體140可將中斷發送至主機處理器110。回應於接收到該中斷,主機處理器110可切換至任何合適的違反處理程式碼。例如,主機處理器110可停止、重設、記錄該違反且繼續進行、對應用程式碼及/或應用程式資料執行完整性檢查、通知操作員等。
在一些具體實例中,標記處理硬體140可包括一或多個組態暫存器。此暫存器可經由標記處理硬體140之組態介面(例如,藉由策略處理器150)進行存取。在一些具體實例中,標記暫存器檔案146可實施為組態暫存器。另外或替代地,可存在一或多個應用程式組態暫存器及/或一或多個詮釋資料組態暫存器。
儘管實施細節展示於圖1中及論述於上文中,但應瞭解,本發明之態樣不限於使用任何特定組件或組件之組合,或不限於組件之任何特定配置。例如,在一些具體實例中,策略處理器150之一或多個功能性可由主機處理器110執行。作為實例,主機處理器110可具有不同操作模式,諸如用於使用者應用程式之使用者模式及用於作業系統之特許模式。策略相關程式碼(例如,標記、評估策略等)可與作業系統在相同特許模式下運行,或在不同特許模式下(例如,在對特權升級提供甚至更好保護之情況下)運行。
圖2展示根據一些具體實例之用於執行策略之例示軟體系統200。例如,軟體系統200可經程式化以產生可執行程式碼及/或將可執行程式碼載入至圖1中所展示之例示硬體系統100中。
在圖2中所展示之實例中,軟體系統200包括軟體工具鏈,其具有編譯器205、連結器210,及載入器215。編譯器205可經程式化以將原始程式碼處理成可執行程式碼,其中原始程式碼可呈高階語言且可執行程式碼可呈低階語言。連結器210可經程式化以將由編譯器205所產生之多個目標檔案組合成單一目標檔案以藉由載入器215載入至記憶體(例如,在圖1之實例中之例示應用程式記憶體120)中。儘管未展示,但藉由連結器210所輸出之目標檔案可轉化成合適的格式且儲存於持久性儲存裝置,諸如快閃記憶體、硬碟、唯讀記憶體(ROM)等中。載入器215可自持久性儲存裝置擷取目標檔案,且將目標檔案載入至隨機存取記憶體(RAM)中。
在一些具體實例中,編譯器205可經程式化以產生資訊以用於執行策略。例如,當編譯器205將原始程式碼轉譯成可執行程式碼時,編譯器205可產生關於資料類型、程式語義及/或記憶體佈局之資訊。作為一個實例,編譯器205可經程式化以標示在函式之一或多個指令與實施呼叫習知操作(例如,使一或多個參數自呼叫程式函式傳遞至被呼叫程式函式、使一或多個值自被呼叫程式函式返回至呼叫程式函式、儲存返回位址以指示當被呼叫程式函式將控制返回至呼叫程式函式時在呼叫程式函式之程式碼中在何處恢復執行等)之一或多個指令之間的邊界。例如,此類邊界可在初始化期間用於將某些指令標記為函式序言或函式結語。在運行時,可執行堆疊策略,使得當函式序言指令執行時,呼叫堆疊中之某些位置(例如,儲存返回位址之處)可標記為「訊框」位置,且當函式結語指令執行時,可移除「訊框」標記。堆疊策略可指示實施函式本體(相較於函式序言及函式結語)之指令僅讀取存取「訊框」位置。此可防止攻擊者覆寫返回位址且藉此獲得控制。
作為另一實例,編譯器205可經程式化以執行例如控制流程分析以識別一或多個控制傳送點及各別目的地。此類資訊可用於執行控制流程策略。作為又一實例,編譯器205可經程式化以例如藉由應用諸如指標、整數、浮點數等類型標籤而執行類型分析。此類資訊可用於執行防止誤用(例如,使用浮點數作為指標)之策略。
儘管圖2中未展示,但在一些具體實例中,軟體系統200可包括二進位分析組件,其經程式化以將由連結器210所產生之目標程式碼(相較於原始程式碼)用作輸入,且執行類似於由編譯器205所執行之彼等分析之一或多個分析(例如,控制流程分析、類型分析等)。
在圖2之實例中,軟體系統200進一步包括策略編譯器220及策略連結器225。策略編譯器220可經程式化以將以策略語言編寫之策略轉譯成策略程式碼。例如,策略編譯器220可以C或某一其他合適的程式設計語言來輸出策略程式碼。另外或替代地,策略編譯器220可輸出策略所提及之一或多個詮釋資料符號。在初始化時,此詮釋資料符號可與一或多個記憶體位置、暫存器,及/或目標系統之其他機器狀態相關聯,且可解析成詮釋資料之二進位表示以被載入至該目標系統之詮釋資料記憶體或某一其他硬體儲存裝置(例如,暫存器)中。如上文所論述,詮釋資料之此二進位表示或儲存有該二進位表示之位置之指標有時在本文中被稱作「標記」。
應瞭解,本發明之態樣不限於在載入時解析詮釋資料符號。在一些具體實例中,可(例如,在編譯時或在連結時)靜態地解析一或多個詮釋資料符號。例如,策略編譯器220可處理一或多個適用策略,且將由該一或多個策略所界定之一或多個詮釋資料符號解析成靜態界定二進位表示。另外或替代地,策略連結器225可將一或多個詮釋資料符號解析成靜態界定二進位表示,或儲存靜態界定二進位表示之資料結構之指標。本申請案發明人已認識且瞭解到,靜態地解析詮釋資料符號可有利地減少載入時處理。然而,本發明之態樣不限於以任何特定方式解析詮釋資料符號。
在一些具體實例中,策略連結器225可經程式化以處理目標程式碼(例如,如藉由連結器210之輸出)、策略程式碼(例如,如藉由策略編譯器220之輸出)及/或目標描述,以輸出初始化規格。該初始化規格可由載入器215用於安全地初始化具有一或多個硬體組件(例如,圖1中展示之例示硬體系統100)及/或一或多個軟體組件(例如作業系統、一或多個使用者應用程式等)之目標系統。
在一些具體實例中,該目標描述可包括對複數個命名實體之描述。命名實體可表示目標系統之組件。作為一個實例,命名實體可表示硬體組件,諸如組態暫存器、程式計數器、暫存器檔案、計時器、狀態旗標、記憶體傳送單元、輸入/輸出裝置等。作為另一實例,命名實體可表示軟體組件,諸如函式、模組、驅動器、服務常式等。
在一些具體實例中,策略連結器225可經程式化以搜索該目標描述以識別與策略有關之一或多個實體。例如,該策略可將某些實體名稱映射至對應詮釋資料符號,且策略連結器225可搜索該目標描述以識別具有彼等實體名稱之實體。策略連結器225可自該目標描述識別彼等實體之描述,且使用該等描述以藉由適合的詮釋資料符號來註解藉由連結器210所輸出之目標程式碼。例如,策略連結器225可將讀取標籤應用至可執行與可連結格式(Executable and Linkable Format,ELF)檔案之.rodata區段,將讀取標籤及寫入標籤應用至ELF檔案之.data區段,且將執行標籤應用至ELF檔案之.text區段。此類資訊可用於執行用於記憶體存取控制及/或可執行程式碼保護(例如,藉由檢查讀取、寫入及/或執行特權)之策略。
應瞭解,本發明之態樣不限於將目標描述提供至策略連結器225。在一些具體實例中,除了策略連結器225或替代策略連結器225,還可將目標描述提供至策略編譯器220。策略編譯器220可檢查該目標描述之誤差。例如,若策略中所提及之實體並不存在於該目標描述中,則可藉由策略編譯器220標示誤差。另外或替代地,策略編譯器220還可搜索該目標描述以搜索與待執行之一或多個策略相關的實體,且可產生僅包括對於相關實體之實體描述之經過濾目標描述。例如,策略編譯器220可使待執行策略之「init」陳述式中之實體名稱與該目標描述中之實體描述匹配,且可自該目標描述移除不具有對應「init」陳述式之實體描述。
在一些具體實例中,載入器215可基於由策略連結器225所產生之初始化規格而初始化目標系統。例如,參考圖1之實例,載入器215可將資料及/或指令載入至應用程式記憶體120中,且可使用初始化規格以識別與載入至應用程式記憶體120中之該資料及/或指令相關聯之詮釋資料標籤。載入器215可將初始化規格中之詮釋資料標籤解析成各別二進位表示。然而,應瞭解,本發明之態樣不限於在載入時解析詮釋資料標籤。在一些具體實例中,詮釋資料標籤之範圍在策略連結期間可已知,且因此可在此時例如藉由策略連結器225來解析詮釋資料標籤。此可有利地減少初始化規格之載入時處理。
在一些具體實例中,策略連結器225及/或載入器215可維持詮釋資料之二進位表示返回至詮釋資料標籤之映射。可例如藉由除錯器230使用此映射。例如,在一些具體實例中,可提供除錯器230以顯示初始化規格之人類可讀取版本,其可列出一或多個實體且針對每一實體,列出與實體相關聯之一組一或多個詮釋資料標籤。另外或替代地,除錯器230可經程式化以顯示藉由詮釋資料標籤所註解之組合程式碼,諸如藉由分解藉由詮釋資料標籤所註解之目標程式碼而產生之組合程式碼。此類組合程式碼之實例展示於圖6中且論述於下文。在除錯期間,除錯器230可在執行期間停止程式,且允許以人類可讀取形式檢測實體及/或與實體相關聯之詮釋資料標記。例如,除錯器230可允許檢測策略違反中所涉及之實體及/或造成該策略違反之詮釋資料標記。除錯器230可使用詮釋資料之二進位表示返回至詮釋資料標籤之映射而進行此操作。
在一些具體實例中,習知除錯工具可經擴展以允許審查與策略執行相關之問題,例如上文所述。另外或替代地,可提供獨立策略除錯工具。
在一些具體實例中,載入器215可將詮釋資料標籤之二進位表示載入至詮釋資料記憶體125中,且可將在應用程式記憶體位址與詮釋資料記憶體位址之間的映射記錄於標記映射表142中。例如,載入器215可在標記映射表142中創建條目,其將應用程式記憶體120中儲存有指令之應用程式記憶體位址映射至與詮釋資料記憶體125中儲存有與指令相關聯之詮釋資料之詮釋資料記憶體位址。另外或替代地,載入器215可將詮釋資料儲存於標記映射表142本身中(相較於詮釋資料記憶體125),以允許存取而無需執行任何記憶體操作。
在一些具體實例中,除標記映射表142之外或替代標記映射表142,載入器215可初始化標記暫存器檔案146。例如,標記暫存器檔案146可包括分別對應於複數個實體之複數個暫存器。載入器215可自初始化規格識別與實體相關聯之詮釋資料,且將詮釋資料儲存於標記暫存器檔案146中之各別暫存器中。
再次參考圖1之實例,在一些具體實例中,載入器215可將策略程式碼(例如,如藉由策略編譯器220所輸出)載入至詮釋資料記憶體125中以供策略處理器150執行。另外或替代地,可提供分開的記憶體(圖1中未展示)以供策略處理器150使用,且載入器215可將策略程式碼及/或相關聯資料載入至分開的記憶體中。
在一些具體實例中,詮釋資料標籤可以是基於多個詮釋資料符號。例如,實體可進行多個策略,且可因此與分別對應於不同策略之不同詮釋資料符號相關聯。本申請案發明人已認識且瞭解到,可能需要藉由載入器215將同一組詮釋資料符號解析為同一二進位表示(其有時在本文中被稱作「典型」表示)。例如,詮釋資料標籤{A,B,C}及詮釋資料標籤{B,A,C}可藉由載入器215解析為同一二進位表示。以此方式,語法上不同但語義上相等之詮釋資料標籤可具有相同二進位表示。
本申請案發明人已進一步認識且瞭解到,可能需要確保詮釋資料之二進位表示在詮釋資料儲存裝置中並不重複。例如,如上文所論述,圖1之實例中之例示規則快取記憶體144可將輸入標記映射至輸出標記,且在一些具體實例中,輸入標記可以是儲存有詮釋資料之二進位表示之詮釋資料記憶體位址,相較於二進位表示本身。本申請案發明人已認識且瞭解到,若詮釋資料之同一二進位表示儲存於兩個不同詮釋資料記憶體位址X及Y處,則規則快取記憶體144可能無法「辨別」詮釋資料記憶體位址Y,即使規則快取記憶體144已經儲存對於詮釋資料記憶體位址X之映射。此可能導致大量不必要的規則快取未命中,這會降低系統效能。
此外,本申請案發明人已認識且瞭解到,在詮釋資料之二進位表示與其儲存位置之間的一對一對應性可有助於詮釋資料比較。例如,相較於比較詮釋資料之二進位表示,兩段詮釋資料之間的等同性可僅藉由比較詮釋資料記憶體位址而判定。此可引起顯著效能改良,尤其當二進位表示較大(例如,許多詮釋資料符號封裝於單一詮釋資料標籤中)時。
因此,在一些具體實例中,載入器215可在儲存詮釋資料之二進位表示(例如,儲存至詮釋資料記憶體125中)之前檢查是否已經儲存有詮釋資料之二進位表示。若已經儲存有詮釋資料之二進位表示,而非再次將其儲存在不同儲存位置處,則載入器215可指代現有儲存位置。可在啟動時及/或在啟動之後載入程式時進行此檢查(在具有或不具有動態連結之情況下)。
另外或替代地,可在由於評估一或多個策略(例如,藉由例示策略處理器150)而創建詮釋資料之二進位表示時執行類似檢查。若已經儲存有詮釋資料之二進位表示,則可使用提及之現有儲存位置(例如,安置於例示規則快取記憶體144中)。
在一些具體實例中,載入器215可創建將雜湊值映射至儲存位置之雜湊表。在儲存詮釋資料之二進位表示之前,載入器215可使用雜湊函數以將詮釋資料之二進位表示減小為雜湊值,且檢查雜湊表是否已經含有與雜湊值相關聯之條目。若雜湊表含有與雜湊值相關聯之條目,則載入器215可判定已經儲存有詮釋資料之二進位表示,且可自該條目擷取關於詮釋資料之二進位表示之資訊(例如,詮釋資料之二進位表示之指標或該指標之指標)。若雜湊表並非已經含有與雜湊值相關聯之條目,則載入器215可儲存詮釋資料之二進位表示(例如,詮釋資料記憶體中之暫存器或位置),在雜湊表中創建與雜湊值相關聯之新條目,且將適合的資訊儲存於新條目中(例如,暫存器識別符、詮釋資料記憶體中詮釋資料之二進位表示之指標、該指標之指標等)。然而,應瞭解,本發明之態樣不限於使用雜湊表以用於追蹤已經儲存之詮釋資料之二進位表示。另外或替代地,可使用其他資料結構,諸如曲線圖資料結構、有序清單、無序清單等。可基於任何合適準則或準則之組合,諸如存取時間、記憶體用途等而選擇任何合適資料結構或資料結構之組合。
應瞭解,上文引入且下文更詳細論述之技術可以多個方式中之任一者實施,由於技術不限於任何特定實施方式。本文中僅僅出於例示目的而提供實施細節之實例。此外,可個別地或以任何合適組合形式使用本文中所記載之技術,由於本發明之態樣不限於使用任何特定技術或技術之組合。
例如,儘管本文中論述包括編譯器(例如,圖2之實例中之例示編譯器205及/或例示策略編譯器220)之實例,但應瞭解,本發明之態樣不限於此。在一些具體實例中,軟體工具鏈可實施為解譯器。例如,可實施延遲初始化方案,其中一或多個預設符號(例如,「未初始化(UNINITIALIZED)」可在啟動時用於標記,且策略處理器(例如,圖1之實例中之例示策略處理器150)可評估一或多個策略及以即時方式解析該一或多個預設符號。
本申請案發明人已認識且瞭解到,安全性策略之有效性可取決於當啟動目標系統時及/或當將應用程式載入至記憶體中以供執行時的適當標記。因此,本文中描述有用於描述及實現安全初始組態之技術。
在一些具體實例中,可提供策略語言以用於描述在詮釋資料符號與跨越執行階段系統之各種實體(諸如硬體實體及/或軟體實體)之間的相關性。例如,策略語言可用於編寫將實體名稱映射至詮釋資料符號之策略。
在一些具體實例中,實體名稱可僅識別系統組件,諸如本地端記憶體、晶片外記憶體、處理器暫存器檔案等。此等組件之實施細節可提供於目標描述中。例如,用於特定目標系統之目標描述可提供目標系統之實施細節,諸如暫存器檔案之大小、組態暫存器之索引數目,及/或待載入記憶體中之一段軟體程式碼之位址範圍。以此方式,將實體名稱映射至詮釋資料符號之策略可易於跨越不同目標系統再使用(例如,藉由組合策略與不同目標描述)。
本申請案發明人已進一步認識且瞭解到,若攻擊者能夠控制載入器程式,則攻擊者能夠藉由使用載入器程式修改詮釋資料及/或策略程式碼之能力而阻止安全性策略。因此,在一些具體實例中,可提供確保載入器程式之安全之策略。
圖3展示根據一些具體實例之用於確保載入器程式之安全之例示策略300。例如,策略300可以策略語言編寫,且可用於確保圖2之實例中之例示載入器215之安全。
在圖3之實例中,策略300包括複數個區段。區段305可表明一或多個詮釋資料符號,區段310可表明參考在區段305中所表明之一或多個詮釋資料符號之一或多個規則,且區段315可將一或多個實體名稱映射至區段305中所表明之一或多個詮釋資料符號。
在一些具體實例中,在給定一種類型的指令(例如,作業碼)及與該指令相關聯之一或多個輸入詮釋資料符號之情況下,規則可指示是否應允許指令。另外或替代地,該規則可指示一或多個輸出詮釋資料符號。例如,該規則可指示若允許該指令,則一或多個輸出詮釋資料符號與執行該指令之結果相關聯。
在一些具體實例中,可將一或多個規則應用至將資料及/或指令載入至應用程式記憶體中之載入器程式,及/或初始化詮釋資料記憶體中之對應詮釋資料。作為一個實例,可提供一或多個規則以有助於創建詮釋資料標記及/或標記與載入至應用程式記憶體中之該資料及/或指令之相關性。作為另一實例,可提供一或多個規則以保護載入器免於攻擊及誤用。例如,載入器程式碼可與指定詮釋資料標記(例如,「LoaderAllow」)相關聯。可禁止不具有該標記之指令存取與載入器相關聯之一或多個記憶體區域。
在一些具體實例中,在本文中被稱作「詮釋資料調色板」之應用程式記憶體區域可經分配用於創建詮釋資料標記。此區域可如同畫家之具有複數種原色以按任何合適組合混合在一起的調色板。例如,儲存於應用程式記憶體120中之詮釋資料調色板中之每一字組可為零(或某一其他預設值),且字組之記憶體位置可與詮釋資料記憶體125中之基元詮釋資料標記相關聯。每一基元詮釋資料標記可對應於策略所提及之詮釋資料符號(例如,「Read」、「Write」、「Execute」、「LoaderAllow」、「LoaderCompose」、「LoaderApply」、「loadGrp」、「storeGrp」、「composeGrp」等)。另外或替代地,字組之記憶體位置可與經指定詮釋資料標記(例如,「MetadataPalette」)相關聯以指示該位置在詮釋資料調色板區域內。
在一些具體實例中,為了自兩個基元標記建構複合詮釋資料標記,載入器可經程式化以讀取儲存於分別對應於兩個基元標記之兩個詮釋資料調色板位置中之值,且對彼等值執行第一運算。來自詮釋資料調色板位置之讀數可使規則與待評估讀數相關聯,這可移除「MetadataPalette」標記。例如,儲存讀取自藉由{MetadataPalette,A}標記之位置之值的暫存器可標記為{A}。
在一些具體實例中,讀取自兩個詮釋資料調色板位置之值可為零,第一運算可為按位元或運算,使得第一運算之結果亦為零。此「虛設」運算可使規則與待評估第一運算相關聯,這可引起新標記之創建及新標記與儲存結果之暫存器之相關性。例如構成{A}及{B}可導致暫存器被標記為{A,B}。
在一些具體實例中,載入器可對第一運算之結果及讀取自待由複合標記所標記之應用程式記憶體位置之值執行第二運算,且將第二運算之結果寫回至待標記應用程式記憶體位置中。例如,第二運算亦可為按位元或運算,使得第二運算之結果與讀取自待標記應用程式記憶體位置之值相同。同樣,儘管第二運算為「虛設」,但執行第二運算可使規則與待評估第二運算相關聯,這可藉由複合標記(例如{A,B})標記儲存第二運算之結果之暫存器。
將結果寫回至記憶體可使規則與待評估寫入相關聯,這可藉由複合標記(例如,{A,B})標記應用程式記憶體位置。
返回至圖3之實例,策略300之區段310包括待按所示次序加以應用之五個規則。
• 第9行之規則指示允許具有「LoaderAllow」標記之載入指令讀取具有「MetadataPalette」標記之記憶體位置。當讀取記憶體位置時,除了移除「MetadataPalette」標記之外,儲存讀取自該記憶體位置之值之暫存器可與該記憶體位置具有相同標記。
• 第10行之規則指示允許具有「LoaderAllow」標記之儲存指令將儲存於暫存器中之任何值寫入至記憶體中之任何位置。寫入有該值之記憶體位置與標記相關聯,該標記和儲存該值之暫存器的標記相同。
• 第11行之規則指示並不允許不具有「LoaderAllow」標記之載入指令讀取具有「MetadataPalette」標記之任何記憶體位置(在此實例中,只有在第9行不適用時才抵達第11行)。
• 第12行之規則指示並不允許不具有「LoaderAllow」標記之儲存指令寫入具有「MetadataPalette」標記之任何記憶體位置(在此實例中,只有在第10行不適用時才抵達第12行)。
• 第13行之規則指示組成指令之結果具有一組一或多個標記,亦即兩個組之聯合,亦即第一組之第一運算元之一或多個標記及第二組之第二運算元之一或多個標記。
在一些具體實例中,可認為某些指令類型(例如,作業碼)彼此足夠類似,且因此可出於執行策略目的而分組在一起。例如,可基於被稱作「loadGrp」之群組中之任何指令類型而觸發策略300之第9行,可基於被稱作「storeGrp」之群組中之任何指令類型而觸發策略300之第10行,等等。
在一些具體實例中,策略語言可具有群組規格區段,其允許使用者界定任何一或多個指令之任何所需分組。策略連結器(例如,圖2之實例中之例示策略連結器225)可經程式化以使在處理目標程式碼時遇到之指令與由策略編譯器產生之初始化規格中指示之一或多個群組匹配。策略連結器225可接著藉由指示該等指令所屬之各別群組之詮釋資料標籤而註解該等指令。以此方式,策略編譯器可為ISA無關的,而使得ISA相依與策略連結器匹配。
以下為RISC-V指令集架構中之一些指令類型之例示分組。應瞭解,僅僅出於說明目的而提供此等作業碼及作業碼群組。本發明之態樣不限於使用任何特定ISA,或作業碼之任何特定分組。
• branchGrp(RS 1:op1, RS2:op2 -> )
○ beq, bne, blt, bge, bltu, bgeu
• immArithGrp(RS1:op1 -> RD:res)
○ addi, slli, slti, sltiu, xori, srli, srai, ori, andi, addiw, slliw, srliw, sraiw,
• arithGrp(RS1:op1, RS2:op2 -> RD:res)
○ add, sub, sll, slt, sltu, xor, srl, sra, or, and, addw, subw, sllw, srlw, sraw
• loadGrp(RS1:addr, MEM:mem -> RD:res)
○ lb, lh, lw, ld, lbu, lhu, lwu
• storeGrp(RS1:addr, RS2:val, MEM:mem -> MEM:mem)
○ sb, sh, sw, sd
圖4展示根據一些具體實例之由策略編譯器輸出之例示策略程式碼400。例如,策略程式碼400可為藉由圖2之實例中之例示策略編譯器220來編譯圖3中展示之例示策略300之第12行之結果。
在圖4之實例中,策略程式碼400之第405行可例如藉由檢查指令是否已與詮釋資料標籤「og_dover_riscv_storeGrp」相關聯而檢查輸入指令是否為儲存指令,其可指示該指令是否屬於儲存指令之群組。另外或替代地,可提供硬體區塊以將指令分類成諸如儲存、載入、算術、分支等群組。
在一些具體實例中,策略程式碼400之第410行可檢查輸入指令是否正嘗試存取與「MetadataPalette」標記相關聯之記憶體位置。若如此,則可明確地回傳故障。否則,可回傳隱含故障,其可致使評估下一規則(例如,圖3中之第13行)。
應瞭解,本發明之態樣不限於藉由將策略編譯成策略程式碼而實施策略。另外或替代地,可藉由程式化FPGA,及/或將規則直接載入至規則快取記憶體中而實施策略(相較於由於執行策略程式碼而將規則載入至規則快取記憶體中)。
返回至圖3之實例,策略300之區段315包括複數個陳述式,每一陳述式將實體名稱映射至一或多個詮釋資料符號。如下文所解釋,策略連結器(例如,圖2之實例中之例示策略連結器225)可使此陳述式中之實體名稱與表示待受保護系統組件之實體匹配,諸如作業系統之載入器程式之函式。關鍵字(例如,「init」)可用於指示由實體名稱所表示之實體將藉由遵循該實體名稱之一或多個詮釋資料符號進行初始化。例如,第16行可指示具有名稱「dover.Kernel.Code.ApplyTag.apply_tags_load_taga」之實體將藉由詮釋資料符號「LoaderAllow」進行初始化。
如上文所論述,在一些具體實例中,實體名稱可僅識別諸如本地端記憶體、晶片外記憶體、處理器暫存器檔案等之系統組件。在給定待確保安全之特定目標系統之情況下,目標系統之一或多個組件之實施細節可提供於目標描述中。該目標描述可由策略連結器(例如,圖2之實例中之例示策略連結器225)用於藉由詮釋資料符號來註解目標程式碼。圖5示意性地展示根據一些具體實例之例示目標描述500。
在一些具體實例中,目標描述500可包括分別對應於該目標系統之複數個組件之複數個命名實體之描述。實體描述可被組織成複數個模組。例如,在圖5中所展示之實例中,該目標描述500包括硬體實體模組510、軟體實體模組520、類別實體模組530、轉換實體模組540等。一些模組可包括複數個子模組。例如,硬體實體模組510可包括ISA實體模組512、系統單晶片(SOC)實體模組514等;軟體實體模組520可包括OS實體模組522、使用者應用程式實體模組524、建置系統實體模組526等;且類別實體模組530可包括軟體類別實體模組532、硬體類別實體模組534等。
在一些具體實例中,各種模組可經選擇及組合以描述不同目標系統。例如,複數個不同ISA實體模組可為分別對應於不同ISA而可取用。類似地,複數個不同OS實體模組可為分別對應於不同作業系統而可取用。在給定特定目標系統之情況下,適合的ISA實體模組可選自可取用的ISA實體模組,且適合的OS實體模組可選自可取用的OS實體模組。可接著將所選模組組合成對於特定目標系統之目標描述。以此方式,針對一個目標系統製備之實體描述可易於再用於另一目標系統。
命名實體可表示目標系統之硬體及/或軟體之任何態樣。實體之非限制性實例提供於下文中。
在一些具體實例中,硬體實體模組510可描述晶片上之一或多個狀態元件,在啟動時針對該一或多個狀態元件初始化詮釋資料。此類狀態元件之實例包括但不限於以下各者。
• ISA實體模組512可包括基於該目標系統之指令集架構之一或多個實體。此類實體可表示具有待受保護之狀態資訊之硬體實施之態樣,諸如組態暫存器、程式計數器、暫存器檔案、計時器、狀態旗標等。
• SOC實體模組514可包括表示具有待受保護之狀態資訊之晶片級特徵之一或多個實體,諸如晶片上記憶體、組態暫存器、功能區塊、記憶體傳送單元、I/O裝置等。
在一些具體實例中,軟體實體模組520可描述與執行階段軟體相關之一或多個狀態元件,在啟動時針對該一或多個狀態元件初始化詮釋資料。此類狀態元件之實例包括但不限於以下各者。
• OS實體模組522可包括表示作業系統特徵之一或多個實體,諸如函式、模組、驅動器、服務常式等。
• 使用者應用程式實體模組524可包括一或多個實體,諸如函式、模組、驅動器、服務常式等。
• 建置系統實體模組526可包括表示具有可機器載入資料之建置系統特徵之一或多個實體,諸如具有可執行程式碼區段(例如,.text)、初始化資料區段(.data)等之可執行與可連結格式(ELF)檔案。
本申請案發明人已認識且瞭解到,出於標記目的將某些硬體特徵及/或軟體特徵共同分組成一類可為有益的。例如,在初始化期間,呈一類別之所有硬體特徵及/或軟體特徵可與同一組一或多個詮釋資料符號相關聯。任何合適準則或準則之組合可用於界定類別實體。在一些具體實例中,類別實體模組530可包括類別實體之以下非限制性實例。
• 軟體類別實體模組532可包括分別表示所有函式之一或多個實體,所有函式具有與某一正規表達式匹配之名稱、所有軟體實體駐存於某一記憶體範圍中等。
• 硬體類別實體模組534可包括分別表示所有暫存器之一或多個實體,所有暫存器具有與某一正規表達式匹配之名稱、所有暫存器屬於某一類型(例如,所有組態暫存器)、所有暫存器在某一位址範圍內等。
• 表示滿足某一準則之所有硬體特徵及軟體特徵之實體,諸如具有以某一前綴開始之名稱。
• 表示與用於執行特定策略相關之所有硬體特徵及/或軟體特徵之實體。
在一些具體實例中,類別實體可藉由策略連結器(例如,圖2之實例中之例示策略連結器225)被詳述為多個實體。作為一個實例,類別實體表達式可表示具有32個條目之暫存器檔案,且策略連結器225可將該表達式評估成32個表達式,各自表示各別暫存器。作為另一實例,類別實體表達式可表示八個組態暫存器,包含用於四個處理器模式中之每一者之在起始於某一位址(例如,0x1fc000)之16位元組邊界上對準之兩個組態暫存器。策略連結器225可將該表達式評估成八個表達式,各自表示適合的位址處(例如,距起始位址16位元組之某一合適倍數之偏移)之各別組態暫存器。因此,類別實體可用於以緊湊方式描述目標系統中之重複結構。作為另一實例,類別實體表達式可包括型樣(例如,屬於特定程式庫之所有函式、晶片上所列舉的所有通用非同步接收器-發射器(UART)裝置等)之描述。策略連結器225可發現到該目標系統之所有實體與類別實體表達式中之型樣匹配。
在圖5中所展示之實例中,該目標描述500之轉換實體模組540包括表示一或多個轉換之一或多個實體,其可在編譯之前或期間應用至軟體程式碼以促進更多策略中之一者之執行。例如,策略可指示應在執行一段程式碼之前滿足關於詮釋資料之某一條件。為了符合策略,一或多個指令可前置於該段程式碼(例如,經由編譯器修改及/或應用程式二進位重寫)。該一或多個經前置指令可被設計成不引起任何應用程式資料之改變(例如,NOP指令,或應用至輸入字組及常數0之邏輯或運算,由此返回輸入字組本身)。然而,執行該一或多個經前置指令可致使評估一或多個規則(例如,藉由例示標記處理硬體140),由此實現詮釋資料中之一或多個改變以滿足策略設定之條件。
儘管命名實體之模組之實例展示於圖5中且論述於本文中,但應瞭解,本發明之態樣不限於使用任何特定模組,或根本不限於使用任何模組。並且應瞭解,可以任何合適方式創建目標描述。作為實例,實體可由使用者界定。作為另一實例,可提供軟體工具以自動地剖析硬體規格且提取硬體實體(例如程式計數器、組態暫存器等)。另外或替代地,可提供軟體工具以自動地剖析軟體原始程式碼且提取軟體實體(例如命名函式實體、可變實體等)。作為另一實例,一或多個實體可藉由編譯、連結及/或載入程序(例如執行階段堆疊及堆積樹、ELF區段等)及/或其他分析工具(例如流程圖)而界定。
在一些具體實例中,階層式名稱空間可用於提供實體名稱,使得每一實體可經唯一地識別。此可有助於自實體名稱至詮釋資料符號之映射(例如,如圖3之實例中之例示策略300之區段315中所示)。階層式實體名稱之實例提供於下文中。
• ISA實體
○ dover.riscv.User.PC
○ dover.riscv.User.Reg
• SOC實體
○ dover.SOC.IO.Flash
○ dover.SOC.CSR.MTVec
• OS實體
○ dover.Kernel.MemoryMap.UserStack
○ dover.Kernel.MemoryMap.UserHeap
○ dover.Kernel.MemoryMap.Default
○ dover.Kernel.Code.ElfSection. SHF_WRITE
○ dover.Kernel.Code.ElfSection.SHF_ALLOC
○ dover.Kernel. Code.ApplyT ag.my_function
• 執行階段程式庫實體
○ dover.Tools.RTL.memcpy
在一些具體實例中,目標描述中之命名實體可具有描述如以硬體實現之實體之一或多個相關聯命名屬性。此類資訊可由策略連結器及/或載入器(例如,圖2之實例中之例示策略連結器225及/或載入器215)以用於安全地初始化目標系統。
在一些具體實例中,可提供軟體工具以自動地剖析硬體規格且提取關於一或多個硬體實體之資訊(例如,暫存器檔案之大小、組態暫存器之索引數目等)。所提取資訊可包括於目標描述中,例如作為與該一或多個硬體實體相關聯之一或多個屬性。
在一些具體實例中,軟體實體可表示待載入至記憶體中之程式碼及/或資料之單元。可提供軟體工具以自動地分析軟體程式碼(例如,原始程式碼及/或目標程式碼)且提取關於一或多個軟體實體之資訊。所提取資訊可包括於目標描述中,例如作為與該一或多個軟體實體相關聯之一或多個屬性。作為實例,描述軟體實體之屬性可包括駐存有軟體實體之程式碼及/或資料之位址範圍。此位址範圍可依據偏移來提供,此偏移可用於在實際上將該程式碼及/或資料載入至記憶體中(例如,藉由圖2之實例中之例示載入器215)時判定絕對記憶體位址。
另外或替代地,一或多個軟體實體之屬性可自一或多個構建程序符號表及/或使用一或多個二進位分析工具、程式碼分析工具,及/或基於編譯器之程式碼分析工具來提取。
如上文所論述(例如,結合圖3之實例),在一些具體實例中,策略可經由「init」陳述式將實體名稱映射至對應詮釋資料符號。策略連結器(例如,圖2之實例中之例示策略連結器225)可經程式化以搜索目標描述以識別具有策略中所提及之實體名稱之實體。例如,對於策略中之每一「init」陳述式,策略連結器225可使「init」陳述式中之實體名稱與該目標描述中之實體匹配。若未發現匹配實體,則策略連結器225可輸出錯誤消息。若發現匹配實體,則策略連結器225可將「init」陳述式與實體結合。另外或替代地,策略連結器225可自該目標描述識別實體之描述,且可使用該描述以藉由來自「init」陳述式之一或多個詮釋資料符號來註解對應於實體之目標程式碼。
在一些具體實例中,策略連結器225可將初始化規格格式化成適合於由載入器215使用之形式。例如,該初始化規格可經格式化以變為一或多個二進位檔案,以便經由後段構建程序而流送至載入器215。然而,如在一些具體實例中,並不需要可將初始化規格單獨地提供至載入器215。
再次參考圖2之實例,在一些具體實例中,策略連結器225可使詮釋資料標籤與藉由編譯器205所輸出之目標程式碼檔案中之指令及/或資料相關聯。(如上文所論述,詮釋資料標籤可提供對一或多個策略所提及之一組一或多個詮釋資料符號之緊湊編碼。)詮釋資料標籤與指令及/或資料之相關性可以任何合適方式進行。
例如,ELF格式可允許在目標檔案內創建新區段以保存任意格式化之資料。可在目標檔案中添加用於詮釋資料之區段,且目標檔案中之每一程式碼或資料字組可具有詮釋資料區段中之對應詮釋資料標籤。以此方式,藉由策略連結器225進行之詮釋資料註解可傳遞通過連結器210且藉由連結器210加以聚合。另外或替代地,策略連結器225可使詮釋資料標籤與藉由編譯器205所輸出之目標程式碼檔案中之指令及/或資料相關聯。
在一些具體實例中,策略連結器225可使用策略中之一或多個「init」陳述式(其將實體名稱映射至對應詮釋資料符號)、策略中所指示之指令之一或多個分組(例如,在群組規格區段中)、及/或目標規格中之一或多個實體描述,以創建用於目標程式碼檔案中之指令及/或資料之詮釋資料標籤。例如,策略連結器225可自策略之「init」陳述式識別實體名稱且使用實體名稱以查找該目標描述中之實體描述。策略連結器225可接著使用實體描述以定位目標程式碼檔案中之元件,且使適合的詮釋資料標籤與目標程式碼檔案中之該等指令及/或資料相關聯。
圖6展示根據一些具體實例之已經藉由詮釋資料標籤所註解之例示組合程式碼600。例如,組合程式碼600可藉由分解藉由詮釋資料標籤所註解之目標程式碼(例如,具有添加之詮釋資料區段之目標程式碼檔案)而產生。由於此類目標程式碼可能並非人類可讀取,因此本文中提供組合程式碼600以說明關於藉由詮釋資料標籤來註解目標程式碼之各種概念。此外,如上文所論述,除錯工具(例如,圖2中展示之例示除錯器230)可顯示藉由分解以詮釋資料標籤所註解之目標程式碼而產生之人類可讀取組合程式碼。
在圖6之實例中,組合程式碼600包括分別對應於複數個指令之複數行。可將複數個標示插入至組合程式碼600中以標示某些函式開始之位置。例如,可插入標示605以指示「apply_md」函式開始之處,可插入標示610以指示「apply_md_compose_loop」函式開始之處,且可插入標示615以指示「apply_md_write_mem」函式開始之處。
在一些具體實例中,組合程式碼600中之每一行可包括複數欄。例如,組合程式碼600可由目標檔案之摘錄產生,且最左欄可包括自目標檔案之起點偏移之位址(例如,如圖6中之620處所示之「424」)。接下來三欄可分別包括指令之碼字、助憶符,及一或多個參數(例如,如圖6中之625、630及635處所示之「0002a783」、「lw」,及「a5,0(t0)」)。最右欄可包括藉由策略連結器(例如,圖2之實例中之例示策略連結器225)所應用至指令之詮釋資料標籤。
在一些具體實例中,藉由策略連結器所應用之詮釋資料標籤可基於策略中所表明之詮釋資料符號。例如,參考圖3之實例,詮釋資料符號「LoaderAllow」表明於例示策略300中。策略編譯器220可例如藉由添加前綴以指示策略名稱(例如,「dover.loader」)而自詮釋資料符號「LoaderAllow」建構階層式詮釋資料標籤。
再次參考圖3之實例,策略300中之「init」陳述式將實體名稱「dover.Kernel.Code.ApplyTag.apply_tags_load_taga」映射至詮釋資料符號「LoaderAllow」。策略連結器225可使名稱「dover.Kernel.Code.ApplyTag.apply_tags_load_taga」與實體及目標描述中之對應描述匹配,且可使用該描述以識別待藉由詮釋資料符號「LoaderAllow」所註解之目標程式碼中之一或多個指令。作為一個實例,實體描述可指示駐存於位址範圍0000 0424至0000 042f中之指令與實體相關聯,該實體與名稱「dover.Kernel.Code.ApplyTag.apply_tags_load_taga」相結合。作為另一實例,實體描述可指示在標示<apply_md>與下一標示之間的指令與實體相關聯,該實體與名稱「dover.Kernel.Code.ApplyTag.apply_tags_load_taga」相結合。策略連結器225可在軟體程式庫(例如,如由圖2之實例中之例示編譯器205及/或連結器210產生)中查找標示<apply_md>以識別位址範圍0000 0424至0000 042f。策略連結器225可接著分析在該範圍內所發現之指令,以判定是否應藉由額外詮釋資料來註解該等指令。例如,一或多個指令可係函式序言或函式結語之部分,且因而應藉由詮釋資料符號來註解以用於堆疊策略。
在一些具體實例中,詮釋資料標籤可基於不同策略中所表明之複數個詮釋資料符號。例如,實體可進行多個不同策略且因此被提及於多個不同「init」陳述式中。儘管如此,單一詮釋資料標籤可應用至實體,且可隨後解析成二進位表示(例如,典型表示,如上文所論述)。以此方式,僅可維持一個詮釋資料記憶體位址,即使該實體將與多個詮釋資料符號相關聯。如此可減小標記映射表(例如,圖1之實例中之例示標記映射表142)之大小及/或處理時間(例如,藉由圖1之實例中之標記處理硬體140)。
在一些具體實例中,用於儲存詮釋資料標籤之二進位表示之集合的詮釋資料記憶體之量可藉由建構詮釋資料標籤實際上使用到之二進位表示之表而減小。替代儲存二進位表示之集合,可將索引之集合儲存至表中。
本申請案發明人已認識且瞭解到,可能需要使詮釋資料符號與指令合理地相關聯,以例如減小用於詮釋資料之儲存裝置之量及/或加速詮釋資料處理。因此,在一些具體實例中,策略連結器225可經程式化以識別將使參考詮釋資料符號之一或多個規則觸發之指令,且僅將對應詮釋資料標籤應用至彼等指令。例如,參考圖3之實例,詮釋資料符號「LoaderAllow」在規則中被提及於第9及10行,且分別藉由群組「loadGrp」及「storeGrp」中之指令觸發彼等規則。因此,詮釋資料符號「LoaderAllow」與位址000 0424處之載入指令相關聯,但不與位址0000 0428處之算術指令或位址0000 042c處之分支指令相關聯,即使算術指令及分支指令與載入指令(亦即,「apply_md」函式)為同一軟體實體之部分。
圖7展示根據一些具體實例之用於將可執行程式碼載入電腦系統中之例示程序700。例如,參考圖2之實例,程序700可由載入器215執行以將資料及/或指令載入至應用程式記憶體120中,及/或初始化詮釋資料記憶體125中之標記以用於資料及/或指令。
在圖7之實例中,程序700包括兩個階段,啟動載入及動態載入。此等階段中之一者或兩者可由圖2之實例中之載入器215來執行。例如,載入器215可包括啟動載入器及動態載入器。在一些具體實例中,動態載入器可以是作業系統之一部分。然而,應瞭解,本發明之態樣不限於具有作為作業系統之一部分之動態載入器。
在一些具體實例中,啟動載入器及動態載入器可由實體上分離之處理器來執行。例如,啟動載入器可藉由圖1之實例中之例示策略處理器150來執行,而動態載入器可藉由例示主機處理器110來執行。然而,應瞭解,本發明之態樣不限於以分開的處理器來執行啟動載入器及動態載入器。在一些具體實例中,啟動載入器及動態載入器兩者可以同一處理器來執行(例如,策略處理器150或主機處理器110)。
本申請案發明人已認識且瞭解到,例如藉由將載入器程式碼載入至與應用程式記憶體分離之記憶體中及/或使用分開的暫存器集合以用於執行載入器程式碼,具有用於載入器程式碼之分開的機器狀態可使得攻擊者存取或修改詮釋資料更為困難。例如,具有分開的機器狀態可使得攻擊者控制載入器程式碼更為困難。然而,應瞭解,相較於主機處理110,本發明之態樣不限於以策略處理器150執行載入器程式碼。在一些具體實例中,啟動載入器及/或動態載入器可以主機處理器110來執行,且可藉由載入器策略(例如,圖3中展示之例示策略300)確保安全。
在一些具體實例中,載入器策略可限制將詮釋資料修改為以正確上下文執行之載入器程式碼之特權。作為一個實例,載入器策略可包括指示僅可載入合法二進位影像的一或多個規則,諸如與證明二進位資料來自有效源之詮釋資料符號相關聯之二進位資料。此詮釋資料符號可已經藉由另一程序附接至二進位資料,該程序已驗證二進位資料之完整性及/或真實性(例如,基於密碼編譯數位簽名)。作為另一實例,載入器策略可包括執行控制流程完整性的一或多個規則,使得程式執行可僅自OS程式碼中之特定點傳送至載入器程式碼。以此方式,載入器策略可防止惡意攻擊者程式碼載入非法二進位影像。
另外或替代地,載入器策略還可包括一或多個規則,諸如載入器程式碼不可被修改或複製、載入器指令僅可以適當序列來執行等。
返回至圖7,啟動載入器可在動作705處將作業系統之二進位影像載入至應用程式記憶體120中。另外或替代地,啟動載入器還可根據用於OS之初始化規格來初始化詮釋資料記憶體125中之標記。OS二進位影像及/或OS詮釋資料的初始化規格可擷取自持久性儲存裝置(例如,快閃記憶體、硬碟、ROM等)。如上文所述,OS詮釋資料的初始化規格可由策略連結器(例如,圖2之實例中之例示策略連結器225)基於OS二進位影像、用於適用OS之一或多個策略(例如,動態載入器策略)之經編譯程式碼,及/或目標描述而產生。
在一些具體實例中,OS二進位影像及/或OS詮釋資料的初始化規格可以電子方式簽名,且可藉由對應於用於簽名之私用密鑰之公用密鑰進行分配。私用密鑰本身可未經分配。啟動載入器可使用公用密鑰以驗證OS二進位影像及/或OS詮釋資料的初始化規格尚未經修改。
在動作710處,啟動載入器可將執行傳送至OS,這可完成啟動載入階段且開始動態載入階段。在動作715處,OS可在策略執行硬體之監督下執行,諸如圖1之實例中之例示寫入互鎖112、例示標記處理硬體140、例示策略處理器150,及/或例示詮釋資料記憶體125。
在圖7中所展示之實例中,OS包括動態載入器。在動作720處,動態載入器可例如回應於使用者啟動使用者應用程式,而將使用者應用程式之二進位影像載入至應用程式記憶體120中。另外或替代地,動態載入器還可根據用於使用者應用程式之初始化規格來初始化詮釋資料記憶體125中之標記。使用者應用程式的二進位影像及/或使用者應用程式的詮釋資料的初始化規格可擷取自持久性儲存裝置(例如,快閃記憶體、硬碟、ROM等)。如上文所述,使用者應用程式的詮釋資料的初始化規格可由策略連結器(例如,圖2之實例中之例示策略連結器225)基於使用者應用程式的二進位影像、用於適用使用者應用程式之一或多個策略之經編譯程式碼,及/或目標描述而產生。
在一些具體實例中,動態載入器可藉由觸發載入器策略之一或多個規則而初始化詮釋資料記憶體125中之標記,諸如圖3實例中之例示載入器策略300。例如,動態載入器可對應用程式記憶體120中之詮釋資料調色板區域執行某些操作,如上文結合圖3所述。此可觸發藉由處理硬體140及/或策略處理器150對載入器策略300之一或多個規則之評估,由此創建及應用複合標記。
在一些具體實例中,使用者應用程式的二進位影像及/或使用者應用程式的詮釋資料的初始化規格可以電子方式簽名,且可藉由對應於用於簽名之私用密鑰之公用密鑰進行分配。私用密鑰本身可未經分配。動態載入器可使用公用密鑰以驗證使用者應用程式的二進位影像及/或使用者應用程式的詮釋資料的初始化規格未經修改。另外或替代地,使用使用者應用程式的詮釋資料的初始化規格載入使用者應用程式的二進位影像還可觸發一或多個載入器策略規則。例如,該一或多個規則在經評估時可查找一或多個詮釋資料符號,以證明使用者應用程式的二進位影像及/或使用者應用程式的詮釋資料的初始化規格來自有效源。該一或多個詮釋資料符號可已經藉由已使用公用密鑰執行驗證之另一程序被附接至使用者應用程式的二進位影像及/或使用者應用程式的詮釋資料的初始化規格。
由於OS及使用者應用程式可由不同供應商分配,因此用於簽名及驗證OS及使用者應用程式之公用-私用密鑰配對可以不同。
在一些具體實例中,一旦經載入及標記,使用者應用程式可在策略執行硬體(例如,圖1之實例中之例示寫入互鎖112、例示標記處理硬體140、例示策略處理器150,及/或例示詮釋資料記憶體125)之監督下執行。
在一些具體實例中,動態載入器亦可處置經終止應用程式之拆解及清除。例如,在動作725處,動態載入器可回應於使用者關閉使用者應用程式或停止電腦系統而自應用程式記憶體120移除使用者應用程式之二進位影像。在一些具體實例中,移除使用者應用程式之二進位影像可觸發藉由處理硬體140及/或策略處理器150對一或多個載入器策略規則之評估,這可引起標記映射表142中與經關閉使用者應用程式相關之所有條目之移除,及/或對應詮釋資料自詮釋資料記憶體125及/或標記暫存器檔案146之移除。在一些具體實例中,當同一標記可與不同使用者應用程式相關聯時,可移除標記映射表142中的任何位置處所不再提及之詮釋資料。
例示策略
完整性策略
在一些具體實例中,完整性策略可使用資訊流以追蹤資料來自何處。例如,諸如串聯埠、乙太網埠、記憶體、ROM等資料源可藉由識別該資料源之詮釋資料標記進行標示。在傳送期間,該資料及任何導出資料可保留用於該資料源之標記。
在一些具體實例中,策略規則可指示允許追蹤資訊之何種用途。例如,完整性策略可禁止使用來自晶片外源之資料進行任何控制流程決策,因此防止資料導向程式設計(Data Oriented Programming,DOP)攻擊。
在一些具體實例中,經追蹤資料可藉由指示資料源之詮釋資料標記進行標示。當程式執行及操控該資料時,源標記可經由計算傳播使得任何導出資料保留源指示標記。
在一些具體實例中,完整性策略可追蹤資訊流以限制資料之傳輸,例如以防止某些資料離開系統單晶片(SoC)。
在一些具體實例中,完整性策略可檢查DOP保護之完整性。
在一些具體實例中,完整性策略可偵測及/或防止某些資料之修改,例如確保韌體更新之安全。
安全性策略
在一些具體實例中,安全性策略可維持詮釋資料以執行一或多個暫時系統屬性,諸如次序及協定狀態轉變。例如,在使用策略之情況下,可相對於參考狀態機來監控及檢查事件之定序。
在一些具體實例中,系統程式碼之一或多個區段可藉由指示狀態轉變之詮釋資料進行標示。程式計數器(或另一合適的實體)可藉由可攜載系統狀態變數之環境詮釋資料進行標示。一或多個安全性策略可使用轉變以更新狀態變數,且檢查有效轉變。
上下文切換策略
在一些具體實例中,上下文切換策略可允許OS中之特許程式碼執行上下文切換操作以在不同任務之間移動或處理上下文。切換上下文之程序可涉及將舊任務資料(例如,與經激發上下文相關聯之任務資料)保存至內核儲存裝置,及/或自內核儲存裝置載入新任務資料(例如,與經輸入上下文相關聯之任務資料)。本申請案發明人已認識且瞭解到,新任務資料之載入及/或舊任務資料之保存可違反正實行之策略之一或多個安全性屬性。因此,在一些具體實例中,可提供上下文切換策略來覆寫其他策略以允許進行上下文切換。
在一些具體實例中,上下文切換策略可檢查出經執行程式碼上之詮釋資料來自OS上下文切換常式以用於在任務之間進行改變。上下文切換策略可在適當時機覆寫其他策略,且可允許來自OS上下文切換常式之程式碼將任務資料保存至內核記憶體,及/或恢復來自內核記憶體之任務資料,以及用於任務之各別詮釋資料。
本申請案發明人已認識且瞭解到,在一些情況下,可不允許與一個任務相關聯之程式碼操控與另一任務相關聯之狀態。因此,在一些具體實例中,上下文切換策略可使用策略語言中之特殊全域關鍵字以允許上下文切換程式碼對經由詮釋資料與多於一個任務(例如,經暫停任務及上下文切換任務本身,或經恢復任務及上下文切換任務本身)相關聯之資料進行操作。
分隔策略
在一些具體實例中,分隔策略可對任務之間的資訊流提供隔離及/或控制。此分隔化可例如用於軟體故障隔離方案,其中可防止受損分隔存取或損壞其他分隔。
在一些具體實例中,分隔策略可將顏色指派至每一分隔且檢查出用於機器操作之詮釋資料始終具有一致的分隔顏色。例如,分隔顏色詮釋資料可應用至任務資料、任務環境,及/或任務程式碼。此可使資料及程式碼與執行上下文相關聯。在一些具體實例中,分隔模型可具有一或多個機制以用於在任務之間切換,諸如即時作業系統(RTOS)上下文切換。另外或替代地,分隔策略還可指定在允許在分隔之間致能通信的分隔之間的資訊流。
在一些具體實例中,分隔策略可對分隔之間的流提供明確策略控制。例如,分隔策略可在執行期間執行允許分隔A與分隔B共享資訊。
在一些具體實例中,分隔策略可對資料提供一般化解密。例如,分隔策略可在執行期間執行允許某一類型之資料離開分隔。
在一些具體實例中,分隔策略可使分隔與RTOS任務相關聯。例如,分隔策略可指派記憶體之所選區域用作資料之先進先出(FIFO)緩衝區以自分隔A傳送至分隔B。
在一些具體實例中,分隔策略可提供運行於單一處理器上之執行環境之邏輯隔離。例如,分隔可包括完整執行上下文,其可包括記憶體中之程式碼及資料、硬體暫存器及指定環境(或程式計數器pc)暫存器以用於保存上下文識別符(例如,詮釋資料ID)。分隔策略可包括規則來確保執行上下文之所有部分(例如,程式碼、資料、暫存器等)共享用以識別分隔之單一共同詮釋資料ID。分隔內之執行可在每一分開的分隔內繼續正常進行。然而,可不允許一個分隔中之程式碼與來自另一分隔之資料交互,除非明確被規則允許。
在一些具體實例中,分隔策略可在執行期間執行用於計算之輸入資料可僅屬於主動分隔,及/或計算之結果可藉由主動分隔之ID進行標註。類似地,將操作儲存至記憶體/自記憶體載入操作可僅發生在藉由適合的分隔ID標註該記憶體時。
在一些具體實例中,可在分隔可在創建某一任務時與該任務相關聯之情況下提供多任務環境。每當OS在任務之間切換時,分隔ID可被改變以與新分隔匹配。圖8展示根據一些具體實例之例示分隔策略800。在此實例中,分別針對複數個操作類型提供規則。每一規則可在被執行時執行對應類型之操作僅在所有輸入及輸出具有相同分隔ID時才可繼續進行。
圖9展示根據一些具體實例之可藉由策略編譯器(例如圖2實例中之例示策略編譯器220)以自圖8實例中之規則1產生的例示策略程式碼900。
在一些具體實例中,實施於RTOS上之基於任務之分隔策略可具有以下部分中之一或多者。
1)初始化任務程式碼及資料(藉由獨特ID詮釋資料來標註分隔)
2)開始RTOS排程器(經由排程器程式碼來保存ID)
3)協同式多任務上下文切換(在前一分隔與下一分隔之間切換ID)
4)搶先式多任務上下文切換(在前一分隔與下一分隔之間切換ID)
在一些具體實例中,程式碼可在分隔之間共享,且可因此在步驟1)處未藉由分隔ID進行標註。然而,屬於不同分隔之資料可藉由各別分隔ID進行標註。以此方式,可甚至在分隔之間共享程式碼時維持資料隔離。
在一些具體實例中,在啟動時,步驟1與步驟2可初始化用於RTOS之分隔及任務排程器。例如,圖8中展示之例示分隔策略800可包括將實體名稱「application.code.function.portstartscheduler」映射至詮釋資料符號「Cpt A」(用於分隔A)之以下「init」陳述式。
require: init application.code.function.portstartscheduler {Cpt A}
在一些具體實例中,策略編譯器(例如,在圖2中展示之例示策略編譯器220)可基於以上「init」陳述式來產生階層式詮釋資料符號(例如,「Dover.Comparment.Cpt_A」)。
在一些具體實例中,RTOS之目標描述可包括以下實體結合,其可使實體名稱「application.code.function.portstartscheduler」與函式符號「xPortStartScheduler」結合。
name: application.code.function.portstartscheduler
elf_name: xPortStartScheduler
tag_all: true
kind: symbol
在一些具體實例中,策略連結器(例如,在圖2中展示之例示策略連結器225)可使「init」陳述式中之實體名稱與實體結合中之實體名稱匹配,且可使階層式詮釋資料符號「Dover.Comparment.Cpt_A」與函式符號「xPortStartScheduler」提及之函式相關聯。
在一些具體實例中,在正常操作期間,步驟3與步驟4可在將執行自一個任務傳送至另一任務時反覆地進行。例如,協同式多任務可在一個任務相對於另一任務產生執行時間時而同步地發生,而搶先式多任務可例如經由計時器中斷及暫停一個任務之執行以切換至另一任務之中斷服務常式(interrupt service routine,ISR)而非同步地發生。
下文為用於以上實例中之四個步驟之例示偽碼。每一子步驟展示之註解可展示如何在該子步驟中更新詮釋資料ID。箭頭左側之ID可由右側之ID替換,其中標籤可如下:
0-未初始化ID
P-前一ID
N-下一ID

初始化分隔
分配堆疊記憶體
指派分隔id 0 <- N
推動堆疊指標 N <- N
初始化暫存器 0 <- N
將程式計數器設定為任務條目 0 <- N
設定暫存器中之任務參數 0 <- N
返回

啟動排程器
初始化排程器資料結構
初始化計時器
恢復來自排程器資料結構之堆疊指標 P <- N
將pc恢復為epc P <- N
恢復暫存器 P <- N
彈出堆疊指標 N <- N
自中斷返回

協同式多任務上下文切換
停用中斷
推動堆疊指標 P <- P
保存暫存器 P <- P
保存排程器資料結構中之堆疊指標 P <- P
將返回位址保存為pc P <- P
呼叫排程器
恢復來自排程器資料結構之堆疊指標 P <- N
將pc恢復為epc P <- N
恢復暫存器 P <- N
彈出堆疊指標 N <- N
自中斷返回

搶先式多任務上下文切換
推動堆疊指標 P <- P
保存暫存器 P <- P
保存排程器資料結構中之堆疊指標 P <- P
將epc保存為pc P <- P
呼叫排程器
恢復來自排程器資料結構之堆疊指標 P <- N
將pc恢復為epc P <- N
恢復暫存器 P <- N
彈出堆疊指標 N <- N
自中斷返回
分隔間通信
在一些具體實例中,為促進分隔之間的通信,可提供策略規則以在將資料發送至另一分隔時允許用於資料之分隔ID發生改變。此可藉由擴展分隔ID而進行,例如藉由添加與每一ID相關聯之權限。例如,替代「Cpt id」,「Read id」或「Write id」可用於指示與該ID相關聯之權限。
在一些具體實例中,在使用權限之情況下,某些記憶體緩衝區可經標註為可由一個分隔讀取及可由另一分隔寫入。此可致能獨立進程與串流緩衝區(例如,Kahn進程網路)通信之固有程式設計樣式。
圖10展示根據一些具體實例之在通信規則情況下之例示策略程式碼1000。
即時排程
在一些具體實例中,搶先式多任務上下文切換(例如,以上步驟4)可發生在目前執行任務之非同步中斷期間。本申請案發明人已認識且瞭解到,即時系統可對中斷延時敏感,且因此可能需要搶先式多任務上下文切換以及時地方式發生。由於允許P<-P或P<-N之規則可能尚未安置於規則快取記憶體中,因此規則快取未命中可發生在實施搶先式多任務上下文切換之ISR期間。在ISR期間規則快取未命中之可能性可損害一或多個即時潛時保證,這可影響應用程式之正確運行。因此,在一些具體實例中,可提供軟體機制以用於將規則預安置於快取記憶體中,及/或可提供硬體機制以用於防止收回ISR規則。此可保持確定性ISR效能。
另外或替代地,硬體特徵還可提供於規則快取記憶體(例如,圖1之實例中之例示規則快取記憶體144)中以允許規則將規則之一或多個輸入轉送至規則之輸出。此轉送特徵可以任何合適方式實施,例如藉由提供一或多個指定標記值,該一或多個指定標記值在呈現於規則之輸出中時致使圖1之實例中之例示標記處理硬體140選擇一或多個輸入標記以用作一或多個輸出標記,從而替代該一或多個指定標記值。本申請案發明人已認識且瞭解到,一或多個轉送規則可用於降低規則快取記憶體144之空間要求。例如,轉送規則可用作藉由一或多個輸入標記加以參數化之規則。參考上文實例中之P<-P及P<-N狀況,單一規則可用於處置P及N之標記值之每個組合。以此方式,規則可經預安置而無需預先對P及N之所有可能標記值執行實例化。
例示電腦
圖11示意性地展示上面可實施本發明之任何態樣之例示電腦1100。
在圖11中所展示之具體實例中,電腦1100包括具有一或多個處理器之處理單元1101及可包括例如揮發性及/或非揮發性記憶體1102之非暫時性電腦可讀取儲存媒體。記憶體1102可儲存程式化處理單元1101以執行本文所述功能中之任一者的一或多個指令。除了系統記憶體1102,電腦1100亦可包括其他類型之非暫時性電腦可讀取媒體,諸如儲存裝置1105(例如,一或多個磁碟機)。儲存裝置1105亦可儲存一或多個應用程式及/或由應用程式(例如,軟體程式庫)使用之資源,該一或多個應用程式及資源可載入至記憶體1102中。
電腦1100可具有一或多個輸出裝置及/或輸入裝置,如圖11中所說明的1106及1107。可例如使用此等裝置以呈現使用者介面。可用於提供使用者介面之輸出裝置之實例包括用於輸出之視覺呈現之印表機及顯示螢幕,及用於輸出之聽覺呈現之揚聲器及其他聲音產生裝置。可用於使用者介面之輸入裝置之實例包括鍵盤及指標裝置(例如,滑鼠、觸控板,及數位化平板)。作為另一實例,輸入裝置1107可包括用於俘獲音訊信號之麥克風,且輸出裝置1106可包括用於視覺再現之顯示螢幕,及/或用於聽覺再現已辨識文字之揚聲器。
在圖11中所展示之實例中,電腦1100亦包括一或多個網路介面(例如,網路介面1110)以實現經由各種網路(例如,網路1120)之通信。網路之實例包括區域網路(例如,企業網路)及廣域網路(例如,網際網路)。此類網路可基於任何合適技術且根據任何合適協定進行操作,且可包括無線網路及/或有線網路(例如,光纖網路)。
此外,本發明技術可按以下組態體現:
(1)一種包含至少一個處理器之系統,該至少一個處理器經程式化以:
基於待執行之策略來識別對應於實體名稱之一或多個詮釋資料符號;
自描述目標系統之目標描述來識別與該實體名稱匹配之實體描述,其中該實體描述描述該目標系統之實體;以及
將詮釋資料標籤應用至該目標系統之該實體,其中該詮釋資料標籤係基於與如基於該策略所識別之該實體名稱相對應之該一或多個詮釋資料符號。
(2)如(1)所述之系統,其中:
該至少一個處理器進一步經程式化以至少部分地藉由在該詮釋資料標籤中包括該一或多個詮釋資料符號與該策略有關之指示而建構該詮釋資料標籤。
(3)如(1)至(2)中任一項所述之系統,其中:
將在執行一或多個程式之目標程式碼期間執行該策略;
該目標程式碼呈可載入二進位格式;且
該至少一個處理器經程式化以至少部分地藉由使用該詮釋資料標籤之二進位表示來註解該目標程式碼之至少一部分而將該詮釋資料標籤應用至該實體。
(4)如(1)至(3)中任一項所述之系統,其中:
該至少一個處理器進一步經程式化以至少部分地藉由以下操作來識別待註解之該目標程式碼之該至少一部分:
使用該實體描述以識別與該實體相關聯之一或多個目標符號名稱及一或多個位址範圍;及
基於該一或多個位址範圍以自該目標程式碼識別與該一或多個目標符號名稱匹配之一或多個指令;以及
註解該目標程式碼之該至少一部分包含使用該詮釋資料標籤之該二進位表示來註解自該目標程式碼所識別之該一或多個指令。
(5)如(1)至(4)中任一項所述之系統,其中:
該至少一個處理器進一步經程式化以至少部分地基於該策略及該目標描述而產生初始化規格;且
該至少一個處理器經程式化以至少部分地藉由在該初始化規格中包括該實體與該詮釋資料標籤相關聯之指示而將該詮釋資料標籤應用至該實體。
(6)如(5)所述之系統,其中:
該至少一個處理器進一步經程式化以將該一或多個詮釋資料符號中之至少一個詮釋資料符號解析成二進位表示;且
該至少一個詮釋資料符號之該二進位表示包括於該初始化規格中。
(7)如(5)所述之系統,其中:
該初始化規格呈可載入二進位格式。
(8)如(1)所述之系統,其中:
該實體包含硬體實體;
該實體描述包含該硬體實體之命名屬性;且
該至少一個處理器經程式化以剖析硬體規格且基於自該硬體規格所提取之資訊來產生該命名屬性。
(9)如(1)所述之系統,其中:
該實體包含軟體實體;
該實體描述包含該軟體實體之命名屬性;且
該至少一個處理器經程式化以基於對該軟體實體之原始程式碼及/或目標程式碼之分析而產生該命名屬性。
(10)一種包含至少一個處理器之系統,該至少一個處理器經程式化以:
回應於將一段目標程式碼載入至應用程式記憶體中之位置,基於初始化規格來識別與該段目標程式碼相關聯之至少一個詮釋資料標籤;及
使載入有該段目標程式碼之該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯。
(11)如(10)所述之系統,其中該段目標程式碼包含一或多個可執行指令。
(12)如(10)所述之系統,其中該段目標程式碼包含待由一或多個可執行指令所操控之資料。
(13)如(11)至(13)中任一項所述之系統,其中:
該至少一個處理器經程式化以至少部分地藉由在標記映射表中創建條目而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯,該條目將該應用程式記憶體中之該位置映射至該至少一個詮釋資料標籤。
(14)如(13)所述之系統,其中:
該標記映射表中之該條目儲存該至少一個詮釋資料標籤之二進位表示。
(15)如(13)所述之系統,其中:
該標記映射表中之該條目儲存資訊,其指示儲存有該至少一個詮釋資料標籤之二進位表示之位置。
(16)如(15)所述之系統,其中:
該資訊包含在詮釋資料記憶體中儲存有該至少一個詮釋資料標籤之該二進位表示之位址。
(17)如(16)所述之系統,其中:
該詮釋資料記憶體與該應用程式記憶體實體上分離。
(18)如(16)所述之系統,其中該資訊包含用於儲存有該至少一個詮釋資料標籤之該二進位表示之暫存器的識別符。
(19)如(15)所述之系統,其中:
該應用程式記憶體中載入有該段目標程式碼之該位置處於第一位址;
儲存有該至少一個詮釋資料標籤之該二進位表示之該位置處於第二位址;且
該標記映射表中之該條目經由位址轉譯將該第一位址映射至該第二位址。
(20)如(11)至(14)中任一項所述之系統,其進一步包含策略執行硬體,其中:
該至少一個處理器經程式化以至少部分地藉由致使該策略執行硬體評估一或多個規則,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯;
評估該一或多個規則包含查找該標記映射表以查找對應於該應用程式記憶體中之該位置之條目;且
該策略執行硬體經組態以回應於判定該標記映射表並未已經包括對應於該應用程式記憶體中之該位置之條目,而在該標記映射表中創建將該應用程式記憶體中之該位置映射至該至少一個詮釋資料標籤之該條目。
(21)如(10)所述之系統,其中:
該至少一個處理器進一步經程式化以將該至少一個詮釋資料標籤解析成至少一個二進位表示;且
使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯包含使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤之該至少一個二進位表示相關聯。
(22)如(21)所述之系統,其中:
該段目標程式碼包含經動態地載入之使用者應用程式之目標程式碼;且
該至少一個處理器經程式化以:
將該至少一個詮釋資料標籤動態地解析成該至少一個二進位表示;及
使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤之該至少一個二進位表示動態地相關聯。
(23)如(11)所述之系統,其中:
該至少一個處理器進一步經程式化以至少部分地藉由驗證該初始化規格上之密碼編譯簽名而確認該初始化規格來自受信任源;且
該至少一個處理器經程式化以僅回應於確認該初始化規格來自受信任源而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯。
(24)如(11)所述之系統,其中:
該至少一個詮釋資料標籤包含第一詮釋資料標籤;
該至少一個處理器進一步經程式化以:
至少部分地藉由驗證該段目標程式碼上之密碼編譯簽名而確認該段目標程式碼來自受信任源;及
使該段目標程式碼與指示該段目標程式碼來自受信任源之第二詮釋資料標籤相關聯。
(25)如(11)所述之系統,其進一步包含策略執行硬體,其中:
該至少一個詮釋資料標籤包含預設詮釋資料標籤;
該至少一個處理器進一步經程式化以致使該策略執行硬體評估一或多個規則;且
評估該一或多個規則致使該策略執行硬體用另一詮釋資料標籤替換該預設詮釋資料標籤。
(26)一種包含至少一個處理器之系統,該至少一個處理器經程式化以:
識別與目標系統中之實體相關聯之詮釋資料,其中該詮釋資料包含詮釋資料標籤之二進位表示;
使用所儲存資訊以將該二進位表示映射至該詮釋資料標籤之不同表示;以及
以指示該詮釋資料標籤與該目標系統中之該實體相關聯之方式而按人類可讀取形式來顯示該詮釋資料標籤。
(27)如(26)所述之系統,其中:
該至少一個處理器進一步經程式化以將詮釋資料標籤解析成各別二進位表示;且
該所儲存資訊包含自該等二進位表示返回至該等詮釋資料標籤之映射。
(28)如(26)所述之系統,其中:
該至少一個處理器進一步經程式化以按人類可讀取形式來顯示將該目標系統之複數個實體映射至一或多個詮釋資料標籤之各別組之初始化規格。
(29)如(26)所述之系統,其中該至少一個處理器進一步經程式化以:
自使用者接收檢查策略違反之請求;及
回應於該請求而判定該目標系統之該實體與該策略違反相關。
(30)一種方法,其由如先前組態中任一項所述之系統來執行。
(31)至少一種電腦可讀取媒體,其上編碼有指令,該等指令在由至少一個處理器執行時致使該至少一個處理器執行如(30)所述之方法。
在已因此描述至少一個具體實例之若干態樣後,應瞭解,所屬技術領域中具有知識者將易於想到各種更改、修改及改良。此類更改、修改及改良意欲在本發明之精神及範圍內。因此,前文描述及圖式僅作為實例。
本發明之上述具體實例可以任何眾多方式實施。舉例而言,具體實例可使用硬體、軟體或其組合來實施。當以軟體來實施時,軟體程式碼可執行於任何合適的處理器或處理器之集合上,無論提供於單一電腦中還是分配於多個電腦當中。
並且,本文中所概述之各種方法或程序可經寫碼為可執行於一或多個處理器上以運行各種作業系統或平台中之任一者之軟體。此類軟體可使用多個合適的程式化語言及/或程式化工具來編寫,包括指令碼處理語言及/或指令碼處理工具中之任一者。在一些情況下,此類軟體可編譯為執行於系統框架或虛擬機器上之可執行機器語言程式碼或中間程式碼。另外或替代地,此類軟體可經解譯。
本文所記載技術可實施為編碼有一或多個程式之非暫時性電腦可讀取媒體(或多個電腦可讀取媒體)(例如,電腦記憶體、一或多個軟碟、CD、光碟、磁帶、快閃記憶體,以場可程式化閘陣列或其他半導體裝置之電路組態或其他非暫時性有形電腦儲存媒體),該一或多個程式在執行於一或多個處理器上時執行實施上文所論述之本發明之各種具體實例之方法。一或多個電腦可讀取媒體可為可傳輸的,使得其上儲存之一或多個程式可載入至一或多個不同電腦或其他處理器上以實施如上文所論述之本發明之各個態樣。
術語「程式」或「軟體」在本文中用以指代任何類型之電腦程式碼或電腦可執行指令之集合,其可用於程式化一或多個處理器以實施如上文所論述之本發明之各個態樣。此外,應瞭解,根據此具體實例之一態樣,在被執行時執行本發明之方法的一或多個電腦程式無需駐存於單一電腦或處理器上,但可以模組化方式分配於多個不同電腦或處理器中以實施本發明之各個態樣。
電腦可執行指令可呈許多形式,諸如由一或多個電腦或其他裝置執行的程式模組。程式模組可包括執行特定任務或實施特定抽象資料類型的常式、程式、物件、組件、資料結構等。在各種具體實例中,程式模組之功能性可視需要來組合或分配。
並且,資料結構可以任何合適之形式儲存於電腦可讀取媒體中。出於說明簡單起見,資料結構可被展示為具有經由資料結構中之位置而相關的欄位。可同樣藉由將用於欄位之儲存裝置指派至電腦可讀取媒體中的在欄位之間傳達關係的位置而實現此類關係。然而,任何合適機制可用於在資料結構之欄位中之資訊之間建立關係,包括經由使用指標、標記或在資料元件之間建立關係之其他機制。
本發明之各種特徵及態樣可單獨使用、以兩者或多於兩者之任何組合形式或以前述內容中所描述之具體實例中未特定論述之各種配置來使用,且因此不限於前述描述中所闡述的或圖式中所說明的組件之細節及配置。舉例而言,一個具體實例中所描述之態樣可以任何方式與其他具體實例中所描述之態樣組合。
並且,本文中所記載之技術可實施為方法,已經提供其實例。作為方法之部分所執行之動作可以任何合適的方式來排序。因此,可建構如下具體實例:其中動作以不同於所說明之次序的次序來執行,亦即,可包括同時執行一些動作,即使此等動作在例示具體實例中被展示為依序動作。
在申請專利範圍中使用諸如「第一」、「第二」、「第三」等次序術語修飾請求項要素本身並不意謂一個請求項要素相對於另一請求項要素的任何優先順序、優先性或次序或執行方法動作之時間次序,而是僅用作標籤以區分具有某一名稱之一個請求項要素與具有相同名稱(但使用次序術語)之另一要素,以區分該等請求項要素。
並且,本文中所使用之措辭及術語係出於描述之目的,且不應被視為限制性的。本文中對「包括」、「包含」、「具有」、「含有」、「涉及」及其變體的使用意謂涵蓋在其後所列出之項目及其等效物以及額外項目。
100‧‧‧硬體系統
110‧‧‧主機處理器
112‧‧‧寫入互鎖
115‧‧‧系統匯流排
120‧‧‧應用程式記憶體
125‧‧‧詮釋資料記憶體
130‧‧‧唯讀記憶體
135‧‧‧周邊裝置
140‧‧‧標記處理硬體
142‧‧‧標記映射表
144‧‧‧規則快取記憶體
146‧‧‧標記暫存器檔案
150‧‧‧策略處理器
200‧‧‧軟體系統
205‧‧‧編譯器
210‧‧‧連結器
215‧‧‧載入器
220‧‧‧策略編譯器
225‧‧‧策略連結器
230‧‧‧除錯器
300‧‧‧策略
305、310、315‧‧‧區段
400‧‧‧策略程式碼
405、410‧‧‧行
500‧‧‧目標描述
510‧‧‧硬體實體模組
512‧‧‧ISA實體模組
514‧‧‧系統單晶片(SOC)實體模組
520‧‧‧軟體實體模組
522‧‧‧OS實體模組
524‧‧‧使用者應用程式實體模組
526‧‧‧建置系統實體模組
530‧‧‧類別實體模組
532‧‧‧軟體類別實體模組
534‧‧‧硬體類別實體模組
540‧‧‧轉換實體模組
600‧‧‧組合程式碼
605、610、615‧‧‧標示
620‧‧‧位址
625‧‧‧碼字
630‧‧‧助憶符
635‧‧‧參數
800‧‧‧分隔策略
900‧‧‧策略程式碼
1000‧‧‧策略程式碼
1100‧‧‧電腦
1101‧‧‧處理單元
1102‧‧‧記憶體
1105‧‧‧儲存裝置
1106‧‧‧輸出裝置
1107‧‧‧輸入裝置
1110‧‧‧網路介面
1120‧‧‧網路
圖1展示根據一些具體實例之用於執行策略之例示硬體系統100。
圖2展示根據一些具體實例之用於執行策略之例示軟體系統200。
圖3展示根據一些具體實例之用於確保載入器程式之安全之例示策略300。
圖4展示根據一些具體實例之由策略編譯器所輸出之例示策略程式碼400。
圖5示意性地展示根據一些具體實例之例示目標描述500。
圖6展示根據一些具體實例之已經藉由詮釋資料標籤所註解之例示組合程式碼600。
圖7展示根據一些具體實例之用於將可執行程式碼載入電腦系統中之例示程序700。
圖8展示根據一些具體實例之例示分隔策略800。
圖9展示根據一些具體實例之可藉由策略編譯器根據圖8之實例中之規則1所產生的例示策略程式碼900。
圖10展示根據一些具體實例之在通信規則情況下之例示策略程式碼1000。
圖11示意性地展示上面可實施本發明之任何態樣之例示電腦1100。

Claims (31)

  1. 一種包含至少一個處理器之系統,該至少一個處理器經程式化以: 基於待執行之策略來識別對應於實體名稱之一或多個詮釋資料符號; 自描述目標系統之目標描來述識別與該實體名稱匹配之實體描述,其中該實體描述描述該目標系統之實體;以及 將詮釋資料標籤應用至該目標系統之該實體,其中該詮釋資料標籤係基於與基於該策略所識別之該實體名稱相對應之該一或多個詮釋資料符號。
  2. 如請求項1所述之系統,其中: 該至少一個處理器進一步經程式化以至少部分地藉由在該詮釋資料標籤中包括該一或多個詮釋資料符號與該策略有關之指示,而建構該詮釋資料標籤。
  3. 如請求項1所述之系統,其中: 將在執行一或多個程式之目標程式碼期間執行該策略; 該目標程式碼呈可載入二進位格式;且 該至少一個處理器經程式化以至少部分地藉由使用該詮釋資料標籤之二進位表示來註解該目標程式碼之至少一部分,而將該詮釋資料標籤應用至該實體。
  4. 如請求項3所述之系統,其中: 該至少一個處理器進一步經程式化以至少部分地藉由以下操作來識別待註解之該目標程式碼之該至少一部分: 使用該實體描述以識別與該實體相關聯之一或多個目標符號名稱及一或多個位址範圍;及 基於該一或多個位址範圍以自該目標程式碼識別與該一或多個目標符號名稱匹配之一或多個指令;以及 註解該目標程式碼之該至少一部分包含使用該詮釋資料標籤之該二進位表示來註解自該目標程式碼所識別之該一或多個指令。
  5. 如請求項1所述之系統,其中: 該至少一個處理器進一步經程式化以至少部分地基於該策略及該目標描述而產生初始化規格;且 該至少一個處理器經程式化以至少部分地藉由在該初始化規格中包括該實體與該詮釋資料標籤相關聯之指示,而將該詮釋資料標籤應用至該實體。
  6. 如請求項5所述之系統,其中: 該至少一個處理器進一步經程式化以將該一或多個詮釋資料符號中之至少一個詮釋資料符號解析成二進位表示;且 該至少一個詮釋資料符號之該二進位表示包括於該初始化規格中。
  7. 如請求項5所述之系統,其中: 該初始化規格呈可載入二進位格式。
  8. 如請求項1所述之系統,其中: 該實體包含硬體實體; 該實體描述包含該硬體實體之命名屬性;且 該至少一個處理器經程式化以剖析硬體規格,且基於自該硬體規格所提取之資訊而產生該命名屬性。
  9. 如請求項1所述之系統,其中: 該實體包含軟體實體; 該實體描述包含該軟體實體之命名屬性;且 該至少一個處理器經程式化以基於對該軟體實體之原始程式碼及/或目標程式碼之分析而產生該命名屬性。
  10. 一種包含至少一個處理器之系統,該至少一個處理器經程式化以: 回應於將一段目標程式碼載入至應用程式記憶體中之位置,而基於初始化規格來識別與該段目標程式碼相關聯之至少一個詮釋資料標籤;及 使載入有該段目標程式碼之該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯。
  11. 如請求項10所述之系統,其中該段目標程式碼包含一或多個可執行指令。
  12. 如請求項10所述之系統,其中該段目標程式碼包含待由一或多個可執行指令所操控之資料。
  13. 如請求項10所述之系統,其中: 該至少一個處理器經程式化以至少部分地藉由在標記映射表中創建條目,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯,該條目將該應用程式記憶體中之該位置映射至該至少一個詮釋資料標籤。
  14. 如請求項13所述之系統,其中: 該標記映射表中之該條目儲存該至少一個詮釋資料標籤之二進位表示。
  15. 如請求項13所述之系統,其中: 該標記映射表中之該條目儲存資訊,其指示儲存有該至少一個詮釋資料標籤之二進位表示之位置。
  16. 如請求項15所述之系統,其中: 該資訊包含詮釋資料記憶體中儲存有該至少一個詮釋資料標籤之該二進位表示之位址。
  17. 如請求項16所述之系統,其中: 該詮釋資料記憶體與該應用程式記憶體實體上分離。
  18. 如請求項15所述之系統,其中該資訊包含用於儲存有該至少一個詮釋資料標籤之該二進位表示之暫存器的識別符。
  19. 如請求項15所述之系統,其中: 在該應用程式記憶體中載入有該段目標程式碼之該位置處於第一位址; 儲存有該至少一個詮釋資料標籤之該二進位表示之該位置處於第二位址;且 該標記映射表中之該條目經由位址轉譯以將該第一位址映射至該第二位址。
  20. 如請求項13所述之系統,其進一步包含策略執行硬體,其中: 該至少一個處理器經程式化以至少部分地藉由致使該策略執行硬體評估一或多個規則,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯; 評估該一或多個規則包含查找該標記映射表以查找對應於該應用程式記憶體中之該位置之條目;且 該策略執行硬體經組態以回應於判定該標記映射表並未已經包括對應於該應用程式記憶體中之該位置之條目,而在該標記映射表中創建將該應用程式記憶體中之該位置映射至該至少一個詮釋資料標籤之該條目。
  21. 如請求項10所述之系統,其中: 該至少一個處理器進一步經程式化以將該至少一個詮釋資料標籤解析成至少一個二進位表示;且 使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯包含使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤之該至少一個二進位表示相關聯。
  22. 如請求項21所述之系統,其中: 該段目標程式碼包含經動態地載入之使用者應用程式之目標程式碼;且 該至少一個處理器經程式化以: 將該至少一個詮釋資料標籤動態地解析成該至少一個二進位表示;及 使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤之該至少一個二進位表示動態地相關聯。
  23. 如請求項10所述之系統,其中: 該至少一個處理器進一步經程式化以至少部分地藉由驗證在該初始化規格上之密碼編譯簽名,而確認該初始化規格來自受信任源;且 該至少一個處理器經程式化以僅回應於確認該初始化規格來自受信任源,而使該應用程式記憶體中之該位置與該至少一個詮釋資料標籤相關聯。
  24. 如請求項10所述之系統,其中: 該至少一個詮釋資料標籤包含第一詮釋資料標籤; 該至少一個處理器進一步經程式化以: 至少部分地藉由驗證該段目標程式碼上之密碼編譯簽名,而確認該段目標程式碼來自受信任源;及 使該段目標程式碼與指示該段目標程式碼來自受信任源之第二詮釋資料標籤相關聯。
  25. 如請求項10所述之系統,其進一步包含策略執行硬體,其中: 該至少一個詮釋資料標籤包含預設詮釋資料標籤; 該至少一個處理器進一步經程式化以致使該策略執行硬體評估一或多個規則;且 評估該一或多個規則致使該策略執行硬體用另一詮釋資料標籤替換該預設詮釋資料標籤。
  26. 一種包含至少一個處理器之系統,該至少一個處理器經程式化以: 識別與目標系統中之實體相關聯之詮釋資料,其中該詮釋資料包含詮釋資料標籤之二進位表示; 使用所儲存資訊以將該二進位表示映射至該詮釋資料標籤之不同表示;以及 以指示該詮釋資料標籤與該目標系統中之該實體相關聯之方式,而按人類可讀取形式來顯示該詮釋資料標籤。
  27. 如請求項26所述之系統,其中: 該至少一個處理器進一步經程式化以將詮釋資料標籤解析成各別二進位表示;且 該所儲存資訊包含自該等二進位表示返回至該等詮釋資料標籤之映射。
  28. 如請求項26所述之系統,其中: 該至少一個處理器進一步經程式化以按人類可讀取形式來顯示將該目標系統之複數個實體映射至一或多個詮釋資料標籤之各別組之初始化規格。
  29. 如請求項26所述之系統,其中該至少一個處理器進一步經程式化以: 自使用者接收檢查策略違反之請求;及 回應於該請求而判定該目標系統之該實體與該策略違反相關。
  30. 一種方法,其由如請求項1-29中任一項所述之系統來執行。
  31. 至少一種電腦可讀取媒體,其上編碼有指令,該等指令在由至少一個處理器執行時致使該至少一個處理器執行如請求項30所述之方法。
TW108104323A 2018-02-02 2019-02-01 用於安全初始化的策略連結及/或載入之系統和方法 TW201935306A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862625822P 2018-02-02 2018-02-02
US62/625,822 2018-02-02
US201862635289P 2018-02-26 2018-02-26
US62/635,289 2018-02-26

Publications (1)

Publication Number Publication Date
TW201935306A true TW201935306A (zh) 2019-09-01

Family

ID=65494525

Family Applications (2)

Application Number Title Priority Date Filing Date
TW108104323A TW201935306A (zh) 2018-02-02 2019-02-01 用於安全初始化的策略連結及/或載入之系統和方法
TW108104320A TW201937393A (zh) 2018-02-02 2019-02-01 用於安全初始化的策略編輯之系統和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW108104320A TW201937393A (zh) 2018-02-02 2019-02-01 用於安全初始化的策略編輯之系統和方法

Country Status (4)

Country Link
US (5) US20210042100A1 (zh)
EP (1) EP3746921B1 (zh)
TW (2) TW201935306A (zh)
WO (2) WO2019152805A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235176B2 (en) 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
WO2019152795A1 (en) 2018-02-02 2019-08-08 Dover Microsystems, Inc. Systems and methods for transforming instructions for metadata processing
WO2019152805A1 (en) 2018-02-02 2019-08-08 Dover Microsystems, Inc. System and method for translating mapping policy into code
SG11202007272QA (en) 2018-02-02 2020-08-28 Charles Stark Draper Laboratory Inc Systems and methods for policy execution processing
WO2019213061A1 (en) 2018-04-30 2019-11-07 Dover Microsystems, Inc. Systems and methods for checking safety properties
EP3814963B1 (en) * 2018-06-26 2024-04-10 Nokia Technologies OY Method and apparatus for attestation
TW202022679A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US12124566B2 (en) 2018-11-12 2024-10-22 Dover Microsystems, Inc. Systems and methods for metadata encoding
WO2020132012A1 (en) 2018-12-18 2020-06-25 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US12393677B2 (en) 2019-01-18 2025-08-19 Dover Microsystems, Inc. Systems and methods for metadata classification
US11232208B2 (en) 2019-02-26 2022-01-25 The Trustees Of The University Of Pennsylvania Methods, systems, and computer readable media for adaptive metadata architecture
EP3908947A1 (en) * 2019-03-25 2021-11-17 Aurora Labs Ltd Generating and signing a line-of-code behavior and relation model
US12079197B2 (en) 2019-10-18 2024-09-03 Dover Microsystems, Inc. Systems and methods for updating metadata
US20220398312A1 (en) * 2019-11-06 2022-12-15 Dover Microsystems, Inc. Systems and methods for improving efficiency of metadata processing
US12019736B2 (en) 2020-02-27 2024-06-25 The Trustees Of The University Of Pennsylvania Methods, systems, and computer readable media for main memory tag compression
WO2021178493A1 (en) 2020-03-03 2021-09-10 Dover Microsystems, Inc. Systems and methods for caching metadata
EP4002170A1 (en) * 2020-11-18 2022-05-25 Thales DIS France SA Execution protection using data colouring
US12481504B2 (en) * 2020-12-22 2025-11-25 Intel Corporation Apparatus and method for secure instruction set execution, emulation, monitoring, and prevention
US12124576B2 (en) 2020-12-23 2024-10-22 Dover Microsystems, Inc. Systems and methods for policy violation processing
CN114254620A (zh) * 2021-12-23 2022-03-29 国泰新点软件股份有限公司 政策解析方法、装置和存储介质
US20230281319A1 (en) * 2022-02-23 2023-09-07 The Trustees Of The University Of Pennsylvania Methods, systems, and computer readable media for automatically generating compartmentalization security policies and rule prefetching acceleration for tagged processor architectures
US20250013441A1 (en) * 2023-07-05 2025-01-09 Google Llc Automated Policy Compliance Using Large Language Models
US20250139254A1 (en) * 2023-11-01 2025-05-01 International Business Machines Corporation Disassembling authorized code services to determine valid parameters and parameter values to generate input set
US20250292177A1 (en) * 2024-03-13 2025-09-18 Wells Fargo Bank, N.A. Automated policy management

Family Cites Families (309)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5201056A (en) 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
EP0463965B1 (en) 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
US5778423A (en) 1990-06-29 1998-07-07 Digital Equipment Corporation Prefetch instruction for improving performance in reduced instruction set processor
WO1992003779A1 (en) 1990-08-23 1992-03-05 Supercomputer Systems Limited Partnership Method of efficient communication between coprocessors
US5287467A (en) 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5628021A (en) 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
JPH06332664A (ja) 1993-03-23 1994-12-02 Toshiba Corp 表示制御システム
US5485455A (en) 1994-01-28 1996-01-16 Cabletron Systems, Inc. Network having secure fast packet switching and guaranteed quality of service
US5664223A (en) 1994-04-05 1997-09-02 International Business Machines Corporation System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US5684977A (en) 1995-03-31 1997-11-04 Sun Microsystems, Inc. Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system
US5655100A (en) 1995-03-31 1997-08-05 Sun Microsystems, Inc. Transaction activation processor for controlling memory transaction execution in a packet switched cache coherent multiprocessor system
US5848433A (en) 1995-04-12 1998-12-08 Advanced Micro Devices Way prediction unit and a method for operating the same
US5764946A (en) 1995-04-12 1998-06-09 Advanced Micro Devices Superscalar microprocessor employing a way prediction unit to predict the way of an instruction fetch address and to concurrently provide a branch prediction address corresponding to the fetch address
US5664197A (en) 1995-04-21 1997-09-02 Intel Corporation Method and apparatus for handling bus master channel and direct memory access (DMA) channel access requests at an I/O controller
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
JPH0969047A (ja) 1995-09-01 1997-03-11 Sony Corp Risc型マイクロプロセッサおよび情報処理装置
US5864707A (en) 1995-12-11 1999-01-26 Advanced Micro Devices, Inc. Superscalar microprocessor configured to predict return addresses from a return stack storage
US6622182B1 (en) 1996-09-08 2003-09-16 Silicon Graphics, Inc. Upstream situated apparatus and method for providing high bandwidth data flow control to an input/output unit
US6058466A (en) 1997-06-24 2000-05-02 Sun Microsystems, Inc. System for allocation of execution resources amongst multiple executing processes
US6240502B1 (en) 1997-06-25 2001-05-29 Sun Microsystems, Inc. Apparatus for dynamically reconfiguring a processor
US6035374A (en) 1997-06-25 2000-03-07 Sun Microsystems, Inc. Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency
US5890008A (en) 1997-06-25 1999-03-30 Sun Microsystems, Inc. Method for dynamically reconfiguring a processor
US5941981A (en) 1997-11-03 1999-08-24 Advanced Micro Devices, Inc. System for using a data history table to select among multiple data prefetch algorithms
US6321297B1 (en) 1998-01-05 2001-11-20 Intel Corporation Avoiding tag compares during writes in multi-level cache hierarchy
US6157955A (en) 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6351784B1 (en) 1998-12-28 2002-02-26 International Business Machines Corp. System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
US6324599B1 (en) 1999-01-11 2001-11-27 Oak Technology Computer system and method for tracking DMA transferred data within a read-ahead local buffer without interrupting the host processor
US6247097B1 (en) 1999-01-22 2001-06-12 International Business Machines Corporation Aligned instruction cache handling of instruction fetches across multiple predicted branch instructions
US6636523B1 (en) 1999-01-27 2003-10-21 Advanced Micro Devices, Inc. Flow control using rules queue monitoring in a network switching system
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US6549903B1 (en) 1999-02-17 2003-04-15 Elbrus International Limited Integrity of tagged data
US6625146B1 (en) 1999-05-28 2003-09-23 Advanced Micro Devices, Inc. Method and apparatus for operating a network switch in a CPU-less environment
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
US6748589B1 (en) 1999-10-20 2004-06-08 Transmeta Corporation Method for increasing the speed of speculative execution
US6438673B1 (en) 1999-12-30 2002-08-20 Intel Corporation Correlated address prediction
US7213247B1 (en) 2000-01-10 2007-05-01 Wind River Systems, Inc. Protection domains for a computer operating system
US6925549B2 (en) 2000-12-21 2005-08-02 International Business Machines Corporation Asynchronous pipeline control interface using tag values to control passing data through successive pipeline stages
US6560690B2 (en) 2000-12-29 2003-05-06 Intel Corporation System and method for employing a global bit for page sharing in a linear-addressed cache
US7062638B2 (en) 2000-12-29 2006-06-13 Intel Corporation Prediction of issued silent store operations for allowing subsequently issued loads to bypass unexecuted silent stores and confirming the bypass upon execution of the stores
GB0102515D0 (en) 2001-01-31 2001-03-21 Hewlett Packard Co Network adapter management
GB0102518D0 (en) 2001-01-31 2001-03-21 Hewlett Packard Co Trusted operating system
GB0102516D0 (en) 2001-01-31 2001-03-21 Hewlett Packard Co Trusted gateway system
GB0109722D0 (en) 2001-04-20 2001-06-13 Koninkl Philips Electronics Nv Extendible instruction system
US20030014466A1 (en) 2001-06-29 2003-01-16 Joubert Berger System and method for management of compartments in a trusted operating system
US6785776B2 (en) 2001-07-26 2004-08-31 International Business Machines Corporation DMA exclusive cache state providing a fully pipelined input/output DMA write mechanism
US7599369B2 (en) 2001-09-27 2009-10-06 Broadcom Corporation Apparatus and methods for hardware payload header suppression, expansion, and verification in a DOCSIS network
US20030196108A1 (en) 2002-04-12 2003-10-16 Kung Kenneth C. System and techniques to bind information objects to security labels
US7631107B2 (en) 2002-06-11 2009-12-08 Pandya Ashish A Runtime adaptable protocol processor
AU2003251492A1 (en) 2002-06-11 2003-12-22 Ashish A. Pandya High performance ip processor for tcp/ip, rdma and ip storage applications
US7254696B2 (en) 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7594111B2 (en) 2002-12-19 2009-09-22 Massachusetts Institute Of Technology Secure execution of a computer program
US6976147B1 (en) 2003-01-21 2005-12-13 Advanced Micro Devices, Inc. Stride-based prefetch mechanism using a prediction confidence value
US7403925B2 (en) 2003-03-17 2008-07-22 Intel Corporation Entitlement security and control
US7467414B2 (en) 2003-03-17 2008-12-16 Intel Corporation Entitlement security and control for information system entitlement
US7058918B2 (en) 2003-04-28 2006-06-06 Dafca, Inc. Reconfigurable fabric for SoCs using functional I/O leads
US6922740B2 (en) 2003-05-21 2005-07-26 Intel Corporation Apparatus and method of memory access control for bus masters
US7168063B2 (en) 2003-06-10 2007-01-23 Microsoft Corporation Systems and methods for employing tagged types in a dynamic runtime environment
US20050108518A1 (en) 2003-06-10 2005-05-19 Pandya Ashish A. Runtime adaptable security processor
US7437718B2 (en) 2003-09-05 2008-10-14 Microsoft Corporation Reviewing the security of trusted software components
US7580914B2 (en) 2003-12-24 2009-08-25 Intel Corporation Method and apparatus to improve execution of a stored program
US7313820B2 (en) 2003-12-29 2007-12-25 International Business Machines Corporation Method and system for providing an authorization framework for applications
US7114036B2 (en) 2004-01-14 2006-09-26 International Business Machines Corporation Method and apparatus for autonomically moving cache entries to dedicated storage when false cache line sharing is detected
US7698159B2 (en) * 2004-02-13 2010-04-13 Genworth Financial Inc. Systems and methods for performing data collection
CA2459004A1 (en) 2004-02-20 2005-08-20 Ibm Canada Limited - Ibm Canada Limitee Method and system to control data acces using security label components
US7340469B1 (en) 2004-04-16 2008-03-04 George Mason Intellectual Properties, Inc. Implementing security policies in software development tools
US7676590B2 (en) 2004-05-03 2010-03-09 Microsoft Corporation Background transcoding
US7430650B1 (en) 2004-06-17 2008-09-30 Richard Ross Generating a set of pre-fetch address candidates based on popular sets of address and data offset counters
US7698402B2 (en) 2004-06-30 2010-04-13 Hewlett-Packard Development Company, L.P. Method and apparatus for enhanced design of multi-tier systems
US7137086B2 (en) 2004-07-06 2006-11-14 Dafca, Inc. Assertion checking using two or more cores
US7455448B2 (en) 2004-07-26 2008-11-25 Texas Instruments Incorporated Rapid thermal anneal equipment and method using sichrome film
US8181219B2 (en) 2004-10-01 2012-05-15 Microsoft Corporation Access authorization having embedded policies
US7657756B2 (en) 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
JP2006113689A (ja) 2004-10-12 2006-04-27 Fujitsu Ltd バスブリッジ装置およびデータ転送方法
US7688838B1 (en) 2004-10-19 2010-03-30 Broadcom Corporation Efficient handling of work requests in a network interface device
US8332653B2 (en) 2004-10-22 2012-12-11 Broadcom Corporation Secure processing environment
US7496735B2 (en) 2004-11-22 2009-02-24 Strandera Corporation Method and apparatus for incremental commitment to architectural state in a microprocessor
US20060143689A1 (en) 2004-12-21 2006-06-29 Docomo Communications Laboratories Usa, Inc. Information flow enforcement for RISC-style assembly code
US7831570B2 (en) 2004-12-30 2010-11-09 Oracle International Corporation Mandatory access control label security
US7305635B1 (en) 2005-02-04 2007-12-04 Dafca, Inc. Serial implementation of assertion checking logic circuit
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7426705B1 (en) 2005-05-02 2008-09-16 Dafca, Inc. Combined hardware/software assertion checking
US7493434B1 (en) 2005-05-25 2009-02-17 Dafca, Inc. Determining the value of internal signals in a malfunctioning integrated circuit
US7707387B2 (en) 2005-06-01 2010-04-27 Microsoft Corporation Conditional execution via content addressable memory and parallel computing execution model
US20070006294A1 (en) 2005-06-30 2007-01-04 Hunter G K Secure flow control for a data flow in a computer and data flow in a computer network
JP4519738B2 (ja) 2005-08-26 2010-08-04 株式会社東芝 メモリアクセス制御装置
US8166404B2 (en) 2005-10-04 2012-04-24 Disney Enterprises, Inc. System and/or method for authentication and/or authorization
US7348796B2 (en) 2005-10-26 2008-03-25 Dafca, Inc. Method and system for network-on-chip and other integrated circuit architectures
US7296201B2 (en) 2005-10-29 2007-11-13 Dafca, Inc. Method to locate logic errors and defects in digital circuits
US7493247B2 (en) 2005-12-07 2009-02-17 Dafca, Inc. Integrated circuit analysis system and method using model checking
US8516193B1 (en) 2006-03-30 2013-08-20 Pegasystems Inc. Techniques for content-based caching in a computer system
US20070239861A1 (en) * 2006-04-05 2007-10-11 Dell Products L.P. System and method for automated operating system installation
US7581064B1 (en) 2006-04-24 2009-08-25 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7434002B1 (en) 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
JP4899616B2 (ja) 2006-04-28 2012-03-21 ソニー株式会社 変調装置および方法、プログラム、並びに記録媒体
US8245199B2 (en) 2006-05-05 2012-08-14 International Business Machines Corporation Selectively marking and executing instrumentation code
US20080052488A1 (en) 2006-05-10 2008-02-28 International Business Machines Corporation Method for a Hash Table Lookup and Processor Cache
US8289948B2 (en) 2006-06-16 2012-10-16 Broadcom Corporation Method and system for bridging and routing offload in a multiport wireless system
US20080016547A1 (en) 2006-07-11 2008-01-17 International Business Machines Corporation System and method for security planning with hard security constraints
US8301870B2 (en) 2006-07-27 2012-10-30 International Business Machines Corporation Method and apparatus for fast synchronization and out-of-order execution of instructions in a meta-program based computing system
US8938783B2 (en) 2006-09-11 2015-01-20 Microsoft Corporation Security language expressions for logic resolution
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US20080083298A1 (en) 2006-10-10 2008-04-10 Chu-Fu Lin Counter weight flywheel
US8266702B2 (en) 2006-10-31 2012-09-11 Microsoft Corporation Analyzing access control configurations
US7793166B2 (en) 2006-11-27 2010-09-07 Emc Corporation Methods and systems for recovering meta-data in a cache memory after a corruption event
US20080140737A1 (en) 2006-12-08 2008-06-12 Apple Computer, Inc. Dynamic memory management
US8132259B2 (en) 2007-01-04 2012-03-06 International Business Machines Corporation System and method for security planning with soft security constraints
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US8677457B2 (en) 2007-02-09 2014-03-18 Marvell World Trade Ltd. Security for codes running in non-trusted domains in a processor core
US7937432B2 (en) 2007-02-16 2011-05-03 Red Hat, Inc. State transition management according to a workflow management policy
US7945921B2 (en) 2007-03-01 2011-05-17 Microsoft Corporation Cross application domain late binding to non-local types
US8364910B2 (en) 2007-03-08 2013-01-29 Daniel Shawcross Wilkerson Hard object: hardware protection for software objects
JP5100176B2 (ja) 2007-03-29 2012-12-19 株式会社東芝 マルチプロセッサシステム
US7813342B2 (en) 2007-03-26 2010-10-12 Gadelrab Serag Method and apparatus for writing network packets into computer memory
US7640420B2 (en) 2007-04-02 2009-12-29 Intel Corporation Pre-fetch apparatus
GB2448149B (en) 2007-04-03 2011-05-18 Advanced Risc Mach Ltd Protected function calling
US7644044B2 (en) 2007-04-04 2010-01-05 Sony Corporation Systems and methods to distribute content over a network
NO326590B1 (no) 2007-04-16 2009-01-19 Kubekit As Fremgangsmate og anordning for verifikasjon av informasjonstilgang i IKT-system med flere sikkerhetsdimensjoner og sikkerhetsniva.
US8001390B2 (en) 2007-05-09 2011-08-16 Sony Computer Entertainment Inc. Methods and apparatus for secure programming and storage of data using a multiprocessor in a trusted mode
US8423720B2 (en) 2007-05-10 2013-04-16 International Business Machines Corporation Computer system, method, cache controller and computer program for caching I/O requests
US8561061B2 (en) 2007-05-14 2013-10-15 Vmware, Inc. Adaptive dynamic selection and application of multiple virtualization techniques
US7933889B2 (en) 2007-05-15 2011-04-26 Palo Alto Research Center Incorporated Method and system for metadata-driven document management and access control
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US20080301471A1 (en) 2007-05-31 2008-12-04 Marc Demarest Systems and methods in electronic evidence management for creating and maintaining a chain of custody
US20090097815A1 (en) 2007-06-18 2009-04-16 Lahr Nils B System and method for distributed and parallel video editing, tagging, and indexing
US7975107B2 (en) 2007-06-22 2011-07-05 Microsoft Corporation Processor cache management with software input via an intermediary
US20090006519A1 (en) 2007-06-29 2009-01-01 Microsoft Corporation Managing a computing environment
US7913172B2 (en) 2007-09-01 2011-03-22 International Business Machines Corporation Fine-grained, label-based, XML access control model
US8131663B1 (en) 2007-10-12 2012-03-06 Bonamy Taylor Apparatus for generating software logic rules by flowchart design
US7921260B2 (en) 2007-10-24 2011-04-05 International Business Machines Corporation Preferred write-mostly data cache replacement policies
US20090113111A1 (en) 2007-10-30 2009-04-30 Vmware, Inc. Secure identification of execution contexts
US7793049B2 (en) 2007-10-30 2010-09-07 International Business Machines Corporation Mechanism for data cache replacement based on region policies
US20090144388A1 (en) 2007-11-08 2009-06-04 Rna Networks, Inc. Network with distributed shared memory
US8782384B2 (en) 2007-12-20 2014-07-15 Advanced Micro Devices, Inc. Branch history with polymorphic indirect branch information
US20090165078A1 (en) * 2007-12-20 2009-06-25 Motorola, Inc. Managing policy rules and associated policy components
US8880483B2 (en) 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US20090178102A1 (en) 2008-01-04 2009-07-09 Khaled Alghathbar Implementing Security Policies in Software Development Tools
US8306987B2 (en) 2008-04-03 2012-11-06 Ofer Ber System and method for matching search requests and relevant data
GB0811422D0 (en) 2008-06-20 2008-07-30 Symbian Software Ltd Efficient caching
US8196213B2 (en) 2008-07-11 2012-06-05 Microsoft Corporation Verification of un-trusted code for consumption on an insecure device
EP2309286B1 (en) 2008-07-24 2019-08-21 Toshiba Medical Systems Corporation Magnetic resonance imaging apparatus for contrast enhancement of blood vessel images
US8321958B1 (en) * 2008-07-30 2012-11-27 Next It Corporation Detecting presence of a subject string in a target string and security event qualification based on prior behavior by an end user of a computer system
WO2010019916A1 (en) 2008-08-14 2010-02-18 The Trustees Of Princeton University Hardware trust anchors in sp-enabled processors
US8181005B2 (en) 2008-09-05 2012-05-15 Advanced Micro Devices, Inc. Hybrid branch prediction device with sparse and dense prediction caches
US8332909B2 (en) 2008-12-16 2012-12-11 Microsoft Corporation Automated software restriction policy rule generation
US8806101B2 (en) 2008-12-30 2014-08-12 Intel Corporation Metaphysical address space for holding lossy metadata in hardware
US8190832B2 (en) 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US8335754B2 (en) 2009-03-06 2012-12-18 Tagged, Inc. Representing a document using a semantic structure
US8176282B2 (en) 2009-03-11 2012-05-08 Applied Micro Circuits Corporation Multi-domain management of a cache in a processor system
US8447722B1 (en) 2009-03-25 2013-05-21 Mcafee, Inc. System and method for data mining and security policy management
US20100250729A1 (en) 2009-03-30 2010-09-30 Morris Robert P Method and System For Providing Access To Metadata Of A Network Accessible Resource
US8332350B2 (en) 2009-04-08 2012-12-11 Titus Inc. Method and system for automated security access policy for a document management system
US8370577B2 (en) 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US20100333116A1 (en) 2009-06-30 2010-12-30 Anand Prahlad Cloud gateway system for managing data storage to cloud storage sites
US8688964B2 (en) 2009-07-20 2014-04-01 Microchip Technology Incorporated Programmable exception processing latency
US8635415B2 (en) 2009-09-30 2014-01-21 Intel Corporation Managing and implementing metadata in central processing unit using register extensions
JP2011095852A (ja) 2009-10-27 2011-05-12 Toshiba Corp キャッシュメモリ制御回路
AU2010322819B2 (en) 2009-11-30 2014-11-27 Bae Systems Plc Processing network traffic
US9087200B2 (en) 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
US8627042B2 (en) 2009-12-30 2014-01-07 International Business Machines Corporation Data parallel function call for determining if called routine is data parallel
US20110219424A1 (en) 2010-03-05 2011-09-08 Microsoft Corporation Information protection using zones
WO2011108695A1 (ja) 2010-03-05 2011-09-09 日本電気株式会社 並列データ処理システム、並列データ処理方法及びプログラム
US9491052B2 (en) * 2010-03-26 2016-11-08 Bladelogic, Inc. Topology aware smart merge
US8954418B2 (en) 2010-05-14 2015-02-10 Sap Se Performing complex operations in a database using a semantic layer
US8271447B1 (en) 2010-06-18 2012-09-18 Emc International Company Mirroring metadata in a continuous data protection environment
US8732697B2 (en) 2010-08-04 2014-05-20 Premkumar Jonnala System, method and apparatus for managing applications on a device
GB2483907A (en) 2010-09-24 2012-03-28 Advanced Risc Mach Ltd Privilege level switching for data processing circuitry when in a debug mode
US8738860B1 (en) 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
US8819225B2 (en) 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
CN103282889B (zh) 2010-11-16 2017-02-22 英特尔公司 用于数据储存系统的端点高速缓存
US9934166B2 (en) 2010-12-10 2018-04-03 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US20120151184A1 (en) 2010-12-10 2012-06-14 Daniel Shawcross Wilkerson Hard object: constraining control flow and providing lightweight kernel crossings
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US9792472B1 (en) 2013-03-14 2017-10-17 Impinj, Inc. Tag-handle-based authentication of RFID readers
US8966182B2 (en) 2011-02-08 2015-02-24 International Business Machines Corporation Software and hardware managed dual rule bank cache for use in a pattern matching accelerator
US8996807B2 (en) 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8875170B1 (en) 2011-02-18 2014-10-28 Isaac S. Daniel Content roaming system and method
US8949270B2 (en) 2011-03-10 2015-02-03 Salesforce.Com, Inc. Methods and systems for processing social media data
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
EP2695101B1 (en) 2011-04-04 2022-11-09 Nextlabs, Inc. Protecting information using policies and encryption
US20180107591A1 (en) 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
US10114477B2 (en) 2011-07-14 2018-10-30 Samsung Electronics Co., Ltd. Display device and method thereof
US8955111B2 (en) 2011-09-24 2015-02-10 Elwha Llc Instruction set adapted for security risk monitoring
US9513884B2 (en) 2011-08-16 2016-12-06 International Business Machines Corporation Thermal-aware source code compilation
WO2013032422A1 (en) 2011-08-26 2013-03-07 Hewlett-Packard Development Company, L.P. Data leak prevention systems and methods
US9329869B2 (en) 2011-10-03 2016-05-03 International Business Machines Corporation Prefix computer instruction for compatibily extending instruction functionality
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US20130160775A1 (en) 2011-12-21 2013-06-27 University Of Technology, Sidney Method and apparatus for lower back pain relief
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
TWI453608B (zh) 2012-02-03 2014-09-21 Chunghwa Telecom Co Ltd System and method for managing a large number of multiple data
US8966204B2 (en) 2012-02-29 2015-02-24 Hewlett-Packard Development Company, L.P. Data migration between memory locations
US9208082B1 (en) 2012-03-23 2015-12-08 David R. Cheriton Hardware-supported per-process metadata tags
WO2013147865A1 (en) 2012-03-30 2013-10-03 Intel Corporation A mechanism for saving and retrieving micro-architecture context
US9075710B2 (en) 2012-04-17 2015-07-07 SanDisk Technologies, Inc. Non-volatile key-value store
US10474584B2 (en) 2012-04-30 2019-11-12 Hewlett Packard Enterprise Development Lp Storing cache metadata separately from integrated circuit containing cache controller
US8874850B1 (en) 2012-05-10 2014-10-28 Netapp, Inc. Hierarchically tagged cache
JP5832954B2 (ja) 2012-05-18 2015-12-16 日本電信電話株式会社 タグ付与装置及びタグ付与方法
US20130312099A1 (en) 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US8909879B2 (en) 2012-06-11 2014-12-09 International Business Machines Corporation Counter-based entry invalidation for metadata previous write queue
US8826391B2 (en) 2012-07-02 2014-09-02 Freescale Semiconductor, Inc. Virtualized trusted descriptors
US8572410B1 (en) 2012-07-18 2013-10-29 Freescale Semiconductor, Inc. Virtualized protected storage
US10305937B2 (en) 2012-08-02 2019-05-28 CellSec, Inc. Dividing a data processing device into separate security domains
US20140047183A1 (en) 2012-08-07 2014-02-13 Dell Products L.P. System and Method for Utilizing a Cache with a Virtual Machine
US9367480B2 (en) 2012-08-07 2016-06-14 Dell Products L.P. System and method for updating data in a cache
US20140109176A1 (en) 2012-10-15 2014-04-17 Citrix Systems, Inc. Configuring and providing profiles that manage execution of mobile applications
US9098417B2 (en) 2012-12-13 2015-08-04 Advanced Micro Devices, Inc. Partitioning caches for sub-entities in computing devices
US9183055B2 (en) 2013-02-07 2015-11-10 Advanced Micro Devices, Inc. Selecting a resource from a set of resources for performing an operation
CN104981802B (zh) 2013-02-27 2018-06-19 日立数据管理有限公司 针对对象存储器索引系统的内容类别
US9569612B2 (en) 2013-03-14 2017-02-14 Daniel Shawcross Wilkerson Hard object: lightweight hardware enforcement of encapsulation, unforgeability, and transactionality
US8959657B2 (en) 2013-03-14 2015-02-17 Appsense Limited Secure data management
US9165078B2 (en) 2013-03-14 2015-10-20 International Business Machines Corporation Row-based data filtering at a database level
US9037811B2 (en) 2013-03-15 2015-05-19 International Business Machines Corporation Tagging in memory control unit (MCU)
US9298911B2 (en) 2013-03-15 2016-03-29 Intel Corporation Method, apparatus, system, and computer readable medium for providing apparatus security
KR101501462B1 (ko) 2013-06-10 2015-03-11 이용재 통합 데이터 객체 관리 시스템 및 그 방법
US9734080B2 (en) 2013-08-08 2017-08-15 Nxp Usa, Inc. Cache organization and method
KR20160043029A (ko) 2013-08-12 2016-04-20 그라파이트 소프트웨어 코포레이션 보안 인증 및 암호화된 도메인들로의 스위칭
US10185584B2 (en) 2013-08-20 2019-01-22 Teleputers, Llc System and method for self-protecting data
US9680738B2 (en) 2013-09-15 2017-06-13 Nicira, Inc. Tracking prefixes of values associated with different rules to generate flows
US9244827B2 (en) 2013-09-25 2016-01-26 Intel Corporation Store address prediction for memory disambiguation in a processing device
US9391879B2 (en) 2013-09-25 2016-07-12 Airbus Ds Communications, Inc. Mixed media call routing
US20160210216A1 (en) 2013-09-27 2016-07-21 Hewlett Packard Enterprise Develepment Lp Application Control Flow Models
GB201318723D0 (en) 2013-10-23 2013-12-04 Avecto Ltd Computer device and method for isolating untrusted content
US9507589B2 (en) 2013-11-07 2016-11-29 Red Hat, Inc. Search based content inventory comparison
US9495318B2 (en) 2013-11-25 2016-11-15 Apple Inc. Synchronizing transactions for a single master over multiple busses
GB2518022B (en) 2014-01-17 2015-09-23 Imagination Tech Ltd Stack saved variable value prediction
US9411747B2 (en) 2014-02-04 2016-08-09 Freescale Semiconductor, Inc. Dynamic subroutine stack protection
US10320676B2 (en) 2014-02-28 2019-06-11 Cisco Technology, Inc. Smarter policy decisions based on metadata in data flows
US9323684B2 (en) 2014-03-21 2016-04-26 Intel Corporation Dynamic cache and memory allocation for memory subsystems
US9245123B1 (en) 2014-05-07 2016-01-26 Symantec Corporation Systems and methods for identifying malicious files
JP6287571B2 (ja) 2014-05-20 2018-03-07 富士通株式会社 演算処理装置、情報処理装置、及び、演算処理装置の制御方法
US9489532B2 (en) 2014-05-28 2016-11-08 Siemens Product Lifecycle Management Software Inc. Fast access rights checking of configured structure data
US9336047B2 (en) 2014-06-30 2016-05-10 International Business Machines Corporation Prefetching of discontiguous storage locations in anticipation of transactional execution
TW201600997A (zh) 2014-06-30 2016-01-01 萬國商業機器公司 於一集中式管理環境中動態產生一策略實施點之封包檢視策略的方法、資訊設備及電腦程式產品
US9992298B2 (en) 2014-08-14 2018-06-05 International Business Machines Corporation Relationship-based WAN caching for object stores
US9525606B1 (en) 2014-09-04 2016-12-20 HCA Holdings, Inc. Differential processing of data streams based on protocols
EP2993606A1 (en) 2014-09-05 2016-03-09 Axiomatics AB Provisioning system-level permissions using attribute-based access control policies
US9483250B2 (en) 2014-09-15 2016-11-01 International Business Machines Corporation Systems management based on semantic models and low-level runtime state
US9436847B2 (en) 2014-09-26 2016-09-06 Intel Corporation Cryptographic pointer address encoding
US10546132B2 (en) 2014-09-30 2020-01-28 Micro Focus Llc String property labels for static analysis
US9767272B2 (en) 2014-10-20 2017-09-19 Intel Corporation Attack Protection for valid gadget control transfers
US10078763B2 (en) 2014-11-19 2018-09-18 BAE Systems Information and Electronic Systems Integration Incc Programmable unit for metadata processing
US9830162B2 (en) 2014-12-15 2017-11-28 Intel Corporation Technologies for indirect branch target security
US9742616B2 (en) 2014-12-23 2017-08-22 Intel Corporation Device for indicating packet processing hints
US9576147B1 (en) 2015-01-05 2017-02-21 Amazon Technologies, Inc. Security policy application through data tagging
CN104657500A (zh) 2015-03-12 2015-05-27 浪潮集团有限公司 一种基于key-value键值对的分布式存储方法
US9747218B2 (en) 2015-03-20 2017-08-29 Mill Computing, Inc. CPU security mechanisms employing thread-specific protection domains
US9736185B1 (en) 2015-04-21 2017-08-15 Infoblox Inc. DNS or network metadata policy for network control
US9846648B2 (en) 2015-05-11 2017-12-19 Intel Corporation Create page locality in cache controller cache allocation
US20180143890A1 (en) * 2015-05-26 2018-05-24 Mitsubishi Electric Corporation Simulation apparatus, simulation method, and computer readable medium
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9910611B2 (en) 2015-05-29 2018-03-06 Intel Corporation Access control for memory protection key architecture
US9703956B1 (en) 2015-06-08 2017-07-11 Symantec Corporation Systems and methods for categorizing virtual-machine-aware applications for further analysis
US10469464B2 (en) 2015-06-09 2019-11-05 Intel Corporation Self-configuring key management system for an internet of things network
US10114958B2 (en) 2015-06-16 2018-10-30 Microsoft Technology Licensing, Llc Protected regions
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10073977B2 (en) 2015-07-20 2018-09-11 Intel Corporation Technologies for integrity, anti-replay, and authenticity assurance for I/O data
US10176014B2 (en) 2015-07-27 2019-01-08 Futurewei Technologies, Inc. System and method for multithreaded processing
US9846716B1 (en) 2015-07-28 2017-12-19 HCA Holdings, Inc. Deidentification of production data
US11381566B2 (en) 2015-08-12 2022-07-05 Red Hat, Inc. Isolating network resources in a virtualized environment
US10586076B2 (en) 2015-08-24 2020-03-10 Acronis International Gmbh System and method for controlling access to OS resources
US20170083338A1 (en) 2015-09-19 2017-03-23 Microsoft Technology Licensing, Llc Prefetching associated with predicated load instructions
US10152330B2 (en) 2015-09-21 2018-12-11 Bae Systems Information And Electronic Systems Integration Inc. Memory protection using a tagged architecture
US9612967B1 (en) 2015-09-25 2017-04-04 Dell Products, L.P. Cache load balancing by reclaimable block migration
US9946642B2 (en) 2015-11-13 2018-04-17 Samsung Electronics Co., Ltd Distributed multimode storage management
US9507598B1 (en) 2015-12-15 2016-11-29 International Business Machines Corporation Auxiliary branch prediction with usefulness tracking
US10235176B2 (en) 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US10936713B2 (en) 2015-12-17 2021-03-02 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10506059B2 (en) 2016-03-18 2019-12-10 Qualcomm Incorporated Signaling of application content packaging and delivery
GB2548845B (en) 2016-03-29 2019-11-27 Imagination Tech Ltd Handling memory requests
US11709679B2 (en) 2016-03-31 2023-07-25 Qualcomm Incorporated Providing load address predictions using address prediction tables based on load path history in processor-based systems
EP3460701A4 (en) 2016-06-23 2019-05-22 Mitsubishi Electric Corporation IMPACT DETECTOR AND IMPACT DETECTION PROGRAM
US10685111B2 (en) 2016-10-31 2020-06-16 Crowdstrike, Inc. File-modifying malware detection
US10409603B2 (en) 2016-12-30 2019-09-10 Intel Corporation Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory
US10877851B2 (en) 2017-03-24 2020-12-29 Commvault Systems, Inc. Virtual machine recovery point selection
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
CN109840095A (zh) 2017-11-28 2019-06-04 比亚迪股份有限公司 储能系统的启动方法、储能设备及存储介质
US10635810B2 (en) 2018-01-31 2020-04-28 Jungle Disk, L.L.C. Probabilistic anti-encrypting malware protections for cloud-based file systems
SG11202007272QA (en) 2018-02-02 2020-08-28 Charles Stark Draper Laboratory Inc Systems and methods for policy execution processing
WO2019152805A1 (en) 2018-02-02 2019-08-08 Dover Microsystems, Inc. System and method for translating mapping policy into code
TW201935305A (zh) 2018-02-02 2019-09-01 美商多佛微系統公司 用於後快取互鎖之系統和方法
WO2019152795A1 (en) 2018-02-02 2019-08-08 Dover Microsystems, Inc. Systems and methods for transforming instructions for metadata processing
US11307854B2 (en) 2018-02-07 2022-04-19 Intel Corporation Memory write log storage processors, methods, systems, and instructions
US11417109B1 (en) 2018-03-20 2022-08-16 Amazon Technologies, Inc. Network-based vehicle event detection system
US10984122B2 (en) 2018-04-13 2021-04-20 Sophos Limited Enterprise document classification
WO2019213061A1 (en) 2018-04-30 2019-11-07 Dover Microsystems, Inc. Systems and methods for checking safety properties
US10776482B2 (en) 2018-05-18 2020-09-15 International Business Machines Corporation Automated virtual machine integrity checks
US10922411B2 (en) 2018-06-20 2021-02-16 Malwarebytes Inc. Intelligent event collection for cloud-based malware detection
US10970396B2 (en) 2018-06-20 2021-04-06 Malwarebytes Inc. Intelligent event collection for rolling back an endpoint state in response to malware
US10424043B1 (en) 2018-07-02 2019-09-24 Intel Corporation Efficiently enqueuing workloads from user mode to hardware across privilege domains
TW202022679A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US12124566B2 (en) 2018-11-12 2024-10-22 Dover Microsystems, Inc. Systems and methods for metadata encoding
WO2020132012A1 (en) 2018-12-18 2020-06-25 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US11360704B2 (en) 2018-12-21 2022-06-14 Micron Technology, Inc. Multiplexed signal development in a memory device
US12393677B2 (en) 2019-01-18 2025-08-19 Dover Microsystems, Inc. Systems and methods for metadata classification
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11522905B2 (en) 2019-09-11 2022-12-06 International Business Machines Corporation Malicious virtual machine detection
US12079197B2 (en) 2019-10-18 2024-09-03 Dover Microsystems, Inc. Systems and methods for updating metadata
US20220398312A1 (en) 2019-11-06 2022-12-15 Dover Microsystems, Inc. Systems and methods for improving efficiency of metadata processing
US20220129343A1 (en) 2020-10-22 2022-04-28 Dover Microsystems, Inc. Systems and methods for reducing exception latency
US12124576B2 (en) 2020-12-23 2024-10-22 Dover Microsystems, Inc. Systems and methods for policy violation processing

Also Published As

Publication number Publication date
US20220309134A1 (en) 2022-09-29
US12242575B2 (en) 2025-03-04
TW201937393A (zh) 2019-09-16
US20210026934A1 (en) 2021-01-28
US11748457B2 (en) 2023-09-05
US11977613B2 (en) 2024-05-07
WO2019152805A1 (en) 2019-08-08
EP3746921B1 (en) 2023-12-27
US20240045932A1 (en) 2024-02-08
EP3746921A1 (en) 2020-12-09
US20220300583A1 (en) 2022-09-22
US20210042100A1 (en) 2021-02-11
WO2019152792A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
US12242575B2 (en) Systems and methods for policy linking and/or loading for secure initialization
US12079197B2 (en) Systems and methods for updating metadata
US12373314B2 (en) Systems and methods for executing state machine in parallel with application code
TW201941049A (zh) 用於轉換詮釋資料處理的指令的系統和方法
US11875180B2 (en) Systems and methods for stalling host processor
US12124566B2 (en) Systems and methods for metadata encoding
US12393677B2 (en) Systems and methods for metadata classification
US20220398312A1 (en) Systems and methods for improving efficiency of metadata processing
US20240354412A1 (en) Systems and methods for on-demand loading of metadata
US20240419783A1 (en) Systems and methods for compartmentalization
US20250348599A1 (en) Systems and methods for enforcing encoded policies