摘 要: 企業(yè)專用信息系統(tǒng)對終端環(huán)境安全及軟件運(yùn)行安全有著極高的要求,但現(xiàn)階段多數(shù)企業(yè)在使用軟件系統(tǒng)時幾乎沒有采取任何防范措施。為此綜合分析了企業(yè)內(nèi)部軟件的應(yīng)用特點(diǎn),總結(jié)了信息安全需求,依據(jù)企業(yè)信息系統(tǒng)的常規(guī)運(yùn)行模式,提出了一種基于網(wǎng)絡(luò)進(jìn)程控制的終端軟件安全管理方案,實(shí)現(xiàn)了對企業(yè)信息系統(tǒng)的安全管理和控制。該方案結(jié)合進(jìn)程控制技術(shù)實(shí)現(xiàn)了一種切實(shí)、有效的安全管理機(jī)制,杜絕了非法用戶拷貝內(nèi)部系統(tǒng)而造成的危害,提升了軟件使用的安全性以及企業(yè)軟件所在終端的安全性。
關(guān)鍵詞: 信息安全; 進(jìn)程控制; 軟件安全; 終端管理
中圖分類號:TP393.18 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2013)12-15-03
Enterprise terminal management system based on process control
Zhang Jiang, Liao Kui, Sun Ye
(77302 PLA troops, Kunming, Yunnan 650051, China)
Abstract: Enterprise specialized information systems require both terminal environment and software operation process. There is little preventive measure in most enterprises in using software systems. The characteristics of enterprise software applications is analyzed, the information security requirement is summarized, and network-based process control terminal software safety management solution is proposed, according to the enterprise information system's normal operating mode, to realize the enterprise information system security management and control. This solution exploits process control technology to achieve an efficient and effective security management, prevents users from illegally copying internal systems and enhances the security of software and terminal of enterprise.
Key words: information security; process control; software security; terminal management
0 引言
企業(yè)內(nèi)部信息系統(tǒng)對其運(yùn)行終端的安全有著很高要求。然而多數(shù)企業(yè)并沒有明確的管理規(guī)定和有效的技術(shù)手段來控制用戶終端的安全性,終端運(yùn)行的軟件往往是非常隨意和不可控制的,用戶時常會安裝一些與工作無關(guān)的聊天、游戲軟件,而且不會注重軟件的來源和安全性,而此類軟件往往就是病毒和木馬的載體。一些軟件的隨意使用對于系統(tǒng)安全和網(wǎng)絡(luò)安全的危害是不言而喻的,而對于企業(yè)內(nèi)部信息系統(tǒng)而言,這樣的終端使用方式對信息系統(tǒng)本身及其數(shù)據(jù)的安全將會帶來極大的威脅。所以安全、合理的管控部署企業(yè)內(nèi)部系統(tǒng)的終端有著極為重要的意義。本文提出的企業(yè)軟件管理方案,采用網(wǎng)絡(luò)進(jìn)程管理的方式實(shí)現(xiàn)對客戶端軟件的實(shí)時監(jiān)控和自動控制;系統(tǒng)可以根據(jù)近期病毒和木馬爆發(fā)的情況新建控制規(guī)則,從而具備一定的防范病毒及木馬的能力。
1 系統(tǒng)的基本結(jié)構(gòu)
企業(yè)終端管理系統(tǒng)采用C/S架構(gòu),由服務(wù)端的終端管理器和客戶端的進(jìn)程管理器組成。服務(wù)端負(fù)責(zé)審批用戶注冊、維護(hù)用戶進(jìn)程許可表、制定黑名單等??蛻舳烁鶕?jù)來自服務(wù)端的運(yùn)行許可表或本地的許可表來控制進(jìn)程的運(yùn)行,同時也能進(jìn)行用戶注冊和進(jìn)程運(yùn)行申請等操作。整個系統(tǒng)的體系結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)基本結(jié)構(gòu)
2 終端管理系統(tǒng)總體設(shè)計
企業(yè)終端管理系統(tǒng)的設(shè)計目標(biāo)簡而言之就是實(shí)現(xiàn)一個網(wǎng)絡(luò)版、智能化的“任務(wù)管理器”。為滿足應(yīng)用需要,系統(tǒng)要實(shí)現(xiàn)終端用戶任務(wù)和進(jìn)程管理功能,主要包括以下內(nèi)容。
⑴ 用戶可用系統(tǒng)人工管理本地進(jìn)程,服務(wù)端可以主動控制和管理在線用戶的進(jìn)程運(yùn)行。
⑵ 用戶向服務(wù)端注冊,并把操作系統(tǒng)的基本進(jìn)程和需要運(yùn)行的特定進(jìn)程上報到服務(wù)端。
⑶ 管理員根據(jù)經(jīng)驗(yàn)和應(yīng)用需要審核用戶及其進(jìn)程,并制定“進(jìn)程運(yùn)行許可表”和黑名單,終端將許可表和黑名單下載到本地并保持同步。
⑷ 終端在操作系統(tǒng)運(yùn)行期間,每次增加進(jìn)程時都會與運(yùn)行許可表和黑名單對照,從而決定對該進(jìn)程進(jìn)行何種操作(通過、禁用或刪除文件)。
⑸ 終端如需要運(yùn)行未審核的進(jìn)程可向服務(wù)端提出申請。
3 系統(tǒng)實(shí)現(xiàn)
3.1 終端管理系統(tǒng)核心功能設(shè)計與實(shí)現(xiàn)
⑴ 獲取并顯示進(jìn)程信息
終端管理器和客戶端進(jìn)程管理器均需要獲取系統(tǒng)運(yùn)行的所有進(jìn)程列表,系統(tǒng)通過Process32First和Process32Next等API獲取所有進(jìn)程的信息,與Windows任務(wù)管理器不同的是,系統(tǒng)還需獲取進(jìn)程路徑以計算出程序MD5值,從而對軟件進(jìn)行惟一標(biāo)識,并讓服務(wù)器能夠判斷進(jìn)程的合法性。最終的實(shí)現(xiàn)效果如圖2所示。
⑵ 結(jié)束進(jìn)程
對于未經(jīng)注冊的或是被判定為篡改的進(jìn)程,必須終止其運(yùn)行。本文采用TerminateProcess()API來實(shí)現(xiàn)終止進(jìn)程的操作。終止過程首先調(diào)用OpenProcess函數(shù)將進(jìn)程打開,然后調(diào)用TerminateProcess()函數(shù)結(jié)束進(jìn)程。
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,
FALSE,m_dwProcessID.GetAt(m_iCurSel));
TerminateProcess(hProcess,1);
⑶ 刪除文件
當(dāng)發(fā)現(xiàn)進(jìn)程列表中有異常程序,如病毒或木馬程序,我們不僅需要終止其運(yùn)行,還需要將對應(yīng)的文件刪除,使其不能再次運(yùn)行。刪除文件同樣需要用OpenProcess函數(shù)將進(jìn)程打開,用FindFirstFile找到文件,然后用TerminateProcess函數(shù)結(jié)束進(jìn)程,再刪除該進(jìn)程對應(yīng)的文件。具體的刪除過程如下:
HANDLE hProcess=OpenProcess(PROCESS_TERMINATE,
FALSE,m_dwProcessID.GetAt(m_iCurSel));
HANDLE h=::FindFirstFile(filename,fDate); //查找文件
TerminateProcess(hProcess,1); //終止進(jìn)程
::DeleteFile(fData.cFileName); //刪除文件
⑷ 向服務(wù)端發(fā)送進(jìn)程運(yùn)行信息
為保證服務(wù)端全面掌握客戶端運(yùn)行進(jìn)程情況,客戶端定期向服務(wù)端發(fā)送當(dāng)前運(yùn)行進(jìn)程的信息??蛻舳耸紫确治鲈诰€進(jìn)程,獲取進(jìn)程所在文件之后求出該文件的大小和MD5值,結(jié)合客戶端認(rèn)證ID惟一標(biāo)識該進(jìn)程;之后客戶端將上述信息結(jié)合IP一起向服務(wù)端發(fā)送(之所以包含IP是為了避免與服務(wù)器一直保持熱連接占用資源,方便服務(wù)器統(tǒng)一處理之后再根據(jù)數(shù)據(jù)包的IP將控制信息返回)。發(fā)送的時機(jī)主要在兩個時段:一是客戶端第一次連接到服務(wù)端的時刻;二是系統(tǒng)有了新增進(jìn)程的時刻。在第二種情況下如果增加新進(jìn)程的時候剛好連接不上服務(wù)器,則將發(fā)送的內(nèi)容存于緩沖文件,之后等待連接成功后再行發(fā)送。向服務(wù)端發(fā)送的進(jìn)程信息結(jié)構(gòu)如下:
Typedef struct tagProcessMSG {
DWORD FileSize; //文件大?。ㄒ宰止?jié)計)
char ProcName[MAX_PROC_NAME]; //進(jìn)程名
char ExeName[MAX_MODULE_NAME]; //進(jìn)程文件名
char FileMD5[32+1]; //MD5效驗(yàn)值
char ClientID[MAX_CLIENT_ID]; //客戶端認(rèn)證ID
char ClientIP[16]; //本機(jī)IP
} ProcessMSG;
⑸ 服務(wù)端向客戶端發(fā)送進(jìn)程控制信息
服務(wù)端收到客戶端的進(jìn)程運(yùn)行信息后,根據(jù)進(jìn)程名和MD5值在數(shù)據(jù)庫中對照相關(guān)的數(shù)據(jù)表,一是該用戶所對應(yīng)的“進(jìn)程運(yùn)行許可表”,二是公用的危險進(jìn)程表。之后根據(jù)對照結(jié)果向客戶端發(fā)送控制信息,控制信息包括兩種類型:終止進(jìn)程和刪除文件。客戶端收到信息后根據(jù)信息類型作出相應(yīng)的處理。向客戶端發(fā)送的控制信息結(jié)構(gòu)體如下:
Typedef struct tagControlMSG {
DWORD FileSize; //文件大?。ㄒ宰止?jié)計)
char ProcName[MAX_PROC_NAME]; //進(jìn)程名
char ExeName[MAX_MODULE_NAME]; //進(jìn)程文件名
char FileMD5[32+1]; //MD5效驗(yàn)值
BOOL IfTerminate; //是否終止
BOOL IfDelete; //是否刪除
} ControlMSG;
⑹ 向服務(wù)端發(fā)送申請信息
服務(wù)端維護(hù)著控制進(jìn)程運(yùn)行的兩種名單:黑名單和白名單。黑名單由服務(wù)器根據(jù)病毒通報主動設(shè)置。而白名單則通過客戶端和服務(wù)端的交互來完成設(shè)置??蛻舳讼蚍?wù)端發(fā)送申請進(jìn)程運(yùn)行信息的時機(jī)主要有三個:一是客戶端剛剛安裝完系統(tǒng)之后,通過批量發(fā)送申請信息使得系統(tǒng)的基本進(jìn)程獲得運(yùn)行許可;二是客戶端裝完所有需要運(yùn)行的軟件后;三是客戶端需要運(yùn)行新軟件并能確認(rèn)軟件安全性的時候。服務(wù)端接到申請信息后根據(jù)經(jīng)驗(yàn)和與客戶端的主動交互判斷是否通過驗(yàn)證。
3.2 服務(wù)端的功能及其實(shí)現(xiàn)
服務(wù)端的主要功能是通過維護(hù)規(guī)則表和設(shè)置運(yùn)行模式,實(shí)現(xiàn)對客戶端運(yùn)行進(jìn)程的控制。服務(wù)端可以采取兩種模式來控制客戶端的進(jìn)程運(yùn)行:“白名單模式”和“黑名單模式”。在白名單模式下,客戶端所有未列入白名單的進(jìn)程都不能運(yùn)行;在黑名單模式下,客戶端只有列入黑名單的進(jìn)程不能運(yùn)行,其余進(jìn)程均可自由運(yùn)行。圖3是服務(wù)端的圖形管理界面,實(shí)際的核心功能以系統(tǒng)服務(wù)的方式運(yùn)行,管理界面主要用于參數(shù)設(shè)置和系統(tǒng)管理。
3.3 客戶端的功能及其實(shí)現(xiàn)
客戶端的主要功能是根據(jù)服務(wù)端設(shè)定的進(jìn)程運(yùn)行許可表和運(yùn)行模式來控制本機(jī)的進(jìn)程運(yùn)行,同時可根據(jù)用戶的需要連接服務(wù)端進(jìn)行進(jìn)程注冊和進(jìn)程運(yùn)行申請等工作的交互??蛻舳丝蛇\(yùn)行于離線模式,離線模式下客戶端可根據(jù)最后一次在線同步的進(jìn)程運(yùn)行表來控制進(jìn)程運(yùn)行。
4 系統(tǒng)分析
經(jīng)實(shí)驗(yàn)驗(yàn)證,系統(tǒng)能夠有效管控客戶端的軟件運(yùn)行以保證企業(yè)終端的安全性。系統(tǒng)可以防范三類危險程序的運(yùn)行:第一類是未被認(rèn)證的程序文件;第二類是經(jīng)過認(rèn)證但被病毒感染后大小變化的文件;第三類是被加殼壓縮后又被附加長度,文件大小不變但已被篡改的文件。由于系統(tǒng)結(jié)合進(jìn)程名、文件大小和MD5效驗(yàn)值來惟一標(biāo)識程序,所以上述的非法文件均可被識別和控制。
5 結(jié)束語
隨著信息化發(fā)展的不斷深入,越來越多的企業(yè)安裝了內(nèi)部專用系統(tǒng),如何有效地控制終端安全,如何規(guī)避終端隨意使用軟件對系統(tǒng)造成的安全威脅,已成為企業(yè)信息安全研究領(lǐng)域亟待解決的問題。截止目前,企業(yè)在用的多數(shù)信息系統(tǒng)對終端安全管理方面幾乎沒有采取任何應(yīng)對措施,這和專用系統(tǒng)的安全要求是極其不相稱的。有效控制部署企業(yè)信息系統(tǒng)的終端,防范用戶非法操作,對于提高系統(tǒng)安全性有現(xiàn)實(shí)意義。
本文對軟件認(rèn)證技術(shù)、軟件加殼技術(shù)進(jìn)行了綜合研究,結(jié)合進(jìn)程管理技術(shù)和網(wǎng)絡(luò)控制功能,提出了一種管理企業(yè)內(nèi)部系統(tǒng)終端的網(wǎng)絡(luò)進(jìn)程管理方案,該方案能通過服務(wù)端完全控制終端進(jìn)程運(yùn)行,解決了無關(guān)軟件在終端隨意使用的問題,提升了企業(yè)軟件運(yùn)行環(huán)境的安全性。然而系統(tǒng)當(dāng)前的使用問題是:終端的很多軟件都需要不斷升級,升級之后文件大小和哈希值將會發(fā)生變化,導(dǎo)致軟件登記信息失效,這種情況和軟件被病毒感染的表征是一樣的,系統(tǒng)目前還難以區(qū)分。如何根據(jù)軟件升級信息修改運(yùn)行許可表,將是系統(tǒng)下一步需要完善的功能。
參考文獻(xiàn):
[1] 管麗娟.基于MD5的軟件注冊碼的設(shè)計與實(shí)現(xiàn)[J].計算機(jī)應(yīng)用與軟
件,2013.1(082):319-320
[2] 郭偉斌.軟件注冊機(jī)制模塊的研究[J].微計算機(jī)信息,2006.22(5-3):
268-269
[3] 吳建軍.基于WCF的軟件在線注冊方案[J].計算機(jī)系統(tǒng)應(yīng)用,
2012.21(4):125-129
[4] 許照慧.基于CPK的終端軟件安全管理系統(tǒng)的研究[J].計算機(jī)工程
與設(shè)計,2011.32(8):2584-2587
[5] 張怡婷.基于非對稱密碼體制的軟件注冊系統(tǒng)研究與實(shí)現(xiàn)[J].計算機(jī)
應(yīng)用,2005.25(2):399-402
[6] 陳奇峰.基于橢圓曲線數(shù)字簽名算法的軟件注冊碼方案[J].科學(xué)技術(shù)
與工程,2009.9(6):1584-1586