999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向網絡對抗的防御虛擬機研究與實現

2008-01-01 00:00:00李肖堅
計算機應用研究 2008年4期

摘要:以緩沖區溢出為例,以面向網絡對抗為研究背景,研究并實現一種虛擬機作為防御單元。實例表明,虛擬機能夠很好地表現基于計算機網絡的自組織協同對抗,實現防御的可控性,并用一階邏輯給出正確性證明。

關鍵詞:網絡對抗; 緩沖區溢出防御; 虛擬機

中圖分類號:TP391文獻標志碼:A

文章編號:1001-3695(2008)04-1154-03

信息對抗(information operation)[1]是奪取信息優勢的主要手段。對信息對抗的研究是網絡安全乃至信息安全的重要命題,其重大挑戰之一就是創建一個研究、訓練環境,一個可對信息對抗技術進行研究的平臺。可以通過對信息對抗技術的研究,將信息對抗機制引入信息安全研究設施中,通過雙方的對抗想定,在其上開展大規模的信息對抗演習,使對抗更逼真;通過觀察進攻和防御過程,使防御和攻擊者能夠從中獲得更多的技能鍛煉;研究者可驗證信息對抗的研究成果,為國家基礎設施的管理者和安全保障者觀察、了解態勢,提供評估決策所需的科學依據。按對抗的要求訓練進而達到以訓練的效能去對抗,通過謀取對抗的主動權從而遏制對抗[2]。

北京航空航天大學虛擬現實新技術教育部重點實驗室自2000年以來,分析和研究信息對抗,特別是計算機網絡對抗的概念和體系結構;探索對抗概念;試圖劃分和定義更為清晰的對抗體系結構,研究如何構造更為合適的對抗模型及其更準確的對抗性質和行為。在此基礎上,設計并實現了一個基于分布虛擬環境的計算機網絡對抗分析和研究平臺(distributed virtual environment information warfare analysis research,DVE-IWAR)。依據該平臺對互聯網,特別是基于多傳感自組織的移動戰術互聯網絡,深入研究信息對抗的理論和技術,按若干種想定開展對抗演練。DVE-IWAR的整體設計框架如圖1所示。

DVE-IWAR中指出計算機網絡對抗中的攻防雙方角色發生變化時,防御者可能為保護信息優勢對攻擊發動反擊,攻擊者開始顧及自身信息系統的安全也必須展開積極防御,由此進入攻防對抗。因此防御方為了收集更多的信息對攻擊方發起反擊,可以為攻擊方提供一個虛擬的對抗想定。鑒于此,本文以緩沖區溢出為例,研究并實現了一種能夠為攻擊方提供運行時進程環境的緩沖區溢出防御虛擬機,實現對抗單元中防御節點的可控性想定。

1系統總統設計

緩沖區溢出防御虛擬機主要與上層運行的應用程序以及下層TCP/IP協議棧打交道,主要防御上面運行的應用程序。該應用程序由兩類組成:操作系統本身可以支持的應用程序;虛擬機自身定義的緩沖區溢出防御服務描述語言DBOSDL。本文的虛擬機在項目中的位置如圖2[2]所示。

緩沖區溢出防御虛擬機的防御主要是通過驗證地址信息和狀態信息的完整性來作為防御的重點。將涉及到地址信息的指令如call監管起來,把地址信息保存到另外開辟的一段內存空間上,當ret指令執行時,將保存的地址信息和棧中的地址信息作比較,當發現不同時,在項目中由指揮控制單元采取下一步措施:終止程序的運行還是繼續執行,從而實現網絡對抗的可控性目標。防御如圖3所示。

從防御總體圖上來看,該系統涉及到以下幾個問題:如何將用戶程序加載到虛擬機開辟的內存空間上;如何規劃用戶程序在執行期間所用到的程序內存布局;虛擬機如何識別和解釋用戶程序中的指令,虛擬機如何處理用戶程序和系統調用的關系,以及當溢出發生時,虛擬機如何進行防御等關鍵問題。這樣就涉及到程序加載、程序內存布局、指令運行和系統調用等關鍵技術。

2關鍵技術

J.E.Smith指出虛擬機是在一個執行平臺上實現另一個運行時系統環境的軟件。所謂運行時系統[3](run-time system)是計算機程序在其中得以執行的一個環境,它提供程序在執行時所需要的一切東西。對緩沖區溢出進行動態防御,就可以在搭建運行時系統環境上防御。從運行時系統組成角度來看,程序內存布局、處理機執行、系統調用的處理以及輸入/輸出的控制,都是緩沖區溢出防御虛擬機涉及到的關鍵技術。

