1系统的整体结构
系统根据Windows平台在使用中可能出现安全问题的方面,要检测的项目包括系统硬件、安装的软件、启动项、浏览器状况、进程、网络连接以及注册表。根据检查的结果系统再比对预设的检查项的信任列表和黑名单对系统进行评估,最终给出评测结果。
2检测功能的实现
系统的检测主要从软硬件环境以及常用的安全配置相关信息等及格方面进行。在Windows平台上进行这些检测需要通过系统的API来进行。WindowsAPI是提供给用户的可调用的编程接口,通过该接口用户能对操作系统进行深入的操作和设置
2.1系统硬件检测
检测主要目标是检测系统基础的硬件信息。设计方案是首先通过调用Windows提供的系统API函数和WMI接口,获得基础信息,最后通过VariantToString函数来将获得的信息转换成字符串。WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视所有的—几乎所有的Windows资源。WMI的使用要通过三步实现,首先初始化,然后创建WMI的名字空间,最后通过WQL进行查询。WQL是WMI中的查询语言Windows管理规范查询语言。
2.2系统安装软件信息
该功能是检测系统安装软件的基本信息,包括软件名称,发行商,版本,安装日期,卸载命令及参数。注册表中会存有相关信息。设计方案是首先通过Windows提供的API对系统的注册表进行打开和查询,获取SOFTWARE\\Microsoft\\Windows\\Current-Version\\Uninstall该路径下的信息,然后筛选将有用的信息进行输出。
2.3系统启动项检测
启动项检测的目的是检测系统启动项的信息,包括启动软件名称和存储路径。该模块设计与检测系统安装软件信息相似,也是通过对注册表进行查询来获取相应的信息。设计方案是首先通过对注册表进行操作查询如下路径Software\\Microsoft\\Windows\\CurrentVersion\\Run从该路径下获得软件的注册表信息,在获取到系统启动项基本信息后再对信息进行格式化输出。
2.4系统进程检测
操作台系统中的正在运行的恶意程序可以通过对进程的检测进行发现。进程检测的信息包括进程名称、进程ID、线程数量、所使用的.dll文件。设计方案是通过Windows系统提供的API函数,对系统的当前进程设定一个快照,然后通过这个快照来获取相应的进程信息,然后对进程信息进行格式化输出。
2.5系统浏览器状况检测
浏览器检测主要包括通过IE浏览器打开网站名称和使用的浏览器名称。设计方案是通过系统系统提供的API函数来监控系统打开的窗口,筛选出浏览器窗口,并对浏览器打开的网页进行记录,最后对这些监控信息进行格式化输出。
2.6系统网路连接检测
检测系统的网络连接情况检测信息包括Pid、名称、LocalAddr、LocalPort、RemoteAddr、RemotePort、State、Path。设计方案是通过系统的API函数获得系统当前的状态快照,然后在快照中筛选出网络连接,通过对快照的解析,得到网络连接的信息并进行格式化输出。最后通过自定义函数来获取网络连接名称和路径。
2.7系统注册表检测
主要目的是检测系统的注册表信息。设计方案是通过调用系统的API函数来对注册表进行相应的操作,并且用相应的格式进行显示。
3系统的测试
系统在联想Y400型主机上进行了相应的测试,主机所用的操作系统为Windows7。各项功都能正常运行,如图2能正确显示该主机的软件安装情况。系统也能根据所有的检测结果对系统做出相应的安全评估。
4总结与展望
本文通过利用WindowsAPI的接口实现了对主机的系统的安全检测和评估,检测的结果是真实可信的。对于系统的评估方法,可以加入动态的调整信任项和黑名单,使评估的结果更加符合安全状态发展的趋势,使计算机的保持较好的安全状态。
作者:刘意先 刘宏伟 单位:西安邮电大学信息安全与信息对抗实验教学中心