System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及軟件安全,尤其涉及一種基于內存訪問控制列表的軟件安全保護方法及裝置。
技術介紹
1、軟件漏洞是計算機系統所面臨的最顯著的安全威脅之一。這些漏洞不僅包括最為流行的內存破壞漏洞,也同樣包括命令注入及邏輯錯誤等非內存破壞漏洞。無論是內存破壞漏洞或是非內存破壞漏洞,這些漏洞被利用后均有可能導致信息泄露、任意代碼執行、權限提升或未授權訪問等不良后果。
2、對此,研究人員從各個方面提出了許多防護方案來緩解這些漏洞,這些防護方案或是基于純軟件的,或是由硬件輔助的。
3、其中,第一類防護方案從根本上消除了特定類型漏洞的根本原因,如針對內存破壞漏洞的空間及時序內存安全方案。為了克服第一類防護方案的設計復雜性以及高額外開銷,第二類防護方案高效地檢測并阻斷特定的流行的攻擊類型或利用手段,如針對控制流劫持攻擊的控制流完整性方案。其他一些防護方案通過保證特定的安全不變式不被違反來限制漏洞的能力,如進程內隔離機制以及軟件裁剪方案等。
4、上述防護方案中的一小部分已經因其高效性及有效性而被廣泛部署于真實世界的系統中。然而,這些防護方案僅聚焦于內存破壞漏洞所造成的特定攻擊類型,如針對棧上緩沖區溢出的棧金絲雀及針對控制流劫持攻擊的intel?cet(control-flow?enforcementtechnology,控制流強制技術),并不能緩解其他類型的攻擊或防護非內存破壞漏洞。
5、進一步地,前文所述的絕大部分方案需要基于待加固的軟件的源代碼來進行代碼插樁及代碼變換,因此無法處理二進制可執行文件。
6、與前文所述的僅能緩解固定類型漏洞的方案不同,監視器(monitors)是一類靈活且可編程的方案,能夠用于實施各種各樣的安全策略,通常在進程執行的同時,對進程進行監視。
7、研究人員提出了許多監視器方案?;谲浖谋O視器通常會獨占一個專用的通用處理器核心來分析收集的信息并做出決策。部分商用處理器中也提供了相關硬件特性來加速收集程序運行時信息,例如intel?pt(processor?trace,處理器跟蹤)及arm?coresight。另外,許多硬件輔助的技術也被提出用來過濾收集到的信息,從而減少需要處理的收集到的信息的體量。盡管如此,當一個通用處理器核心被監視器占用時,其無法執行其他的普通的任務。因此,在總cpu時間和芯片面積的意義下,該類監視器所引入的額外開銷是相當顯著的。
8、另外一些監視器主要基于硬件,其存在若干典型的架構設計。
9、第一類設計將每個內存字與一個作為元數據的標簽關聯,根據配置的策略來進行標簽傳播與計算,并最終做出決策。這類設計的具體實例包括harmoni以及pump。作為基于內存標簽的監視器,根據標簽的大小,標簽的存儲與管理會不可避免地為其引入不可忽略的硬件及性能額外開銷。該類設計中的部分方案需要修改的組件甚至貫穿了整個計算機體系結構,從內存到寄存器。
10、第二類設計將可重構的結構(即fpga,field-programmable?gate?array,現場可編程邏輯門陣列)集成至片上系統中,利用fpga中的可編程邏輯來分析收集到的程序運行時行為信息,并最終做出決策。該類設計中的典型設計為flexcore。由于fpga的時鐘頻率比高性能的現代處理器核低很多,當fpga無法處理收集到的大量信息時,其會阻塞處理器核的執行,從而引入較大的性能額外開銷。對fpga進行重新配置同樣較為緩慢,且在進程上下文切換時同樣會引入較大的性能額外開銷。
11、最后一種設計將協處理器集成至片上系統中,利用協處理器來分析收集到的信息并最終做出決策。phmon是這一類設計中最先進的設計方案。與第二類設計類似,由于協處理器的性能相對于通用處理器核而言較低(否則,協處理器占用的芯片面積將會較大),這類設計當協處理器無法處理收集到的信息時,同樣會引入較大的性能額外開銷。在進程上下文切換時對協處理器進行重新編程同樣會引入不可忽略的性能額外開銷。
12、監視器的一個重要屬性是其能否支持實時監視。具體而言,例如,收集與分析程序執行軌跡(trace)或提交日志(commit?log)的監視器通常不支持實時監視。這是由于程序執行軌跡和提交日志僅在感興趣的指令執行完成以后由處理器核產生。在這種情況下,在監視器檢測到任何異常行為并產生異常(exception)來終止進程之前,已被執行的指令產生的惡意副作用可能已經發生。例如,對某些關鍵設備的i/o請求可能已被發出,或承載了某些敏感信息的網絡數據包可能已被發送。換言之,監視器產生的異常是異步的,而非實時的。
13、總而言之,如何解決現有軟件安全保護方法技術中監視器方案具有較高的硬件和/或性能額外開銷,且不支持實時監視的問題,是計算機領域亟待解決的重要課題。
技術實現思路
1、本專利技術提供一種基于內存訪問控制列表的軟件安全保護方法及裝置,用以克服現有軟件安全保護方法技術中監視器方案具有較高的硬件和/或性能額外開銷,且不支持實時監視的缺陷,在監視時不會引入任何運行時性能額外開銷,且能夠極大降低硬件開銷,還能緩解不同類型的漏洞。
2、一方面,本專利技術提供一種基于內存訪問控制列表的軟件安全保護方法,包括:獲取目標程序運行時內存訪問指令所產生的當前內存操作;基于預存的內存訪問控制列表,對所述當前內存操作進行匹配,得到內存操作匹配結果;根據所述內存操作匹配結果,確定執行當前內存操作或阻止當前內存操作。
3、進一步地,所述當前內存操作包括若干字段,所述若干字段至少包括發出內存操作的指令地址、內存操作類型、內存操作指向的內存地址以及內存操作訪問的內存內容;相應的,所述內存訪問控制列表包括若干條內存訪問規則,每條內存訪問規則包括所述若干字段期望的值、用于匹配的掩碼以及用于執行的動作,所述動作為允許執行內存操作或阻止內存操作。
4、進一步地,所述基于預存的內存訪問控制列表,對所述當前內存操作進行匹配,得到內存操作匹配結果,包括:將所述當前內存操作所包含的若干字段與所述內存訪問控制列表中的若干條內存訪問規則采用值和掩碼的方式進行匹配,得到內存操作匹配結果;其中,所述內存操作匹配結果為匹配上規則或未匹配上規則。
5、進一步地,所述根據所述內存操作匹配結果,確定執行當前內存操作或阻止當前內存操作,包括:在所述內存操作匹配結果為匹配上規則的情況下,按照匹配上的目標規則所包含的動作,確定執行當前內存操作或阻止當前內存操作;在所述內存操作匹配結果為未匹配上規則的情況下,按照默認動作執行;其中,所述默認動作為允許執行當前內存操作或阻止當前內存操作并返回一個異常終止當前進程。
6、進一步地,對于進程的每一個線程,均維護有一個全局的狀態寄存器;相應的,所述當前內存操作包括若干字段,所述若干字段至少本文檔來自技高網...
【技術保護點】
1.一種基于內存訪問控制列表的軟件安全保護方法,其特征在于,包括:
2.根據權利要求1所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,
3.根據權利要求2所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,所述基于預存的內存訪問控制列表,對所述當前內存操作進行匹配,得到內存操作匹配結果,包括:
4.根據權利要求3所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,所述根據所述內存操作匹配結果,確定執行當前內存操作或阻止當前內存操作,包括:
5.根據權利要求1所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,對于進程的每一個線程,均維護有一個全局的狀態寄存器;
6.根據權利要求1至5中任一項所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,所述內存訪問指令包括RISC-V指令集中的內存訪問指令。
7.一種基于內存訪問控制列表的軟件安全保護裝置,其特征在于,包括:
8.一種電子設備,包括存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,其特征在
9.一種非暫態計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至6中任一項所述的基于內存訪問控制列表的軟件安全保護方法。
10.一種計算機程序產品,包括計算機程序,其特征在于,所述計算機程序被處理器執行時實現如權利要求1至6中任一項所述的基于內存訪問控制列表的軟件安全保護方法。
...【技術特征摘要】
1.一種基于內存訪問控制列表的軟件安全保護方法,其特征在于,包括:
2.根據權利要求1所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,
3.根據權利要求2所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,所述基于預存的內存訪問控制列表,對所述當前內存操作進行匹配,得到內存操作匹配結果,包括:
4.根據權利要求3所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,所述根據所述內存操作匹配結果,確定執行當前內存操作或阻止當前內存操作,包括:
5.根據權利要求1所述的基于內存訪問控制列表的軟件安全保護方法,其特征在于,對于進程的每一個線程,均維護有一個全局的狀態寄存器;
6.根據權利要求1至5中任一項所述的基于內存訪問控制列表的軟件安全保護方...
【專利技術屬性】
技術研發人員:張超,譚聞德,李辰洋,李媛,吳建平,韓心慧,曹溪,
申請(專利權)人:清華大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。