面向终端计算机的硬件资源信息安全在线检查系统技术领域
本发明涉及一种面向终端计算机的硬件资源信息安全在线检查系统,属于
计算机安全检查技术领域。
背景技术
在大规模的网络系统中通常包括大量不同的网络设备,例如网关、路由器
和向用户提供服务、运行各种应用程序的服务器、客户机。设备、服务、应用
程序、服务器、客户机以及用户,甚至他们之间的关系都是需要管理的对象。
在这种大规模网络系统的内部高度复杂,导致管理异常困难,管理周期冗长,
而且随着系统规模的扩大,管理的开销也成指数规律增加。
计算机网络内计算机资源安全管理是任何网络管理必不可少的一部分,计
算机资产是公司资源不可或缺的一部分,在当前信息化不断深入到各行各业中
成为管理和应用的重要环节。对与计算机资产的保护变得尤为重要。
目前通用的方法是采用纸质文件记录该类数据,不能够实时对这些资产状
态进行审计、管理较复杂,对于大规模网络来说需要花费大量的时间成本来管
理这些资产。而且随着网络的不断扩大对于这些纸质文件的管理也会变得越来
越复杂。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种面向终端计算机
的硬件资源信息安全在线检查系统,可根据需要对计算机硬件资源进行全方位
管理,为非专业人士使用该系统提供了一种灵活的人机交互接口,缩短了客户
端管理周期;减轻了管理员管理网络的复杂度,提高了整个网络的健壮性,并
提供了友好的开发接口,完善了大部分应用功能,满足大部分网络的需要。
本发明的技术解决方案:面向终端计算机的硬件资源信息安全在线检查系
统,在一台中心计算机上在线对所有终端计算机进行集中检查,所有的计算机
之间通过网络连接;所述的系统包括在线检查工具和封装模块,封装模块将在
线检查工具打包成CAB包的形式并存储在中心计算机上,中心计算机将CAB
包嵌入IE浏览器,终端计算机通过IE浏览器从中心计算机上下载该CAB包并
自动安装;所述在线检查工具包括统一数据接口模块、资源信息抓取模块、信
息解析模块、分析处理模块和显示模块;
用户通过中心计算机上的IE浏览器发送硬件资源信息在线检查指令,每台
终端计算机上的CAB包根据接收的指令启动检查,具体如下:
统一数据接口模块通过IE浏览器接收硬件资源信息在线检查指令,调用资
源信息抓取模块获取本地计算机的IP地址或者MAC地址以及本地计算机的硬
件资源信息,将该地址通过统一数据接口模块回传给中心计算机,将本地计算
机的硬件资源信息发送给信息解析模块;中心计算机根据IP地址或者MAC地
址通过统一数据接口模块该地址对应的终端计算机登记的硬件资源信息发送至
分析处理模块;
信息解析模块将接收的硬件资源信息通过映射表解析成用户能够识别的信
息并发送至分析处理模块;
分析处理模块将解析后的信息与登记的硬件资源信息进行比对,将比对结
果通过统一数据接口模块回传至中心计算机,同时将比对不一致的结果由显示
模块在本地计算机上进行显示;中心计算机将回传结果进行显示、并存储。
所述的资源信息抓取模块抓取本地计算机的硬件资源信息的实现步骤如
下:
(1)定义资源信息抓取模块外部调用的统一接口,并向接口中传入相关参
数,统一接口采用下列形式表达:GetInformation(“硬件类型”,”类型键值”);
(2)根据传入的参数查找资源信息描述表,通过资源信息描述表确定类型
键值对应的映射地址,同时根据映射地址确定该类型键值的抓取方法;
上述一类硬件类型对应一张资源信息描述表,每张资源信息描述表包括三
部分内容,标识、类型键值和映射地址,三者一一对应,抓取方法存储在本地
计算机内存中且与上述映射地址一一对应;
(3)按照步骤(2)确定的抓取方法抓取相应的硬件资源信息,创建数据
返回链表并统计链表长度,该链表中存储硬件类型、类型键值以及对应的抓取
值。
所述的抓取方法按照硬件类型进行分类,当硬件类型为CPU时:
(2.1)找到内存中描述传入参数中类型键值信息的地址,将该地址信息保
存到段寄存器EAX中;
(2.2)读取上述地址的一个双字信息,并保存到一个内存数组中;
(2.3)将上述内存数组指针加4,将段寄存器EBX保存的信息存入上述内
存数组中;
(2.4)重复上述步骤(2.3),总共获取48字节信息;
(2.5)将内存数组中的数据转换为字符串,存入到返回链表中,即完成了
该种类型数据的抓取。
本发明与现有技术相比的有益效果在于:
(1)本发明系统通过将检查工具封装成CAB的形式并嵌入IE浏览器中,
避免目前对每台终端计算机都需要现场检查的缺陷,解放了人力;并且本发明
检查工具将目前待检查项以映射表的形式,通过实时抓取终端计算机上的硬件
信息进行内比,可以一次性完成所有期望检查的项目,并最终实现一台中心计
算机对网络内的所有终端计算机进行集中在线检查,提高了检查效率。
(2)本发明利用资源信息抓取模块将计算机的硬件的资源进行统一获取和
管理,并与已登记的硬件资源信息进行对比,实现结果的自动化输出,降低了
人为参与的流程和检查人员的专业技术知识要求。
(3)本发明的抓取方法采用从计算机底层性能的判断,这种方法获取的信
息不易伪造,可真实反应当前的计算机硬件信息。保证了在线检查结果的真实
有效性。
附图说明
图1为本发明系统的体系结构图;
图2为本发明系统中的统一数据接口模块实现过程;
图3为本发明系统中的资源信息抓取模块实现过程;
图4为本发明系统中的信息解析模块实现过程;
图5为本发明系统中的分析处理模块与显示模块实现过程。
具体实施方式
下面结合附图对本发明进行详细说明
如图1所示,本发明面向终端计算机的硬件资源信息安全在线检查系统面
向终端计算机的硬件资源信息安全在线检查系统,在一台中心计算机上在线对
所有终端计算机进行集中检查,所有的计算机之间通过网络连接;所述的系统
包括在线检查工具和封装模块,封装模块将在线检查工具打包成CAB包的形式
并存储在中心计算机上,中心计算机将CAB包嵌入IE浏览器(可以采用com
技术实现嵌入),终端计算机通过IE浏览器从中心计算机上下载该CAB包并自
动安装;所述在线检查工具包括统一数据接口模块、资源信息抓取模块、信息
解析模块、分析处理模块和显示模块;
用户通过中心计算机上的IE浏览器发送硬件资源信息在线检查指令,每台
终端计算机上的CAB包根据接收的指令启动检查,具体如下:
统一数据接口模块如图2所示,通过IE浏览器接收硬件资源信息在线检查
指令,调用资源信息抓取模块如图3所示,获取本地计算机的IP地址或者MAC
地址以及本地计算机的硬件资源信息,将该地址通过统一数据接口模块回传给
中心计算机,将本地计算机的硬件资源信息发送给信息解析模块;中心计算机
根据IP地址或者MAC地址通过统一数据接口模块该地址对应的终端计算机登
记的硬件资源信息发送至分析处理模块;信息解析模块将接收的硬件资源信息
通过映射表解析成用户能够识别的信息并发送至分析处理模块;分析处理模块
将解析后的信息与登记的硬件资源信息进行比对,将比对结果通过统一数据接
口模块回传至中心计算机,同时将比对不一致的结果由显示模块在本地计算机
上进行显示;中心计算机将回传结果进行显示、并存储,如图5所示。
(一)资源信息抓取模块
上述资源信息抓取模块抓取本地计算机的硬件资源信息的实现步骤如图3
所示:
第一步,定义资源信息抓取模块外部调用的统一接口,接口采用下列形式
表达:
GetInformation(“硬件类型”,”类型键值”),并向接口中传入相关参数,如:当
硬件类型为CPU,类型键值为CPU的外频时,输入参数为
GetInformation(“CPU”,”ExtClock”);所述的类型键值为CPU的序列号时,输入
参数为GetInformation(“CPU”,”ProcessorId”);
例如当硬件类型为CPU时,类型键值包括CPU厂商、指令集、当前频率
等信息。
当硬件类型为硬盘时,类型键值包括硬盘名称、硬盘大小、硬盘序列号、
硬盘使用时间、硬盘序列号。
当硬件类型为显卡时,类型键值包括显卡名称、显存大小、内核名称、驱
动版本等。
当硬件类型为主板时,类型键值包括主板制造商、主板型号、制造日期、
BIOS版本、主板序列号等。
这些信息采用了一定的规则进行定义,需要调用信息解析模块对抓取出来
的信息进行解析,保证信息是能够被用户识别和接受的数据格式。
第二步,利用第一步中定义的统一接口传入参数,资源信息抓取模块根据
传入的参数查找资源信息描述表,通过资源信息描述表确定类型键值对应的映
射地址,同时根据映射地址确定该类型键值的抓取方法;
上述一类硬件类型对应一张资源信息描述表,每张资源信息描述表包括三
部分内容,标识、类型键值和映射地址,三者一一对应,抓取方法存储在本地
计算机内存中且与上述映射地址一一对应;
当资源信息抓取模块被调用时,资源信息抓取模块会被加入内存,操作系
统会给资源信息抓取模块中包含的每个抓取方法分配一块地址,例如如表1所
示,将抓取CPU的外频方法分配地址0xEa46,将最大时钟速度抓取方法分配
地址0xEb47等。最后按照硬件类型形成资源信息描述表。
表1 CPU-资源信息描述表
标识
类型键值
映射地址
1
ExtClock
0xEa46
2
MaxClockSpeed
0xEb47
3
DataWidth
0xEb48
...
...
...
对于抓取方法一般可以按照硬件类型进行分类,
当硬件类型为CPU时:
(1)根据传入的参数查找信息资源描述表,找到对应的映射地址,如当
类型键值为ExtClock(或者MaxClockSpeed等)时,具体获取步
骤如下显示:
(2)找到内存中描述ExtClock(或者MaxClockSpeed等)信息的地址,
将该地址信息保存到段寄存器EAX中。
(3)读取该地址的一个双字信息,并保存到一个内存数组中。
(4)将内存数组指针加4,将EBX的信息存入。重复上述步骤,总共
获取48字节信息。
(5)将内存数组中的数据转换为字符串,存入到返回链表中,即完成了
该种类型数据的抓取。
当硬件类型为硬盘时:
(1)根据传入的参数查找信息资源描述表,找到对应的映射地址,如当类
型键值为硬盘序列号或者硬盘缓存时,具体步骤如下:
(2)打开硬盘设备PhysicalDrive0,若打开成功,则根据打开的硬盘设备句
柄,查找硬盘的信息的缓存,发送IO控制码(当为硬盘序列号时,IO
控制码为SMART_RCV_DRIVE_DATA,当为缓存IO控制码为
IOCTL_DISK_GET_DRIVE_GEOMETRY)。若失败,则循环调用
PhysicalDrive1一直到PhysicalDrive10,大部分情况下,客户端计算机中
不会超过10块硬盘。若还是失败则返回错误的结果给调用者,成功则
继续下面的步骤。
(3)将查询到的结果保存到缓存中,查看硬盘类型,若硬盘的类型为IDE则
将缓存中的结果16进制结果转换成字符串,查找到序列号,返回结果。
若硬盘类型不为IDE,则返回硬盘类型不匹配。
对于其它数据类型可采用一些通用WMI技术进行获取具体步骤如下:
(1)调用函数CoInitializeEx用于初始化COM库。
(2)调用函数CoInitializeSecurity用于初始化COM安全级别。
(3)通过调用CoCreateInstance初始化WMI的定位器
(4)调用IWbemLocator::ConnectServer方法,通过定位器连接到WMI的
命名空间,通过把一个IWbemServices的实例以参数形式传递给ConnectServer
方法,创建服务。
(5)设置WMI服务的安全级别
(6)使用之前得到的服务,进行一些操作,如查询、调用方法和其他一些
操作。
(7)释放资源,关闭服务与连接,关闭COM库。
(8)返回查询的结果。
第三步,按照第二步确定的抓取方法抓取相应的硬件资源信息,创建数据
返回链表并统计链表长度,该链表中存储硬件类型、类型键值以及对应的抓取
值;
表2返回数据链表
硬件类型
类型键值
抓取值
硬盘
硬盘序列号
K41LT882LYJC
硬盘
硬盘大小
500G
硬盘
硬盘使用时间
2356小时
硬盘
硬盘名称
IDE硬盘
第四步,用户可根据需要更新资源信息描述表,保证对计算机资源信息获
取的健壮性和扩展性,减少模块后期的维护难度。
(二)信息解析模块
信息解析模块将接收的硬件资源信息通过映射表解析成用户能够识别的信
息并发送至分析处理模块具体实现如图4所示,步骤如下:
信息解析模块首先获取上述第三步中的链表长度,根据链表长度从链表中
获取相应数量的抓取值,当抓取值本身为十进制时(与表2对应)或者抓取值
本身即为用户能够识别的信息,例如硬盘序列号,获取出来即为可识别的信息
“K41LT882LYJC”,不需进行解析;当获取的信息为一些不可翻译的值,它用
16进制表示一些特殊的含义,需通过映射表(即解码表)解析成用户能够识别
的信息并发送至分析处理模块。
映射表如表3
类型键值
获取值
真实值
CPU类型
0xea34
奔腾
CPU类型
0xea34
酷睿
(三)封装模块
具体步骤如下:
(1)利用makecert.exe制作数字签名
◆进入系统doc界面,输入命令cd makecert.exe的目录,按回车键。例
如:cd C:/makeCab
◆输入命令,命令格式如下:makecert-sv-n-ss-r-b-e。例如:makecert
-sv dsoframer.pvk-n“CN=XXXX”-ss My-r-b 01/01/1900-e
01/01/9999
-sv dsoframer.pvk意思是生成一个私匙文件dsoframer.pvk
-n″CN=XXXX″其中的″XXXX″就是签名中显示的证书所有人的名
字。
-ss My指定生成后的证书保存在个人证书中
-r 意思是说证书是自己颁发给自己。
-b 01/01/2009指定证书的有效期起始日期,格式为 月/日/年,最低
为1900年
-e 01/01/2018指定证书的有效期终止日期,格式同上。
◆打开IE的″Internet选项″,切换到″内容″标签,点击″证书″按钮″选
中″XXXX″就是生成的证书,把它″导出″为dsoframer.cer,
(2)建立inf文件,运行IEXPRESS.EXE,选中″创建新的自解压缩指令文件
″,进入下一步,选中″只创建压缩文件(ActiveX安装)″,进入下一步把用到
的程序包括程序调用的DLL(如果有的话)添加进列表中,按配置选项后,
就连续点″下一步″,即生成dsoframer.CAB。
(3)运行signcode.exe,选择dsoframer.CAB,″签名选项″中的″签名类型″
选定″自定义(C)″,下一步″从文件中选择″上面第一步导出的证书文件
dsoframer.cer,再下一步的私匙选定第一步生成的dsoframer.pvk文件,然后
进入描述,注意,图中″描述(可选)″:下的输入框中根据需要写上相应的描
述语句,点击“下一步“,一直到签名完成。
(4)将做好的CAB包嵌入到网页。
应用举例:本发明的软件及方法已经成功应用于航天某院密综合管理平台
的计算机在线保密检查过程,成功完成了多至1000多台计算机同时在线保密检
查的任务。证明了软件具有开发周期短、可维护性好、灵活的开放接口、完善
的调试功能以及易于使用和管理的优点。
本发明未详细描述的部分属于本领域公知技术。