远程计算机审计系统设计与实现❋
2014-08-07刘意先
刘意先,行 帅
(西安邮电大学信息安全与信息对抗实验教学中心,西安710121)
·微机网络与通信·
远程计算机审计系统设计与实现❋
刘意先,行 帅
(西安邮电大学信息安全与信息对抗实验教学中心,西安710121)
为了实现对计算机的远程审计,提出了一种客户端程序和B/S结构程序并用的远程计算机审计系统设计方法。客户端程序用于采集计算机的各种4系统信息和使用记录,基于JSP的B/S结构程序用于管理员对审计数据的查看。通过该系统的实现,证明该设计方法是实用而有效的。
审计系统;Windows管理部件;钩子;Java服务器脚本
1 引 言
审计系统在计算机安全中起着非常重要的作用[1-2]。通过审计系统,管理者可以对计算机的操作起到监督作用,有效防止权限滥用[3]。从审计记录还能发现异常情况,对可能出现的安全漏洞及早发现[4-5]。随着网络应用的发展,计算机系统不再是独立的信息系统,基于单机的安全审计系统越来越不能满足需求。特别是对于单位的信息安全管理者,面对数量庞大的主机群,这就需要有一个易用而快捷的集中式远程安全审计系统对所有的主机操作信息进行收集和审计。这里提出了一个远程计算机审计系统的设计方案。该方案通过本地运行程序收集计算机的各项信息并上传至数据库中,管理者可以通过Web浏览器对所有的信息进行浏览和审计,方便的发现可能的安全风险或漏洞。
2 系统总体结构
系统主要由两部分构成,一部分是运行在被审计主机的客户端程序,功能是收集宿主主机的各种操作信息;另一部分是可以供管理员访问查看审计数据的服务器程序,审计数据来自客户端程序收集到的信息,这些信息被发送到数据库中进行存储。系统整体结构如图1所示。
2 客户端对信息的采集和存储
客户端程序主要通过四个功能模块完成数据的采集和存储工作:WMI模块采集用户主机的硬件和系统信息;钩子模块主要用来实时捕获用户使用程序情况;WinPcap模块主要用来实时捕获用户的网络数据包并提取出用户的上网记录;MYSQL模块主要负责将数据存入到远程数据库源。
2.1 通过WMI获取主机信息
WMI最初于1998年作为一个附加组件与Windows NT 4.0 Service Pack 4一起发行,是内置在Windows2000、WindowsXP和Windows Server 2003系列操作系统中核心的管理支持技术。基于由Distributed Management Task Force(DMTF)所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。WMI的使用要通过三步实现,首先初始化,然后创建WMI的名字空间,最后通过WQL进行查询。WQL是WMI中的查询语言Windows管理规范查询语言[6-7]。
图1 系统的总体结构
2.2 全局钩子监控程序记录
钩子(Hook)是Windows消息处理机制的一个平台,应用程序可以在上面设置进程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。在使用钩子时可以根据其监视范围的不同将其分为全局钩子和线程钩子两大类。其中线程钩子只能监视某个线程,而全局钩子则可对在当前系统下运行的所有线程进行监视[8]。
在本系统中采用全局钩子,使用外壳钩子WM_ SHELL,由于钩子是全局的,必须把这个钩子定义到动态链接库里。当用户打开程序(程序需要重绘一个窗口)时,钩子程序会捕获到用户的窗口句柄,通过窗口句柄获得应用程序名。
2.3 通过WinPcap捕获上网记录
WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库[9]。捕获数据的方式分为采用回调方法捕获数据和不采用回调方法捕获数据。这两者的主要区别在于不采用回调的方法捕获数据适合用户体验要求不高的情况,因此在本系统中采用不回调方法捕获数据,采用下面函数进行捕获数据包:
int cap_next_ex(pcap_t*p,struct pcap_pkthdr **pkt_header,const u_char**pkt_data);
返回值为1则表示读取数据成功,返回值为0表示读取时间超时未读取到任何数据包。当读取到数据包之后就要按照Ip数据包格式和tcp数据包格式对数据包进行分析,从而得出用户的上网网址。
2.4 上传数据到MySQL数据库
MySQL是一个小型关系型数据库管理系统,可以通过结构化查询语言(SQL)进行数据库管理。从客户端连接数据库,首先要进行初始化操作如下:
MYSQLmysql;
mysql_init(&mysql);
然后进行连接:
MYSQL*mysql_real_connect(MYSQL*mysql,const char*host,
const char*user,const char*passwd,
const char*db,unsigned int port,
const char*unix_socket,unsigned long client_ flag)
最后对数据库进行数据插入:
intmysql_real_query(MYSQL*mysql,const char*query,unsigned long length);
其中query是需要执行的数据库操作命令,在系统的客户端程序中主要是给数据库插入数据,因此主要执行的是Insert语句。Length是query语句的长度。
3 服务器端对审计数据的显示
服务器端采用B/S架构进行设计,方便管理员对数据查看,可以不受平台的限制。所有审计数据已存入了服务器端的MySQL数据库,系统采用JSP读取数据并进行前端显示。管理员只要通过Web浏览器进行必要的验证就能登入并查看,可以查看用户列表、用户的系统信息、应用程序使用记录及上网记录。如图2、图3分别显示了用户的应用程序使用情况和上网记录。
图2 用户应用程序使用情况
图3 用户上网记录
4 结束语
系统在服务器端采用B/S结构,为管理员的查看管理提供很大的方便,管理员只需通过任何带有浏览器的计算机即可进行查阅,很大程度上增强了本系统的实用性和移植性。在客户端方面的程序由于要对操作系统进行开发,因此采用C++语言进行开发,这能在一定程度上提高系统的开发效率。总的来说,系统既方便了管理员的审计工作,客户端程序也能采集到所需信息。
[1]Atymtayeva Lyazzat B,Bortsova Gerda K,Inoue Atsushi,et al.Methodology and ontology of expert system for information security audit[C].6th International Conference on Soft Computing and Intelligent Systems,and 13th International Symposium on Advanced Intelligence Systems,Kobe:IEEE,2012.
[2]Liu Jing,Wang Xiaoni,Jiao Dongliang,et al.Research and design of security audit system for compliance[C].Proceedings of2012 International Symposium on Information Technologies in Medicine and Education,Hokodate: IEEE Sapporo Sect,2012.
[3]Pereira Teresa,Dinis Santos Henrique M.An audit framework to support information system security management[J].International Journal of Electronic Security and Digital Forensics,2010,3(3):265-277.
[4]Kozhakhmet K,Bortsova G,Inoue A,Atymtayeva L.Expert System for Security Audit using fuzzy logic[C].Proceedings of the 23rd Midwest Artificial Intelligence and Cognitive Science Conference,Cincinnati:MAICS,2012.
[5]Yu Yong,Niu Lei,Yang Guomin,et al.On the security of auditingmechanisms for secure cloud storage[J].Future Generation Computer Systems,2014,30(1):127-132.
[6]李志伟,李岳.基于计算机资源知识库的安全预警系统设计[J].计算机工程与设计,2013(1):55-58,65.
[7]陈晶宁,康绯,马亚南,王军博.基于WMI技术的进程静音模型研究[J].计算机工程与应用,2012(27):79-83,89.
[8]陈学军.Windows平台下串口通信数据实时获取与监测[J].自动化仪表,2012(3):66-69.
[9]沈辉,张龙.基于WinPcap的网络数据监测及分析[J].计算机科学,2012,S2:15-18,29.
Design and Im plementation on Remote Com puter Audition System
LIU Yi-xian,XING Shuai
(Information Security and Countermeasure Experiment Teaching Center of Xi’an University of Posts and Telecommunications,Xi’an 710121,China)
To implement the remote auditing to the computers,this paper proposes a design method of remote audition system by using both client program and B/S structure program.The client program is used to capture various system information and the operation records.The B/S structure program,based on JSP,is for administrator to view the audition data.By implementation of the system,thismethod is proved that it is useful and effective.
Audition system;WMI;Hook;JSP
10.3969/j.issn.1002-2279.2014.04.011
TP309
:A
:1002-2279(2014)04-0032-03
国家自然科学基金资助项目(60234030);国家自然科学基金资助项目(61301091);陕西省自然科学基础研究计划项目(2012JQ8045);西安邮电大学青年教师科研基金资助项目(ZL2012-03);西安邮电大学青年教师科研基金资助项目(ZL2012-22)
刘意先(1980-),男,成都人,硕士研究生,工程师,主研方向:软件理论、网络与信息安全。
2014-02-10