两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于薄虛擬機監(jiān)控器的USB存儲設(shè)備安全訪問控制方法與流程

文檔序號:11216033閱讀:909來源:國知局
一種基于薄虛擬機監(jiān)控器的USB存儲設(shè)備安全訪問控制方法與流程

本發(fā)明涉及一種基于薄虛擬機監(jiān)控器的usb存儲設(shè)備安全訪問控制方法,屬于軟件工程技術(shù)領(lǐng)域。



背景技術(shù):

目前l(fā)inux操作系統(tǒng)中,usb存儲設(shè)備安全訪問控制機制主要包括基于udev、基于lsm框架、基于系統(tǒng)usb設(shè)備驅(qū)動層等幾種。

基于udev的usb存儲設(shè)備安全訪問控制機制:udev是linuxkernel2.6系列的設(shè)備管理器。該機制通過修改udev的規(guī)則文件來實現(xiàn)usb存儲設(shè)備不可用的目標。該方法在應(yīng)用層實現(xiàn),安全性不高。

基于系統(tǒng)usb設(shè)備驅(qū)動層的usb存儲設(shè)備安全訪問控制機制:該機制主要是修改驅(qū)動層對應(yīng)的函數(shù)來達到目標,但是驅(qū)動開發(fā)較為復(fù)雜,要進行重新進行編譯,實用性差。

基于lsm框架進行usb存儲設(shè)備訪問控制機制:lsm框架在linux內(nèi)核數(shù)據(jù)結(jié)構(gòu)中加入了安全域,基于lsm框架的usb存儲設(shè)備訪問控制的研究主要是利用lsm在文件系統(tǒng)以及inode中的hook函數(shù),當進行mount、open、read、write等系統(tǒng)調(diào)用時通過hook函數(shù)進行判斷,如果操作針對的是usb存儲設(shè)備文件系統(tǒng),則不再繼續(xù)相應(yīng)操作。但是lsm框架本身存在著不具備綜合決策能力等缺點,雖然可以動態(tài)加載實現(xiàn)的模塊,但是當攻擊者獲得root權(quán)限時,完全可以繞過這些usb訪問控制模塊,然后利用usb存儲設(shè)備盜取數(shù)據(jù)。

目前在windows操作系統(tǒng)中,主要研究包括:基于wdm(windowsdrivermodel)過濾驅(qū)動的usb移動存儲設(shè)備訪問控制系統(tǒng),利用microsoft推出的設(shè)備驅(qū)動程序模型實現(xiàn)了usb存儲設(shè)備的訪問控制;或利用windows提供的api接口,在應(yīng)用層開發(fā)usb存儲設(shè)備的監(jiān)控系統(tǒng),但安全性不高。

基于虛擬化平臺的usb設(shè)備安全訪問機制,目前主要是基于xen虛擬化平臺的usb數(shù)據(jù)保護機制,它利用xen系統(tǒng)中的pvusb設(shè)備驅(qū)動,pvusb驅(qū)動分為前端驅(qū)動和后端驅(qū)動,利用前端驅(qū)動以及后端驅(qū)動中數(shù)據(jù)流的特點,來區(qū)分i/o中的數(shù)據(jù)流部分,然后對數(shù)據(jù)流進行透明的加解密操作,從而達到數(shù)據(jù)安全的目的。該機制利用虛擬機的回滾機制來擦除usb存儲設(shè)備使用時遺留在虛擬機中數(shù)據(jù)痕跡,該機制的數(shù)據(jù)保護模塊是放在dom0管理域中,但相關(guān)研究都是基于dom0是安全的這一假設(shè)之上的。



技術(shù)實現(xiàn)要素:

