基于USB的存儲設備信息安全防護設計
2.3 區分硬盤和U盤驅動器本文引用地址:http://www.104case.com/article/202622.htm
作為磁盤驅動器的低層設備過濾器驅動程序。在區分硬盤和U盤驅動器時,Device_Ob_iect->DeviceType的值并不能真正區分硬盤和U盤驅動器。這個值對于U盤而言,第一次插入時是0x2d,但是,一旦被虛擬化成磁盤分區后,它將變成07。這和本地硬盤沒有任何區別。因此,如果采用IoGetDeviceProperty來獲得當前物理設備對象的總線類型的GUID,就往往會導致操作系統出現藍屏(系統死機)。因為函數調用要求在passive-level執行。而不是dispatch―level。其代碼如下:
但是,由于符號鏈接的名稱和光盤驅動器的設備類型將保持不變。所以,可以通過修改設備擴展的內部結構,并增加DeviceType項,然后根據符號鏈接的名稱和設備類型來設置:deviceExtension->DeviceType
該方法對光盤和硬盤以及USB都有很好的支持。其代碼如下:
3 結束語
本文在分析了磁盤讀寫技術的基礎上,采用對磁盤驅動器進行過濾的方法,給出了基于過濾驅動的USB存儲設備的單向控制方法。這種技術的實現能有效解決涉密信息的外泄,是內網安全的一種重要輔助手段。
評論