2.1關鍵技術間的關系

經分析,關鍵技術部分之間的關系如圖4所示。

首先操作系統將虛擬機VM加載執行起來;然后由VM調用子程序加載器VM’loader,該程序充當User_Prog的加載器,負責將用戶程序User_Prog加載到VM開辟的內存空間上。Loader的任務完成后,將控制權交給VM,即將用戶程序執行的首地址賦值給VM的IP指針,最后由VM負責解釋執行User_Prog中的指令。在其執行的過程中,監管造成溢出的指令如mov、ret、call和相關系統調用如socket等。

2.2程序加載

加載器loader是由操作系統負責將二進制可執行程序加載到內存使其能夠執行的系統程序。在緩沖區溢出防護中可以將其看做一個子程序,用于將用戶二進制程序加載到虛擬機的地址空間上,然后交給虛擬機負責解釋執行。加載器要完成以下幾個工作:申請內存空間,將程序image復制到內存,構造堆/棧,重定位程序映像中的指令地址;將程序首指令地址賦予VM。

2.3內存布局

內存布局是緩沖區溢出防御涉及到的關鍵技術之一,它與加載有著密不可分的關系。依據加載方式的不同,可以有不同的內存布局。在本文緩沖區溢出防御中擬將加載器作為虛擬機VM的一部分,把用戶程序User_Prog加載到虛擬機VM的內存空間上。主要是基于以下考慮,對用戶程序的加載完全可以控制在虛擬機VM下,加載所涉及到的五個步驟都可以由自己定義的操作控制。在程序的內存空間部分,不改變原有應用程序的內存布局,僅僅開辟一段附加的內存來保存地址信息。其中棧還充當防御基于溢出函數返回地址的攻擊,主要是指用于比較的地址信息數據是從這里獲取。同時,保存和記錄緩沖區的內容多數也是來自棧。

2.4指令運行

本文主要以典型的Intel x86/Windows體系結構為例來討論分析虛擬機指令集。

指令集的研究與設計在基于進程虛擬機動態防御方案中起到:當指令進入處理機運行時動態防御緩沖區溢出的功能;通過對每一條指令(含系統調用)的解釋執行,使得虛擬機僅與二進制程序打交道,從而在防御上不需要源代碼的支持。指令運行主要由指令識別和指令解釋兩部分組成。

指令識別是指令運行中的第一步,指令識別不同于反匯編技術,它將識別的信息保存到指令結構體變量中,以供指令解釋時用到。指令識別算法描述主要包括以下幾個步驟:

a)確定存放在RAM緩沖區中可執行代碼指令當前的IP指針地址和相關寄存器信息。

b)判斷比較RAM[IP]屬于哪條指令。

c)如果指令編碼惟一,則跳轉到步驟e);否則執行步驟d)。

d)判斷RAM[IP+1]的第3~5位(一個字節是8位,依次從右到左開始),通過該位來判斷屬于哪條指令。

e)獲取指令操作數。依據具體的指令,判斷是否存在字節RAM[IP+1]。如果存在,判斷RAM[IP+1]各個位所代表的具體操作數,即確定源操作數和目的操作數。具體實現如下:(a)通過高2位mod字段判斷指令是否包含位移量;(b)通過低3位r/m字段判斷指令的尋址方式;(c)其他中間3位reg字段判斷操作數屬于哪個寄存器,其中這一步操作確定指令中另一個操作數信息。

f)判斷源(或目的)操作數的基址、變址和比例因子。這些具體判斷實現可參考步驟e)。

g)確定指令的長度,IP=IP+n。給出指令的字符串表示和指令的長度。

在指令識別過程中,對所需要監管的關鍵指令,要交給指令解釋作特殊處理。

指令解釋依據指令識別的結果按照指令本身的含義進行解釋。在解釋的過程中,利用指令操作數結構體判定源操作數和目的操作,以及判定各個操作數的尋址類型,依據指令的真實含義進行解釋。在此基礎上,加入判斷緩沖區溢出發生的條件和顯示溢出發生時的結果。

緩沖區溢出及攻擊主要與部分指令有關,如寫內存指令和地址跳轉有關的指令。當指令進入虛擬處理機時,由虛擬處理機負責對指令的解釋,那么虛擬機就能動態進行安全防御,時刻檢測、控制部分關鍵指令如mov、call、jmp、ret以判斷是否發生溢出函數返回地址和指針地址等地址信息來實現防御。例如解釋call指令時,將下一條指令的返回地址保存到地址數組中;解釋ret指令時,查看保存在棧框架中的返回地址和保存在地址數組中的地址信息是否一致以判斷溢出的發生。

