现在各企业对于信息系统中的信息安全都开始重视,对于USB接口的移动设备的监管也越发严格。市面上有很多平台化的USB设备监管工具,多数是包含在主计审计系统中的一项功能。不过这些商业化的工具平台价钱都很贵,在企业里完整部署的话少则数十万元,多则上百万元,对中小企业来说是一笔不小的开销。另外,主机审计工具出于自我防护的需要,一般都要接管/注入操作系统内核,弄得不好就会影响到终端的稳定性。而某些靠行政力量强制采购的安全审计工具甚至会有严重的漏报现象(笔者所在单位就遭遇了这样的事情,弄得运维网管人员很是狼狈)。
其实可以利用一些现有的小工具,再辅以自行开发部分配套小程序就可以很方便地解决USB存储设备插拔监控的问题。笔者利用免费的usbdeview工具加上自编的几个小程序,就可以低成本地构建一个USB存储设备监管体系。
USB设备监控系统的基本思路是:
- 用户PC上的监视端程序捕获USB设备插入动作;
- 监视端程序判断新插入的USB的特征(一般以序列号为特征)是否符合单位内定的合法特征;
- 若插入的USB设备非法,则监视端程序禁用该设备,并记录日志;
- 若插入的USB设备非法,则监视端程序将该信息传递给网管中控端;
- 监视端程序有一定的自我防护能力,以免被轻易卸载。
综上所述,本文提出的USB存储设备监控体系如下图所示:
如上图所示,USB Device Monitor是一个用于监视USB设备插入动作的程序,这个程序会实时监视USB设备的插入动作。当有USB设备插入时,会将这个设备的详细信息传递给USB S/N Checker程序做进一步的判断。这个程序必须常驻内存,且运行在后台,尽量避免被PC终端用户发现。
USB S/N Checker是一个检查USB设备序列号是否合法的程序。这个程序接收到USB Device Monitor传递来的USB设备详细信息之后,首先判断这个设备是否USB存储设备。若是USB存储设备,则判断该设备的S/N是否列在legal_sn.txt文件中。若设备SN列在legal_sn.txt中,则说明这是个合法(公司许可使用)的USB存储设备;否则,说明这个USB存储设备不合法。若插入的USB设备被判断为非法,USB S/N Checker将在illegal.log文件中记录这个插入动作,记录的内容包括USB设备插入的时间、序列号、品牌、类型等信息。同时,USB S/N Checker将调用Server Agent程序向USB管理系统控制台发送“非法插入”的信息。
Server Agent是一个消息代理程序,被USB S/N Checker调用,用来向USB管理系统发送USB事件消息。
USB Management System收到非法USB存储设备插入事件消息后,将该消息记入数据库,同时利用短信、IM等手段向网管发送警告消息。网管收到警告消息后即可及时处理非法插入USB设备的行为。
上图中还有一个程序Guard Process,这个程序是个后台守护进程,用于监视USB Device Monitor进程是否在运行中。若发现USB Device Monitor进程不在运行,则自动启动USB Device Monitor程序。
以上就是USB存储设备监管系统的总体框架。之所以把这个体系划分成若干小程序,一方面是为了减小常驻系统的程序资源占用,另一方面可以减少模块耦合,任一程序发生变更时,都不会影响到其他程序,也不需要重新部署整个系统,而是下发变更的部分即可。另一个好处就是可以充分利用第三方资源USBDeview工具。
下一章就会介绍usbdeview工具及其配置方法。