本發(fā)明技術(shù)解決問題:克服現(xiàn)有操作系統(tǒng)平臺和虛擬化平臺安全訪問控制機制的不足,提供一種基于薄虛擬機監(jiān)控器bitvisor的usb存儲設(shè)備安全訪問控制方法。bitvisor作為薄虛擬機監(jiān)控器,具有極好的輕量化特點,只支持單個guestos(客戶操作系統(tǒng)),但對所支持的操作系統(tǒng)的類型沒有任何限制。因此本發(fā)明所提出的基于薄虛擬機監(jiān)控器bitvisor的usb存儲設(shè)備安全訪問控制方法,與guestos的類型無關(guān)。同時虛擬機監(jiān)控器的運行環(huán)境獨立于guestos,所以其安全性不依賴于guestos的安全性。bitvisor相比于現(xiàn)有的虛擬化架構(gòu),可信計算基更小,安全性更好。本發(fā)明主要針對bitvisor的usb主機控制器以及usb設(shè)備數(shù)據(jù)傳輸協(xié)議的特點,在bitvisor中實現(xiàn)了對usb存儲設(shè)備的讀操作、寫操作、識別操作的控制。

本發(fā)明采用的技術(shù)方案如下:

一種基于薄虛擬機監(jiān)控器的usb存儲設(shè)備安全訪問控制方法,其步驟包括:

1)在薄虛擬機監(jiān)控器bitvisor中,利用usb主機控制器模擬bulk-only數(shù)據(jù)傳輸協(xié)議;

2)通過薄虛擬機監(jiān)控器bitvisor中的bulk-only數(shù)據(jù)傳輸協(xié)議,對usb存儲設(shè)備的識別操作、讀操作和寫操作進行攔截,實現(xiàn)對usb存儲設(shè)備的安全訪問控制。

進一步地,通過bitvisor控制轉(zhuǎn)發(fā)命令塊包cbw和命令狀態(tài)包csw,實現(xiàn)對usb存儲設(shè)備的i/o的攔截。

進一步地,按照usb存儲設(shè)備安全訪問控制需求,通過bitvisor修改cbw的傳輸長度域和csw的狀態(tài)位信息來控制usb存儲設(shè)備與操作系統(tǒng)之間的數(shù)據(jù)傳遞,從而在只寫條件下控制操作系統(tǒng)對特定usb存儲設(shè)備的讀操作,在只讀條件下控制操作系統(tǒng)對特定usb存儲設(shè)備的寫操作,以及使用受限條件下控制對特定usb存儲設(shè)備的識別操作。

進一步地,在所述使用受限條件下,通過在bitvisor中為usb存儲設(shè)備注冊hook函數(shù),控制對特定usb存儲設(shè)備的識別操作。

進一步地,對于禁止訪問的usb存儲設(shè)備,當系統(tǒng)對該usb存儲設(shè)備進行配置時,hook函數(shù)會被調(diào)用,并在hook函數(shù)中返回給操作系統(tǒng)配置錯誤的信息,此時操作系統(tǒng)對該usb存儲設(shè)備的配置失敗,導(dǎo)致該usb存儲設(shè)備不能被操作系統(tǒng)識別。

進一步地,在bitvisor中設(shè)有緩沖區(qū)列表,稱為影子緩存,在操作系統(tǒng)中設(shè)有與其對應(yīng)的緩沖區(qū)列表,稱為客機緩存,在bitvisor中實現(xiàn)客機緩存與影子緩存中的數(shù)據(jù)交換,進而通過影子緩存與usb存儲設(shè)備直接進行數(shù)據(jù)。

進一步地,當有數(shù)據(jù)從usb存儲設(shè)備到主機時,數(shù)據(jù)首先從usb存儲設(shè)備傳輸?shù)絙itvisor的影子緩存中,然后再從影子緩存中拷貝到操作系統(tǒng)的客機緩存中以供用戶使用;當有數(shù)據(jù)從主機到usb存儲設(shè)備時,數(shù)據(jù)首先從客機緩存中拷貝到影子緩存中,然后再由bitvisor控制影子緩存中的數(shù)據(jù)傳輸?shù)絬sb存儲設(shè)備中。

進一步地,通過以下步驟實現(xiàn)usb存儲設(shè)備的只讀控制:

a)在hook函數(shù)中得到cbw命令塊,解析該命令塊并根據(jù)其中數(shù)據(jù)的傳輸方向來判斷數(shù)據(jù)是否是主機發(fā)送至usb存儲設(shè)備的,若是則將其傳輸長度修改為0,并記錄下命令塊中scsi命令,以及該命令塊的標識;

