DeviceGuard
2018-07-20高新凯
高新凯
摘要:对学校管理人员而言,确保计算机硬件的安全至关重要。配置较高的机房,其计算机大多采取SSD+HDD双硬盘、双内存条、双显卡。比起单硬盘、单内存条、单显卡的配置,性能有显著的提升。然而,这也给硬件安全管理带来了挑战:一台双硬盘、双内存条、双显卡的计算机,即使丢失了一块硬盘、一根内存条、一块独立显卡,也可能正常运行。如何才能在失窃发生后第一次开机就发现案情呢?该文提出了一基于C语言的自动化硬件变动检测程序,该程序具有自动扫描硬件、硬件变动报警、硬件日志等功能,极大地缩小了机房硬件检查的时间和难度,为保障机房硬件安全提供一条新思路。
关键词:自动扫描;WIM查询;硬件变动检测;硬件信息对比;C语言
中图分类号:TP308 文献标识码:A 文章编号:1009-3044(2018)13-0073-03
DeviceGuard -- Hardware Change Detection Program Based on C Language
GAO Xin-kai
(Tianhe College Guangdong Polytechnic Normal University, Guangzhou 510540, China)
Abstract: For college administrators, it is extreme important to ensure the safety of computer hardware. Most of the computer rooms are equipped with SSD+HDD dual hard disks, dual memory bars and dual graphics cards. Compared with single hard disk, single memory bar and single graphics card, the performance has been significantly improved. However, it also poses a challenge for hardware security management. A computer with double disk double memory and graphics cards, may works normally even if one of them were stolen. How to be aware of the loss at the first boost after the change? This paper presents an automatic hardware change detection program based on C. Its power includes: automatic scanning hardware, hardware-change alarm and hardware log. These functions greatly reduce the time and difficulty of hardware inspection in computer room, and provide a new way to ensure the security of hardware in computer rooms.
Key words: automatic scanning; WIM query; hardware-change detection; hardware information comparison; C language
機房是高校中进行理论、实践教学的重要场所。对学校管理人员而言,确保计算机硬件的安全至关重要。现在的配置较高的机房,其计算机大多采取SSD+HDD双硬盘、双内存条、双显卡。这给硬件安全管理带来了挑战:一台双硬盘、双内存条、双显卡的计算机,即使丢失了一块SSD、一根内存条、一块独立显卡,也能正常运行。如何才能在失窃发生后第一次开机就发现案情呢?如果使用人工检查的方式,需要管理员打开机箱或用操作系统的设备管理器查看,这个过程需要约1分钟。也就是说,一个50台计算机的机房,如果手动检查进行硬件确认,至少需要50分钟。为了降低管理员检查硬件耗费的时间,该文提出了一种基于C语言的硬件变动检测程序——DeviceGuard。该程序为自动化的单机程序。该程序首次运行时,该程序会检测出计算机的主要硬件的数量、配置,并记录在配置文件上。第二次之后开机时,程序会自动运行,读取当前的硬件信息,写入开机日志。之后,会与配置文件中的信息进行比较,如果一致,程序自动退出。如果不一致,程序会显示一个显眼的警告窗口。与传统的人工检查相比,该程序有两个优点:第一,所有机器的硬件检测将在开机后几秒之内完成。机房管理员,只需在开机后在机房走一圈,便可以完成整个机房的硬件检查。第二,程序会将缺失的硬件写入日志文件中,失窃后第一次开机的时间将被记录下来,为调取监控、获取证据提供极大的便利。
1 DeviceGuard的总体设计
DeviceGuard是采用C语言和WIM查询接口编写的自动化的单机程序。WIM查询接口是windows操作系统上的最为强大的管理工具之一。能够轻易地获取到系统日期、主机名、IP地址、CPU、内存、显卡等几乎所有硬件的信息。作为应用最广泛的程序设计语言,C具有灵活、高效、功能强大的特点。该文用C语言、WIM的查询接口成功地实现了登录、硬件开机扫描、记录初始信息、日志查询等功能。
1.1 系统功能结构图
该程序主要包括硬件自动扫描、管理功能两个模块。总体功能结构图如图1所示:
1.2 硬件信息的表示、存储
DeviceGuard以JSON字符串的形式表示硬件信息:{Date:,HostName:,IP:,CPU:Memo:,Disk:,GCard:},各键的含义如下:Date——扫描日期和时间,HostName——宿主机名称,IP——IP地址,CPU——宿主机CPU信息,Memo——宿主机内存信息,单位:字节,Disk——宿主机磁盘,单位:字节,GCard——宿主机显卡信息。
硬件的初始信息保存在程序目录的初始配置文件中,开机日志保存在程序目录的日志文件中。
2 系统的主要功能模块和实现
2.1 自动扫描
DeviceGuard将在主机开机后自动扫描主机的CPU、内存、硬盘、显卡状况,并与存放在注册表中的初始信息进行对比,如果发现信息不一致(例如内存、硬盘容量减少,显卡不一致),就会用控制台窗口显示出报警信息“硬件变动!”,引起管理员的注意。如果发现当前硬件信息和初始信息一致,则不会显示任何窗口。如图2。
2.2 登录
登录是通往管理功能的关卡。只有输入了正确的用户名和口令之后,才能进入管理界面。这样防止没有权限的用户修改初始硬件信息。如图3。
2.3 管理界面
管理员运行DeviceGuard.exe,输入正确的用户名密码之后,可进入管理界面。管理界面采用简洁的控制台窗体,能够进行如图4的操作:
2.4 重新设置初始信息
由于学校可能对计算机的硬件配置进行更改,例如内存、硬盘的增减。本功能的作用是,在硬件信息变更之后,能够将新配置写入配置文件。执行此功能时,之前的配置信息会被覆盖掉。日志中会新增一条“硬件变动”的记录,把变更前、变更后的信息记录在案。如图5。
2.5 硬件信息对比
将当前的硬件信息与注册表中记载的信息进行对比。并给出结论,哪一项硬件有差异。本功能的代码与开机自动基本相同,区别在于:对比窗口始终显示,直到管理员关闭程序。
2.6 查看日志
如果发生了硬件变动,例如:内存条、硬盘失窃,U盘忘记取走,管理员需要知道最后一次硬件正常的时间和首次发现硬件不一致的时间,以确定责任人或U盘失主。 开机日志功能满足了管理员的这种需求。开机日志功能会读取日志文件,显示每一次开机硬件扫描的结果,帮助管理员确定硬件改动发生的时间段。为确定责任人或失主提供极大的帮助。如图6。
4 结束语
DeviceGuard借助C语言和WIM的查询接口,实现了硬件监控、防盗的功能。与传统的人工检查相比,DeviceGuard具有并发进行、自动化、速度快的优点,将管理员从繁冗的手动硬件检查中解放出来。然而,DeviceGuard也存在一些可以改进的空间,例如,如何改变日志的存储方式,使得管理员能够进行统计、查询;如何改变报警方式,使管理员不必在实验室走一圈。这些问题都值得进行进一步的尝试和探索。
参考文献:
[1] 林小茶. C语言程序设计[D].4版. 北京: 中国铁道出版社, 2016.
[2] King K N. C語言程序设计:现代方法[D].2版. 北京: 人民邮电出版社, 2010.
[3] Kochan S G. C语言程序设计[D].4版. 北京: 电子工业出版社, 2016.
[4] Stephen Prata. C Primer Plus[D].6版. 北京: 人民邮电出版社, 2016.
[5] Stanek W R. Windows 命令行详解手册[D].2版. 北京: 人民邮电出版社, 2009.
[6] Stanek W R. Microsoft Windows Command-Line Administrator's Pocket Consultant[D]. 北京: 北京世图, 2007.
[7] Lee Holmes. Windows PowerShell Cookbook: The Complete Guide to Scripting Microsoft's Command Shell[D]. O'Reilly Media, 2007.
[8] John Paul Mueller. Windows Command Line Administration Instant Reference[D]. SYBEX Inc,2010.