2.5系統調用

對于跳轉指令,如果發現跳轉地址超出用戶程序的正文段范圍,則認為發生系統調用。用戶程序所需要的系統調用均以API函數方式提供,被組織安排到exe二進制文件中。用戶程序請求操作系統提供的系統調用通常是通過高級語言提供的庫函數來實現[3],主要表現為DLL文件中的庫函數。在PE文件中對動態庫函數的調用主要是通過三條指令表現: push指令用于函數參數的壓棧;call指令用于調用動態庫函數的存放所在地址信息(call指令調用后面的jmp指令); jmp指令指向該動態庫函數的描述信息,主要表現是該動態庫函數的字符串名稱或地址、序號信息。虛擬機實現對DLL動態庫函數或操作系統提供的功能解釋。從項目背景出發,虛擬機要接管socket系統調用,使其轉而執行TCP/IP protocol stack中提供的socket系統調用函數。

3系統驗證

所采用的測試用例程序masm_function.exe,通過調用用戶自定義函數strcopy將源緩沖區中的內容賦值給目的緩沖區操作。其中:源緩沖區Buf1中含256 Byte大小的內容;緩沖區Buf2僅僅含2 Byte空間。在此庫函數調用前后,分別調用messagebox函數顯示對話框信息。如果發生溢出,則后一個對話框不彈出。圖5是通過監管與地址信息有關的call和ret指令,成功檢測出緩沖區溢出并控制了程序的指令流程。

圖5溢出發生時虛擬機防御示意圖

從測試用例的運行結果和測試記錄來看,設計并實現的DBOVM系統能夠通過監管關鍵指令的執行和保護地址信息的完整性來防御緩沖區溢出;并且當溢出發生時,由用戶決定下一步的程序執行,即繼續執行還是退出。當溢出發生時,記錄緩沖區中的內容,可以驗證虛擬機達到了防御功能,且能夠在網絡對抗中做到防御的可控性。

下面給出DBOVM能夠防御緩沖區溢出的理論證明。DBOVM能夠達到緩沖區溢出防御的功能,關鍵在于兩點:(a)PE可執行文件中的數據正確地加載到DBOVM開辟的內存空間上;(b)DBOVM對指令的解釋和運行是正確的,即虛擬機能夠為用戶程序提供一個正確的運行時系統環境。如前所述,注入攻擊代碼并不能夠造成緩沖區溢出攻擊,緩沖區溢出防御的關鍵點在于如何保護程序地址信息和狀態信息的完整性。基于上述的假設成立,運用一階邏輯自然推理系統F[4],依據DBOVM所提供的前提事實和規則來證明其防護緩沖區溢出的正確性。

a)首先抽取命題提供的前提事實規則以及結論中的原子命題并符號化,表示如下:

(a)H(x,y):x開辟y; x論域是“本文所指的DBOVM” 。

(b)J(y):y是緩沖區;y的論域為“堆、棧、BSS中的緩沖區”。

(c)O(z1):z1是所開辟緩沖區的長度。

(d)I(z2):z2是注入到緩沖區中內容的長度。

(e)P(x,y,z1):x知道開辟y的長度是z1。

(f)S(x,y):x往y中注入內容。

(g)W(x,y,z2):x往y中注入的長度是z2。

(h)M(x,y,z1,z2):x往y中注入的內容長度z2超出開辟的長度z1。

(i)R(x):x判斷緩沖區溢出發生。

(j)A(u1):u1是程序運行期間的地址信息。

(k)E(u2):u2是保存的地址信息。

(l)Q(x,u2):x保存的地址信息u2。

(m)B(u1,y): 程序運行期間的地址信息u1和緩沖區y相鄰。

(n)C(y,u1);與y相鄰的地址信息 u1被修改。

(o)D(u2,u1):x保存的u2與程序運行時的u1不同。

b)利用一階邏輯來表示上述前提事實規則和結論。

前提事實:

c)限于篇幅,詳細的證明省略。

4結束語

從實例驗證和理論證明上來看,本文提出的緩沖區溢出防御虛擬機DBOVM達到了網絡對抗中防御的可控性目標。同時與之前的典型研究成果相比[5~8],該方案不僅僅能夠成功檢測出溢出,它不需要應用程序的源代碼支持;能控制指令的解釋過程并且能記錄溢出發生時緩沖區的內容。如表1所示。