b)當scsi命令為0x2a或者0xaa時,阻止客機緩存中的數(shù)據(jù)被復(fù)制到bitvisor中的影子緩存,從而阻止數(shù)據(jù)流向usb存儲設(shè)備;

c)將bitvisor中此次數(shù)據(jù)傳輸?shù)膫鬏斆枋龇鹮tds中狀態(tài)標識設(shè)為傳輸完成,以使bitvisor能夠接收usb存儲設(shè)備發(fā)來的csw傳輸狀態(tài)包,完成一次完整的i/o傳輸過程;當bitvisor檢查數(shù)據(jù)傳輸狀態(tài)時,數(shù)據(jù)傳輸完成,則接收從usb存儲設(shè)備返回的csw命令狀態(tài)塊,根據(jù)csw中的標識來判斷是否是cbw命令包對應(yīng)的csw,若是則將該csw的狀態(tài)修改為1,代表此次讀寫操作傳輸錯誤,返回給操作系統(tǒng)。

本發(fā)明的有益效果如下:

本發(fā)明的基于薄虛擬機監(jiān)控器bitvisor的usb設(shè)備安全訪問控制的方法,其中usb存儲設(shè)備i/o攔截的關(guān)鍵步驟是通過分析bitvisor中模擬實現(xiàn)的usb存儲設(shè)備的bulk-only協(xié)議中數(shù)據(jù)流程提出的。該方法通過分析bitvisor中usbcontroller(usb主機控制器)的實現(xiàn)原理,根據(jù)設(shè)備具有的訪問權(quán)限,對特定設(shè)備的識別操作、讀操作、寫操作進行攔截,達到設(shè)備安全訪問控制的目的。同時,由于該方法基于薄虛擬機監(jiān)控器bitvisor實現(xiàn),usb存儲設(shè)備的安全訪問控制對操作系統(tǒng)透明,其安全性不依賴于操作系統(tǒng)的安全性,且相較于xen等虛擬機監(jiān)控器,薄虛擬機監(jiān)控器bitvisor體積更小,本身的安全可靠性更高,因此本發(fā)明的安全性和可靠性也更高。

附圖說明

圖1.本發(fā)明的系統(tǒng)架構(gòu)圖。

圖2.usb存儲設(shè)備識別控制流程圖;

圖3.bulk-onlyusb存儲設(shè)備的數(shù)據(jù)傳輸協(xié)議數(shù)據(jù)流圖;

圖4.usb存儲設(shè)備只讀控制流程圖。

具體實施方式

下面通過具體實施例和附圖,對本發(fā)明做進一步詳細說明。

圖1是本發(fā)明的系統(tǒng)架構(gòu)圖。本發(fā)明通過分析bitvisor中usb主機控制器的實現(xiàn)原理,根據(jù)usb存儲設(shè)備具有的訪問權(quán)限,對特定usb存儲設(shè)備的識別操作、讀操作、寫操作進行攔截(即圖1中“攔截模塊”所示的功能),達到設(shè)備安全訪問控制的目的。即本發(fā)明是在bitvisor中的usb主機控制器的基礎(chǔ)上增加了usb識別模塊、只讀控制模塊和只寫控制模塊。

1.設(shè)備識別控制實現(xiàn)方法

在bitvisor中為禁止訪問的usb存儲設(shè)備注冊一個hook函數(shù)(鉤子函數(shù)),如圖1所示,當系統(tǒng)對該usb存儲設(shè)備進行配置時,該hook函數(shù)會被調(diào)用,并在hook函數(shù)中返回給操作系統(tǒng)配置錯誤的信息,此時操作系統(tǒng)對該設(shè)備的配置失敗,導(dǎo)致該設(shè)備不能被操作系統(tǒng)識別。禁止設(shè)備識別的控制流程圖如圖2所示。

2.設(shè)備只讀控制實現(xiàn)方法

bitvisor的usb主機控制器模仿了usbbulk-only協(xié)議,bulk-only傳輸協(xié)議有三種數(shù)據(jù)類型:cbw(commandblockwrap,命令塊包)、csw(commandstatuswrap,命令狀態(tài)包)和普通數(shù)據(jù)包。

