• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SDT安全訪問控制的方法

      2011-05-08 02:09:50王懷軍房鼎益湯戰(zhàn)勇
      電子科技 2011年11期
      關鍵詞:安全策略二進制訪問控制

      趙 媛,王懷軍,房鼎益,湯戰(zhàn)勇

      (西北大學信息科學與技術學院,陜西西安 710127)

      隨著網絡環(huán)境的復雜,軟件安全問題進一步暴露。一方面,對軟件開發(fā)商而言,軟件易被攻擊從而失去版權認證能力或者丟失關鍵技術;另一方面,對軟件使用者而言,其存儲信息的安全性無法得到保證,突出的問題之一便是訪問安全問題。尤其對于許多組織來說,他們的計算機里存儲著關鍵的數據,若被非授權用戶訪問,那結局將是災難性的。2010年6月,美國AT&T網站服務器出現嚴重安全漏洞,近11萬名iPad用戶信息被發(fā)布到互聯網上,給蘋果和AT&T公司帶來了嚴重的聲譽損害。2010年末,本田公司美國網站遭黑客攻擊,大約490萬名用戶信息被竊取,包括用戶姓名、郵件地址、車牌號等信息均被外泄。CNCERT監(jiān)測結果發(fā)現,重大網絡安全事件的發(fā)生都有應用軟件缺陷的誘因存在[1],因此應用軟件的安全需要得到重視,解決信息安全問題迫在眉睫。

      第16屆SACMAT會議論文征集結果表明,當前訪問控制技術的核心思想仍然是對傳統DAC,MAC,RBAC思想的擴展,通過建立授權管理子系統來管理權限,大多都是從權限管理的角度進行描述[2]。而文中基于SDT(Software Dynamic Translation軟件動態(tài)翻譯,)思想,提出了一套結合軟件動態(tài)翻譯器進行訪問控制的方法。并借助軟件動態(tài)翻譯開源平臺Strata[3],實現了訪問控制的機制。不同于傳統的訪問控制思想,它的側重點在于動態(tài)執(zhí)行中對系統資源的訪問控制。

      1 SDT思想

      動態(tài)二進制翻譯(SDT Software Dynamic Translation)技術,是一種即時編譯技術,它將針對源體系結構編譯生成的二進制代碼動態(tài)翻譯為可以在目的體系結構上運行的代碼[4],如圖1所示。

      圖1 軟件動態(tài)翻譯器

      軟件動態(tài)翻譯器作為一個軟件層,位于操作系統之上,應用程序二進制之下,來控制程序的執(zhí)行。通過插入、修改可執(zhí)行代碼等方式來動態(tài)控制程序的執(zhí)行過程從而影響程序的執(zhí)行狀態(tài),動態(tài)收集正在執(zhí)行程序的信息來決定怎樣控制程序的執(zhí)行[5]。

      軟件動態(tài)翻譯系統的功能模塊有系統初始化模塊、運行時調度模塊、緩存管理模塊、虛擬CPU模塊、虛擬環(huán)境模塊等[6-7]。總體框圖如圖2所示。

      圖2 SDT總體方框圖

      系統初始化模塊負責完成對系統環(huán)境參數等初始化的過程,完成后將控制交給運行時調度模塊;此模塊負責對應用程序進行虛擬化,動態(tài)切片應用程序,動態(tài)收集正在執(zhí)行程序的信息,選擇合適的片進行執(zhí)行,對調度過程進行優(yōu)化等;選定要執(zhí)行的片段后,調用緩存管理模塊,此模塊進行片段緩存的建立以及片段的維護等;建立好緩存后,將要執(zhí)行的片段放入緩存,然后請求虛擬CPU模塊,對當前片段進行標準硬件的模擬過程,即“取指”、“譯碼”、“翻譯”、“執(zhí)行”;對整個應用程序進行同樣的操作后,請求虛擬環(huán)境模塊,對上下文環(huán)境進行保存,轉換到真實的機器上進行操作。此外,虛擬環(huán)境模塊還完成中斷、I/O操作及存儲器地址映像與存儲保護等功能。

      2 基于SDT思想的訪問控制方法

      SDT可以控制和動態(tài)修改正在執(zhí)行的程序從而提供對于不可信的二進制代碼可以強制執(zhí)行特定用戶安全策略的機制[8]。SDT訪問控制方法的基本思想是:通過軟件動態(tài)翻譯器將不可信二進制代碼的執(zhí)行過程跟系統資源隔離,不可信二進制代碼只能通過軟件動態(tài)翻譯器來執(zhí)行,在動態(tài)執(zhí)行過程中,由SDT控制將用戶設定的安全策略強制加入可執(zhí)行代碼中,從而軟件動態(tài)翻譯器便通過安全策略來控制應用程序對系統資源的訪問。

      (1)使用安全加載器加載不可信的二進制文件。安全加載器定位應用程序的入口點并且在此處插入對軟件動態(tài)翻譯器啟動進程的調用。

      (2)軟件動態(tài)翻譯器建立一張系統調用表來監(jiān)視指定的系統調用以及對應的返回函數,并且動態(tài)加載二進制代碼。

      (3)軟件動態(tài)翻譯器動態(tài)切片執(zhí)行不可信二進制文件,具體為:調用系統初始化模塊進行系統初始化,運行時調度模塊對應用程序進行切片,緩存管理模塊進行片段緩存的建立和片段維護,虛擬CPU模塊進行標準硬件的執(zhí)行過程。翻譯函數檢查應用程序代碼并定位操作系統調用。

      (4)在系統調用定位時,要對每一次系統調用進行監(jiān)視。具體為:對每一個系統調用地址,軟件動態(tài)翻譯器檢查此系統調用是否是被監(jiān)視之一。多數情況下,在運行時刻,軟件動態(tài)翻譯器可以決定要被調用的系統調用,在這種情況下,如果操作系統調用是被監(jiān)視的一個,那么執(zhí)行操作系統調用的代碼被替換成用戶指定安全策略代碼;若不是,則不會采取翻譯行為,操作系統調用代碼直接被復制到片段緩存。有一些情況,翻譯階段不能決定操作系統調用是否被調用,這種情況下,軟件動態(tài)翻譯器必須在片段被執(zhí)行時,產生并插入一些進行檢測的代碼,檢測是否被調用的操作系統調用是監(jiān)視之一,如果是,調用合適的用戶提供的安全策略代碼,否則,操作系統調用被執(zhí)行。

      3 基于Strata訪問控制的實現

      采用Strata作為實驗平臺。利用其本身提供的安全虛擬可執(zhí)行環(huán)境、可擴展接口來實現文中提出的訪問控制方法。安全策略的編寫采用C語言。即在一個安全的虛擬可執(zhí)行環(huán)境中,通過軟件動態(tài)翻譯器虛擬化可執(zhí)行應用程序并注入安全策略相結合來實現訪問控制。

      3.1 Strata平臺簡介

      目前幾種比較有影響的軟件動態(tài)翻譯系統有,Intel公司的IA-32 Execution Layer,IBM公司的DAISY,Transmeta的CMS及HP的Dynamo[4]等。這些系統對軟件動態(tài)翻譯系統關鍵技術有不同的實現。因此這些系統都有比較特定的應用場景[6]。而由Pittsburgh大學和Virginia大學的研究人員,在開發(fā)CoCo項目[9]過程中開發(fā)的軟件動態(tài)翻譯平臺——Strata,是一個滿足可擴展性和可移植性的通用平臺。Strata被組織成虛擬機的形式,位于可執(zhí)行代碼之下,操作系統之上的軟件層,可以動態(tài)控制和修改可執(zhí)行代碼,此外,通常有一個對應的代碼緩存來保存修改后的可執(zhí)行代碼,程序修改后便在代碼緩存中直接執(zhí)行[10]。

      Strata虛擬機通過“取指-譯碼-翻譯-執(zhí)行”來模擬標準的硬件行為。取指是從內存中裝載指令塊;譯碼是分析指令并判斷該將其分派到哪個對應的翻譯器;翻譯是當指令塊被寫入FC$時對其進行一些修改;執(zhí)行發(fā)生在控制權被返回給FC$中的二進制代碼時,由主機CPU執(zhí)行。例如,可執(zhí)行文件program.exe,通過Strata平臺動態(tài)翻譯執(zhí)行的過程,即Strata虛擬化應用程序的過程[11],如圖3所示。

      圖3 strata虛擬化應用程序流程圖

      3.2 安全虛擬可執(zhí)行環(huán)境

      安全虛擬可執(zhí)行環(huán)境(SVE)能減少主機系統運行一個不可靠程序的風險。SVE限制惡意代碼對系統資源的訪問,從而使主機有能力控制何種個人資源可以被使用。當前的SVE都只是針對特定的應用,缺少一個統一構架。而Strata可以提供一種可擴展、可移植的SVE系統構架[12]。

      Strata提供的SVE類似于沙箱技術,經典沙箱系統的實現途徑一般是通過攔截系統調用,監(jiān)視程序行為,然后依據用戶定義的策略來控制和限制程序對計算機資源的使用,比如改寫注冊表,讀寫磁盤等。但Strata的設計重點不在于SVE環(huán)境本身,而在于它提供通用的SVE。

      3.3 可擴展接口

      Strata的接口支持擴展,其接口及對應功能如表1所示[11-13]。

      表1 Strata接口功能表

      續(xù)表1

      其中,一部分完成對應用程序指令的讀和翻譯,其余的完成上下文管理(capture,exec),指令緩存管理(flush),低層內存管理(alloc,alloc_exec),片段緩存客戶化(begin_fragment,end_fragment,emit),低層鏈接(patch)以及初始客戶化(init)等功能。

      3.4 注入安全策略

      采用Strata開發(fā)團隊設計的安全API,通過編寫安全策略,將其注入到不可靠可執(zhí)行文件中。安全API允許使用者指定需要監(jiān)視哪些系統調用并且執(zhí)行的安全策略代碼。Strata安全API包括4個函數[3]:

      第一個函數在初始進入Strata時被調用,第一個函數實現里調用了第二個API函數watch_syscall(),它指明了要去監(jiān)視的系統調用和當被監(jiān)視的系統call被調用時執(zhí)行哪些安全策略,參數callback用來匹配要進行監(jiān)視的系統調用。最后兩個API函數用來界定安全策略代碼。

      實現訪問控制的關鍵代碼如下:

      init_syscall()函數指明sys_open系統調用應當被監(jiān)視,當sys_open被應用程序調用時,轉向執(zhí)行安全策略代碼myopen,myopen打開路徑,并調用makepath_absolute()函數將路徑轉換成絕對路徑,再跟/etc/passwd進行比較,如果一樣,則報錯并中斷,如果不一樣,安全策略代碼執(zhí)行sys_open,再返回對應結果,就如正常執(zhí)行效果一樣。

      圖4是通過Strata向用戶可執(zhí)行文件注入安全策略示意圖。

      圖4 向可執(zhí)行文件中注入安全策略圖

      本方法中,安全策略的書寫是語言和編譯器無關的,因為最后要進行執(zhí)行的安全策略是編譯之后的二進制代碼,這也是本方法的優(yōu)勢之一。為方便讀者閱讀,實驗采用C語言書寫安全策略。此外,此方法是在二進制代碼運行階段來定義和強制執(zhí)行安全策略代碼,這種動態(tài)控制的方法更加安全。此外,SDT訪問控制方法與傳統訪問控制最大的區(qū)別就是:可以讓用戶自主完成安全策略,進而達到訪問控制的效果。這樣的方法,不僅易于實現,更加面向用戶化,并且動態(tài)保護過程更加安全。

      4 結束語

      在對SDT思想進行深入分析的基礎上,借助于SDT通用平臺Strata提供的安全虛擬可執(zhí)行環(huán)境以及對應的安全API來驗證SDT訪問控制方法。借助此平臺的優(yōu)點在于:(1)不需要源代碼,直接處理不可信二進制。(2)語言和編譯器獨立。(3)可以結合任何程序設計語言。(4)在運行時刻定義和強制執(zhí)行安全策略,這是靜態(tài)方法做不到的。其實軟件動態(tài)翻譯器的主要作用是對應用程序進行虛擬化,是一種即時編譯的技術,但正是由于它的即時性,使得在動態(tài)執(zhí)行的過程中可以插入一些控制策略,達到的控制效果是靜態(tài)方法無法比擬的。當然,Strata平臺提供的可擴展接口保證了與外界交互的便利。此外,它對整個執(zhí)行環(huán)境的模擬,使得應用程序的執(zhí)行過程完全被隔離,只能通過接口進行交互,也降低了不可信的二進制文件帶來的危險。在接下來的工作中會加以完善,提高基于SDT安全訪問控制的理論論證力度。

      [1]周勇林.重大網絡安全事件揭示應用軟件安全重要性[J].計算機工程與應用,2009(7):76.

      [2]KEVIN S,JACK W D.Software security using software dynamic translation[C].The 2003 USENIX Annual Technical Conference,2003:21-34.

      [3]GIUSEPPE D,DENIZ H,MADAN J,et al.Avinash lakshman dynamo:amazon's highly available key-value store[C].New York,NY,USA:ACM2007:1-12.

      [5]HU Wei,JASON H,DAN W,et al.Secure and practical defense against code-injection attacks using software dynamic translation[J].SIGARCH Computer Architecture News,2005(1):108-117.

      [6]潘麗君,姜玲燕.跳轉鏈接技術在動態(tài)二進制翻譯中的應用[J].微型電腦應用,2009(6):1-3.

      [7]王楠,單征,岳峰,等.I386到Alpha動態(tài)二進制翻譯中的代碼緩存管理優(yōu)化[J].信息工程大學學報,2010(6):1-4.

      [8]JA CK DAVIDSON.Software security via lightweight process virtualization[C].In Workshop on Exploring the Trace Space,International Conference on Supercomputing,2003:1-13.

      [9]BRUCE C,JACK D,MARY L S.Continuous compilation:a new approach to aggressive and adaptive code transformation[J].ACM Transactions on Information System Security,2005(11):3-40.

      [10]SRIDHAR S,SHAPIRO J S,BUNGALE P P.Hdtrans:Alow-overhead dynamic translator[C].In Proceedings of the 2005 Workshop on Binary Instrumentation and Applications(September 2005),IEEE Computer Society,2005:1-10.

      [11]JASON D H,DANIEL W,BRUCE R C,et al.Evaluating fragment construction policies for sdt systems[C].VEE'06,2006:1-10.

      [12]ZHOU S,CHILDERS B R,SOFFA M L.Planning for code buffer management in distributed virtual execution environments[C].New York,NY,USA:In VEE'05:Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments,2005:100-109.

      [13] COTT K,KUMAR N,VELUSWAMY S,et al.Reconfigurable and retargetable software dynamic translation[C].First Annual IEEE/ACM International Symposium,2003:1-15.

      猜你喜歡
      安全策略二進制訪問控制
      基于認知負荷理論的叉車安全策略分析
      用二進制解一道高中數學聯賽數論題
      中等數學(2021年8期)2021-11-22 07:53:38
      基于飛行疲勞角度探究民航飛行員飛行安全策略
      湖北農機化(2020年4期)2020-07-24 09:07:36
      有趣的進度
      二進制在競賽題中的應用
      中等數學(2019年4期)2019-08-30 03:51:44
      淺析涉密信息系統安全策略
      ONVIF的全新主張:一致性及最訪問控制的Profile A
      動態(tài)自適應訪問控制模型
      通信學報(2016年11期)2016-08-16 03:20:32
      淺析云計算環(huán)境下等級保護訪問控制測評技術
      大數據平臺訪問控制方法的設計與實現
      隆安县| 乳山市| 方城县| 荣成市| 肇东市| 宁乡县| 南部县| 宝鸡市| 蒙自县| 兰州市| 若尔盖县| 夹江县| 舞阳县| 哈尔滨市| 宁德市| 阿瓦提县| 临颍县| 奇台县| 南雄市| 班戈县| 金昌市| 武乡县| 泰宁县| 丽江市| 包头市| 长治县| 湟源县| 溆浦县| 香港| 龙岩市| 西昌市| 晋中市| 信丰县| 龙州县| 泸水县| 禄劝| 盱眙县| 安西县| 保康县| 贵德县| 恭城|