1、 (1)窃密者可以在合法用户不在场的情况下,利用USB存储设备快速地将个人隐私、 _或商业敏感信息取走,并且不会留下痕迹; (2)合法用户的违规操作和逾权动作可以把USB存储设备作为中转媒; (3)USB存储设备可作为病毒载体以及开机钥匙等。上述安全隐患都对主机安全构成了较大威胁。因此,对USB存储设备的安全实施监控具有重要意义。目前很多保密单位在物理上禁用USB端口,这会给用户带来很多不便。而一些基于用户态的USB存储设备监控软件很容易被病毒、木马等恶意程序绕过,无法完成有效、实时的监控。本文采用基于驱动层的技术实现其主要的监控功能,相对应用层,更加安全和稳定。 因其具有源码开放,稳定,可靠
2、。安全等显著优点。在电子政务中得到了广泛应用。此类应用的安全性要求较高,特别是内部网。据统计,80%的安全 _内部网。其中USB接口是内部网络信息泄密的一个重要途径 由于USB设备种类众多且使用广泛.仅仅简单地禁用USB接口会使其他的USB设备(如USB鼠标、USB键盘、ikey等)无 _常使用,给用户带来很多不便。文中在Linux环境下实现了一个分布式USB设备监控系统.可以根据 _制定的安全策略分类禁用USB设备.以便 _对网络中各主机的USB设备进行细粒度的管理。该系统的主要功能是以内核模块的形式实现的.相对于应用层程序而言。其可靠性高并且很难被用户破解。 Linux的USB子系统分为U
3、SB客户软件、USB核心层和主控制器驱动程序3个层次。 USB客户软件是特定设备驱动程序的主机部分.主要完成设备功能驱动,为了和设备正常通信,它通过10请求包(IRP.I/O Request Packet)向USB内核发出数据接收或发送请求。USB内核则为客户端驱动程序层和主机控制器驱动函数提供了一套函数集。HCD(Host Controller Driver)与主机控制器合作完成USB各种事务处理”对于USB设备的所有操作都是通过向USB设备发送相应的IRP完成的。本系统将拦截所有发给USB设备的IRP并对其中的内容进行分析.得到USB设备的设备类型,如存储类设备、USB集线器类设备或者厂商
4、自定义设备等.然后根据安全策略文件来决定是否允许这个设备使用。USB设备监控系统中的关键问题是IRP拦截.判断设备类型以及对厂商自定义类设备的管理。 为了实现数据传输.USB内核提供了一个数据结构称为URB(USB Request Block)。一个URB由执行任何一个USB事务信息、分发数据信息和回传的状态信息组成。URB中具有USB数据传输的所有信息,包括传输类型、传输方向、数据缓存区、数据传输的设备、端点、返回信息及指向传输完成的处理函数的指针。从图l中可以看出。所有的USB设备I/O请求最终都由总线提交函数u _mit_ttrb(struct urb*urb)发送到USB总线上.因此可
5、以通过拦截u _submit urb函数.对所有的URB数据包进行分析的方法来实现对USB设备的控制。目前.Linux(所支持的主控制器主要有OHC(Open Host Controller) 和UHC (Universal HostController) 种控制器的驱动程序分别是ohci.0和uhci.o.u _ subruit urb函数就是由这两个模块提供的一般情况下。一台计算机只有一种控制器。Linux考虑了有多种控制器的可能性并为将来扩展更多的控制器提供了方便。 因此,拦截u _ submit urb函数就是要拦截内核模块的导出函数。Linux采用整体式内核结构.如果要对内核功能进行
6、修改或充.必须重新编译整个内核。这给扩展内核功能带来诸多不便。因此。Linux提供了一种新的机制:动态可加载内核模块 内核模块将一些需要扩展的功能先单独编译成一组目标代码.该代码是核心的一分.但并没有编译到内核里面去.可以根据需要在系统启动后动态地加载到系统核心中.当模块不再需要时,可以动态地从系统核心卸载。核心符号表中维护着一个核心资源链表.在加载模块时.它能够解析出模块中对核心资源的引用 某个模块对其他模块的服务或资源的需求类似于模块对核心本身资源或服务的请求.不过此时所请求的服务是另外一个已加载的模块 每当加载模块时核心将把该加载模块输出的所有资源和符号添加到核心符号表中21核心符号表中
7、包含模块导出函数名、变量的名字和其相应的地址通过更改函数地址值的方法可以对函数调用进行拦截。 但这种方法在拦截模块导出函数的时并不适用。如前所述,模块在加载的过程中会使用核心符号表中的信息对引用的函数和变量进行重定向。这种访问是一次性的。系统在内核级中执行时,访问了大量的寄存器,而很多寄存器值是由上层调用者提供的。如果改变这些寄存器值.系统会变得不稳定。很可能出现不可预料的后果。 因此使用hook函数的最佳原则是:在hook函数中调用原函数时。所有寄存器的值与被hook前的信息一样 普通的C函数调用都提供了函数堆栈切换操作。而在funl和fun2中要使用原函数的堆栈来获取传人的参数地址.因此这
8、两个函数必须用汇编语言编写这里分析一下拦截代码的稳定性 在整个操作系统运行期间.系统服务会经常被调用。当一个进程调用了被hook的系统服务.这时如果发生了进程切换,则另一个进程再次调用相同的系统服务时.就会出现此次调用没有被hook的情况 虽然可以通过关闭中断方法加以避免.但对系统性能影响比较大USB子系统的数据传输通常不是提交一次URB就能完成的。 偶尔漏掉了一个URB并不会影响对数据传输的禁用效果.所以这里完全可以忽略这种情况 在实际的测试和使用中没有出现禁用失效的情况。 监控系统在已有研究成果的基础之上,对误差控制、大块数据处理、地形简化等算法和实现技术进行了改进。包围盒进行LOD误差处
9、理,大大地提高了算法的效率,该算法已经应用到研制的某卫星 _仿真测试系统中,取得了良好的效果。算法使用的是存储在本地的地形数据,未来有可能通过网络使用实时的真实地形数据,此时内存映射文件将失效,因此需要进一步考虑如何有效地加载和传输网络的数据,从而实时显示真实的地形。另外,使用C+语言实现算法和地形显示,可以进一步提高软件的效率。基于USB的CAN总线系统监控平台的 _成功,为CAN总线控制系统的 _、调试和诊断提供了得力工具。无论在实验室还是在工业现场, _人员都可方便地将CAN网络与计算机互联,实时监控系统的总线状态。以此为基础,今后还将进一步完善其上位机应用程序,丰富其监控的现场总线种类
10、,使其成为基于CAN的多种现场总线的监控平台。 USB(universal serial bus)通用串行总线,是由Intel、康柏、微软和NEC等公司共同推出的串行接口。它支持即插即用和带电热插拔,占用的系统资源少,不会出现与其它外设资源冲突的情况,软件 _也很方便;其通信速度为1.5、12和480Mb/s,突破了传统计算机串行通信接口(如RS一232)与高速外设进行数据传输时的速度“瓶颈”;接口还可以提供最大5V/500mA的总线电源,小型USB设备无需外扩电源,简化电路设计。USB接口已经成为PC的标准接口。为了便于携带使用,在下位桥接器设计中均采用体积小、功耗低的平面封装器件,这可以减
11、小体积、充分利用USB总线供电。另外,在下位桥接器设计中还设计了数据缓冲和CAN总线通信错误识别功能,这样可以进一步避免系统监控数据的丢失,并且能在CAN总线通信出错时提供详细的状态记录信息,提高平台的监控性能。 一个USB设备插入到计算机USB端口上时,操作系统硬件管理程序将会发现设备,然后查找该设备的驱动程序是否存在,如果存在,系统加载驱动程序,然后给USB设备分配盘符等。 从上面的分析中可以知道,如果要阻止USB设备在计算机上使用,至少有两个方法可以使用:一是修改设备驱动程序,在设备驱动程序里面加入对设备进行判断的代码,从而阻止非授权USB设备在系统上的识别;第二种方法是不修改驱动程序,
12、而在USB设备枚举完成后,立即把设备卸载,从而在系统中无法使用该设备。 上面两种方法中,第一种需要熟悉驱动程序 _技术,难度比较大;第二种原理比较简单,实现起来也相对容易。本文将采用第二种方法。第二种方法的原理是:当插入USB存储设备时,应该立即获取该USB设备的信息,然后判断这些信息是否是经过授权的,如果非法,立即调用卸载函数卸载该USB设备。系统可以分为三部分:USB存储设备的检测、USB设备信息的读取判断、设备的卸载。 总之,面向端系统的行为安全监控系统是针对Windows平台的。随着Windows平台在电子政务中的日益广泛应用.面向Windows平台的行为安全监控系统将具有广泛的应用前
13、景,课题设计提出的USB设备监控技术不仅可以对USB设备行为进行有效监控.还同样适用于对并口设备及光驱类设备进行监控.具有普遍的指导意义。此课题具有可以成功解决保密要求较高的个人和单位只能在物理上禁用USB端口、使用不灵活的问题。软件关键功能的实现,可优先监控到USB储存设备,不易被恶意程序绕过,软件资源的占有率低等优点。 1 刘蕊红,蔡皖东,张 赘. 面向Linux的USB设备监控技术研究与实现J. 西安:西北工业大学,20XX. 2 张赞 蔡皖东 王胡. 基于IRP拦截技术的USB设备监控系统D. 西安: 3 Walter Oney.Programming the Microsoft Wi
14、ndows Driver Mode1M.San Francisco, Microsoft Press, 1999. 4 Art Baker,Jerry Lozano.The Windows20XX Devi _ Driver BookM.San Francisco, Prenti _ Hall PTR,20XX. 5 _儒,李英伟.USB 2.0原理与工程 _M.北京:国防工业出版社,20XX:34-36. 6 肖踞雄,翁铁成,宋中庆.USB技术及应用设计M.北京:清华大学出版社,20XX. 7 陈莉君.深入分析Linux内核源代码M.北京:人民邮电出版社,20XX. 8 张赞,蔡皖东,王弱.基于IRP拦截技术的USB设备监控系统J.微电子学与 计算机,20XX,22(12):179-183. 9 Daniel P Bovet,Macro Cesati.Understanding the Linuxkerne1M.New York:O reillk,20XX. 10Peter Jay Salz _n, IJnux kernel program module guideM, New York:Academic Pr ,20XX. 11阳宪惠,主编.现场总线技术及其应用M.北京:清华大学出版社
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1