cbw是命令塊包,它是usbhost(usb主機)向usb存儲設(shè)備發(fā)送的命令,其中主要包括該cbw的命令塊標識dcbwtag、此次傳輸?shù)臄?shù)據(jù)長度dcbwdatatransferlength、傳輸?shù)木唧w命令cbwcb、數(shù)據(jù)傳輸方向bmcbwflags等信息。cbw的命令塊標識dcbwtag主要是用來關(guān)聯(lián)此次傳輸對應(yīng)的csw的,當usb存儲設(shè)備收到cbw后,對cbw進行解析,然后執(zhí)行相應(yīng)的命令,進入數(shù)據(jù)傳輸階段,傳輸完成后,將此次命令執(zhí)行的狀態(tài)封裝到csw中返回給usb主機。csw命令狀態(tài)包中包含與相對應(yīng)的cbw中dcbwtag相一致的dcswtag。usb主機控制器根據(jù)csw來決定是否繼續(xù)發(fā)送下一個cbw或數(shù)據(jù)。bulk-only協(xié)議的數(shù)據(jù)傳輸流程如圖3所示,其中data-out表示從主機向usb存儲設(shè)備傳輸數(shù)據(jù),data-in表示從usb存儲設(shè)備向主機傳輸數(shù)據(jù)。

bitvisor作為操作系統(tǒng)與usb存儲設(shè)備之間的橋梁。模擬bulk-only協(xié)議傳輸?shù)牧鞒?,將從操作系統(tǒng)層復(fù)制的cbw與要寫的數(shù)據(jù)發(fā)送給usb存儲設(shè)備,接收csw以及要讀的數(shù)據(jù),并將其復(fù)制給操作系統(tǒng)。在bitvisor中,發(fā)送數(shù)據(jù)后,它會根據(jù)自身內(nèi)部實現(xiàn)的傳輸描述符qtds中的傳輸狀態(tài)標志判斷發(fā)送的數(shù)據(jù)是否完成,若沒有完成則bitvisor不會接收usb存儲設(shè)備發(fā)送的信息,也就不會收到此次傳輸?shù)拿顮顟B(tài)包csw,而是會一直阻塞到數(shù)據(jù)傳輸狀態(tài)。

為了完成與usb存儲設(shè)備之間的數(shù)據(jù)傳輸,bitvisor擁有自己的緩沖區(qū)列表,被稱為shadowbuffer(影子緩存),它屬于bitvisor自身的內(nèi)存區(qū)域,在guestos中與它對應(yīng)的是guestbuffer(客機緩存)。bitvisor中實現(xiàn)了guestbuffer與shadowbuffer中的數(shù)據(jù)交換。而與usb存儲設(shè)備直接進行數(shù)據(jù)傳輸?shù)氖莝hadowbuffer,當有數(shù)據(jù)從usb存儲設(shè)備到主機時,數(shù)據(jù)首先從usb存儲設(shè)備傳輸?shù)絙itvisor的shadowbuffer中,然后再從shadowbuffer中拷貝到操作系統(tǒng)的guestbuffer中,此時設(shè)備中的數(shù)據(jù)才會真正到操作系統(tǒng)層供用戶使用。當有數(shù)據(jù)從主機到usb存儲設(shè)備時,數(shù)據(jù)首先從guestbuffer中拷貝到shadowbuffer中,然后再由bitvisor控制shadowbuffer中的數(shù)據(jù)傳輸?shù)皆O(shè)備中。

