劉意先,行 帥
(西安郵電大學信息安全與信息對抗實驗教學中心,西安710121)
·微機網絡與通信·
遠程計算機審計系統設計與實現?
劉意先,行 帥
(西安郵電大學信息安全與信息對抗實驗教學中心,西安710121)
為了實現對計算機的遠程審計,提出了一種客戶端程序和B/S結構程序并用的遠程計算機審計系統設計方法。客戶端程序用于采集計算機的各種4系統信息和使用記錄,基于JSP的B/S結構程序用于管理員對審計數據的查看。通過該系統的實現,證明該設計方法是實用而有效的。
審計系統;Windows管理部件;鉤子;Java服務器腳本
審計系統在計算機安全中起著非常重要的作用[1-2]。通過審計系統,管理者可以對計算機的操作起到監督作用,有效防止權限濫用[3]。從審計記錄還能發現異常情況,對可能出現的安全漏洞及早發現[4-5]。隨著網絡應用的發展,計算機系統不再是獨立的信息系統,基于單機的安全審計系統越來越不能滿足需求。特別是對于單位的信息安全管理者,面對數量龐大的主機群,這就需要有一個易用而快捷的集中式遠程安全審計系統對所有的主機操作信息進行收集和審計。這里提出了一個遠程計算機審計系統的設計方案。該方案通過本地運行程序收集計算機的各項信息并上傳至數據庫中,管理者可以通過Web瀏覽器對所有的信息進行瀏覽和審計,方便的發現可能的安全風險或漏洞。
系統主要由兩部分構成,一部分是運行在被審計主機的客戶端程序,功能是收集宿主主機的各種操作信息;另一部分是可以供管理員訪問查看審計數據的服務器程序,審計數據來自客戶端程序收集到的信息,這些信息被發送到數據庫中進行存儲。系統整體結構如圖1所示。
客戶端程序主要通過四個功能模塊完成數據的采集和存儲工作: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語句的長度。
服務器端采用B/S架構進行設計,方便管理員對數據查看,可以不受平臺的限制。所有審計數據已存入了服務器端的MySQL數據庫,系統采用JSP讀取數據并進行前端顯示。管理員只要通過Web瀏覽器進行必要的驗證就能登入并查看,可以查看用戶列表、用戶的系統信息、應用程序使用記錄及上網記錄。如圖2、圖3分別顯示了用戶的應用程序使用情況和上網記錄。

圖2 用戶應用程序使用情況

圖3 用戶上網記錄
系統在服務器端采用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