計算機網絡對抗歸根到底要展現在處理器上的運行處理,即從這個角度來看,本文還存在幾個值得進一步研究的內容:

a)在指令運行中,如何恰當地選擇檢測、控制的指令并證明所監管指令的完備性,將更能說明防御研究的安全性。

b)虛擬機指令集不局限于具體的Intel x86指令,而給出虛擬機指令的形式描述將有利于在實際應用中部署到更多的系統。

c)如何保證DBOVM虛擬機系統的安全性。

參考文獻:

[1]SHELTON H. JP3-13: joint doctrine for information operations[EB/OL]. (1998-10-09). http://www.dtic.mil/doctrine/jel/new_pubs/jp3_13.pdf.

[2]李肖堅.一種計算機網絡自組織的協同對抗模型[J].計算機研究與發展,2005,42(A).

[3]BLUNDEN B. 虛擬機的設計與實現:C/C++[M]. 楊濤,楊曉云,高文雅,等譯.北京:機械工業出版社,2003:676.

[4]耿素云,屈婉玲.離散數學[M].北京:高等教育出版社,2002.

[5]VIEGA J,BLOCH J T,KOHNO Y,et al.ITS4: a static vulnerability scanner for C and C++ code[C]//Proc of the 16th Annual Compu-ter Security Applications Conference. New Orleans,Louisiana:Sprin-ger-Verlag,2000:257.

[6]LAROCHELLE D,EVANS D.Statically detecting likely buffer overflow vulnerabilities[DB/OL].http://www.virginia.edu.Pusenix01. pdf.

[7]COWAN C,BEATTIE S, JOHANSEN J,et al. PointGuard:protecting pointers from buffer overflow vulnerabilities[C]//Proc of the 12th USENIX Security Symposium. Washington DC:[s.n], 2003:4-8.

[8]JONES R,KELLY P. Bounds checking for C[EB/OL].(1995).http://www.doc.ic.ac.uk/~phjk/Bounds Checking.html.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 四虎在线观看视频高清无码| 91口爆吞精国产对白第三集 | 无码中文字幕乱码免费2| 99国产精品国产高清一区二区| 久青草免费视频| 亚洲高清无码久久久| 免费在线看黄网址| 日韩无码黄色网站| 亚洲黄网视频| 毛片免费高清免费| 久爱午夜精品免费视频| 波多野结衣久久高清免费| 亚洲va视频| 小说 亚洲 无码 精品| 亚洲va视频| 亚洲经典在线中文字幕| 成人在线不卡| 欧美不卡在线视频| 国产成人禁片在线观看| 国产精品国产主播在线观看| 国产精品护士| 亚洲精品无码人妻无码| 欧美成人免费一区在线播放| 亚洲欧美一区二区三区麻豆| 四虎影视永久在线精品| 人妻无码一区二区视频| 日韩成人在线网站| 国产国语一级毛片在线视频| 久久成人18免费| 中文字幕无码中文字幕有码在线| 免费在线看黄网址| 91国内外精品自在线播放| 国产激情影院| 国产欧美日韩免费| 久久人体视频| 亚洲精品波多野结衣| 狠狠久久综合伊人不卡| 欧美精品在线免费| 国产精品制服| 在线高清亚洲精品二区| 91久久精品国产| 美女无遮挡拍拍拍免费视频| 国产美女人喷水在线观看| 97精品国产高清久久久久蜜芽| 精品第一国产综合精品Aⅴ| 91av成人日本不卡三区| 欧美在线伊人| 午夜小视频在线| 69精品在线观看| 久久精品只有这里有| 黄色一级视频欧美| 国产成人免费| 免费无遮挡AV| 亚洲成a人在线观看| 精品亚洲国产成人AV| 91精品国产自产在线老师啪l| 欧美福利在线观看| 久久成人18免费| 欧美成人手机在线观看网址| 91免费国产在线观看尤物| 国产呦精品一区二区三区网站| 狠狠干欧美| 最近最新中文字幕在线第一页| 国产青榴视频在线观看网站| 国产区人妖精品人妖精品视频| 综合亚洲网| 亚洲欧美另类色图| 激情综合图区| 日韩人妻精品一区| 四虎国产精品永久一区| 在线视频亚洲色图| 免费精品一区二区h| 四虎亚洲国产成人久久精品| 亚洲综合在线最大成人| 性做久久久久久久免费看| 国产一级毛片yw| 亚洲三级a| 在线a视频免费观看| 久久久亚洲色| 国产精品原创不卡在线| 国产手机在线小视频免费观看 | 91成人在线观看视频|