在bitvisor中,已經(jīng)注冊了usb寫操作bulkout所調(diào)用的hook函數(shù),本發(fā)明方法在該函數(shù)中進行寫操作i/o的攔截。禁止寫操作的數(shù)據(jù)流程圖如圖4所示。首先在該函數(shù)中得到cbw命令塊,解析該命令塊,根據(jù)命令塊中數(shù)據(jù)的傳輸方向來判斷數(shù)據(jù)是否是主機發(fā)送至usb存儲設(shè)備的,若是則將其傳輸長度修改為0,并記錄下命令塊中scsi(smallcomputersysteminterface)命令,以及該命令塊的標識。當cbw傳輸完成后,開始傳輸數(shù)據(jù),由于usb存儲設(shè)備接收到的cbw傳輸長度是0,不會接收bitvisor的數(shù)據(jù),所以要阻止操作系統(tǒng)層數(shù)據(jù)被復(fù)制到bitvisor。通過上述記錄下的scsi命令來進行判斷,當scsi命令為0x2a或者0xaa時,則阻止guestbuffer中的數(shù)據(jù)被復(fù)制到bitvisor中shadowbuffer,從而阻止了數(shù)據(jù)流向usb存儲設(shè)備。然后為了讓bitvisor能夠接收usb存儲設(shè)備發(fā)來的csw傳輸狀態(tài)包,完成一次完整的i/o傳輸過程,還要將bitvisor中此次數(shù)據(jù)傳輸?shù)膫鬏斆枋龇鹮tds中狀態(tài)標識設(shè)為傳輸完成。當bitvisor檢查數(shù)據(jù)傳輸狀態(tài)時,數(shù)據(jù)傳輸完成,則接收從usb存儲設(shè)備返回的csw命令狀態(tài)塊,根據(jù)csw中的標識來判斷是否是cbw命令包對應(yīng)的csw,若是則將該csw的狀態(tài)修改為1,代表此次讀寫操作傳輸錯誤,返回給操作系統(tǒng)。

上述過程的主要實現(xiàn)思路是bitvisor層認為此次傳輸已經(jīng)完成,進行bitvisor層傳輸所消耗內(nèi)存的回收操作,但是操作系統(tǒng)層則被告知此次傳輸發(fā)生錯誤。操作系統(tǒng)層則會選擇重傳,這樣又會陷入bitvisor中,循環(huán)進行上述操作,當操作系統(tǒng)層經(jīng)過多次約定的重傳嘗試之后,則放棄了此次數(shù)據(jù)傳輸。導(dǎo)致對usb存儲設(shè)備的寫操作失敗,從而實現(xiàn)usb存儲設(shè)備的只讀控制。

3.設(shè)備只寫控制實現(xiàn)方法

在bitvisor的usb主機控制器中讀操作數(shù)據(jù)流程與寫操作數(shù)據(jù)流程原理一致,故usb存儲設(shè)備的只寫控制方法與只讀控制方法一致。

對本發(fā)明的實驗驗證:

實驗環(huán)境采用quadcore四核處理器,內(nèi)存2g,硬盤120g,usb存儲設(shè)備(u盤、usb2.0接口);ubuntu16.04,bitvisortip(經(jīng)修改,利用一個處理器一直監(jiān)控usb存儲設(shè)備線程)。對3種環(huán)境配置狀態(tài)進行了對比測試,實驗中對u盤進行寫操作的文件大小分別為10.5mb、27.8mb、61.4mb。數(shù)據(jù)傳輸速度影響實驗結(jié)果如表1所示。

表1.實驗結(jié)果列表

從實驗結(jié)果看出,百mb以下文件,bitvisor對usb存儲設(shè)備的寫操作影響在秒級,在可接受范圍內(nèi),而在bitvisor中部署本發(fā)明系統(tǒng)進行i/o攔截等操作,對性能影響更小,在秒級以下。

本發(fā)明方法適用于不同種類和/或型號的usb存儲設(shè)備,當然可能由于usb識別和讀寫控制信號不同而實現(xiàn)方式稍有變化,也屬于本發(fā)明保護的范圍。

以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制,本領(lǐng)域的普通技術(shù)人員可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本發(fā)明的保護范圍應(yīng)以權(quán)利要求書所述為準。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
玉门市| 龙门县| 江永县| 胶南市| 娄烦县| 海淀区| 广河县| 崇文区| 南丰县| 四平市| 佛山市| 西乌珠穆沁旗| 陆良县| 博湖县| 柳河县| 娄烦县| 雷山县| 临城县| 方城县| 桂阳县| 汾西县| 南木林县| 德州市| 霍山县| 富阳市| 红河县| 靖宇县| 府谷县| 卫辉市| 广昌县| 太仆寺旗| 武义县| 乐平市| 山西省| 广西| 昌宁县| 静安区| 湄潭县| 柳林县| 久治县| 岳阳市|