蔡 誼 劉東生
(西三環(huán)中路19號(hào) 北京 100841)
隨著信息技術(shù)的不斷發(fā)展,軍隊(duì)信息化建設(shè)也在穩(wěn)步向前推進(jìn)。當(dāng)前,已有越來(lái)越多的機(jī)關(guān)及下屬各單位,部署了OA(辦公自動(dòng)化)系統(tǒng)。OA系統(tǒng)有力地矯正了行政管理中,可能會(huì)出現(xiàn)的隨意和混亂現(xiàn)象,實(shí)現(xiàn)了辦公的流程化與標(biāo)準(zhǔn)化,有效提高了相關(guān)人員的辦事效率。
OA系統(tǒng)的主要功能包括:通知通告的公示、電子郵件的收發(fā)、公文的流轉(zhuǎn)以及其它一些在線服務(wù)等?,F(xiàn)有OA系統(tǒng)過(guò)多地強(qiáng)調(diào)了功能的多樣性與復(fù)雜性,對(duì)自身的安全性有所忽視,主要表現(xiàn)在:OA系統(tǒng)一般基于Web服務(wù),對(duì)用戶身份認(rèn)證的安全強(qiáng)度不高;對(duì)合法用戶沒(méi)有進(jìn)行嚴(yán)格的訪問(wèn)控制,可以進(jìn)行越權(quán)訪問(wèn)[1];安全機(jī)制集中于系統(tǒng)的應(yīng)用層,與底層操作系統(tǒng)結(jié)合不緊,存在被旁路的危險(xiǎn),因此不能從根本上保證應(yīng)用系統(tǒng)的安全[2~4]。
針對(duì)上述問(wèn)題,本文以O(shè)A系統(tǒng)的典型應(yīng)用—公文流轉(zhuǎn)為例,對(duì)其中存在的脆弱性問(wèn)題進(jìn)行了分析和研究。在此基礎(chǔ)上,給出了OA應(yīng)用安全增強(qiáng)系統(tǒng)的設(shè)計(jì)方案,并通過(guò)實(shí)際的安全應(yīng)用部署,證明了方案的可行性以及系統(tǒng)實(shí)現(xiàn)的可靠性。
公文流轉(zhuǎn)是OA系統(tǒng)最為主要和典型的應(yīng)用,公文流轉(zhuǎn)的整體過(guò)程由OA系統(tǒng)的管理員,根據(jù)相應(yīng)的規(guī)章制度進(jìn)行配置。公文流轉(zhuǎn)過(guò)程配置完成后,—般不會(huì)再輕易做出改動(dòng),相關(guān)人員會(huì)遵循固定流程,完成公文的逐級(jí)上報(bào)與審批。
現(xiàn)有的OA系統(tǒng)大多是基于B/S構(gòu)架,用戶在客戶端通過(guò)瀏覽器登錄OA服務(wù)器,然后根據(jù)OA系統(tǒng)管理員所制定的公文流轉(zhuǎn)過(guò)程,進(jìn)行公文的接收與發(fā)送,實(shí)現(xiàn)辦公應(yīng)用的規(guī)范化操作。下面,以某單位的公文接收過(guò)程為例,分析公文的流轉(zhuǎn)過(guò)程,其流程如圖1所示。
圖1 典型公文流轉(zhuǎn)過(guò)程
上述公文流轉(zhuǎn)的過(guò)程,由各單位根據(jù)公文的知悉范圍和相關(guān)的保密規(guī)定所制定,是一個(gè)相對(duì)固定的流程。如果違反相應(yīng)的規(guī)章制度,對(duì)流轉(zhuǎn)過(guò)程進(jìn)行篡改,就會(huì)導(dǎo)致公文的安全性面臨威脅。對(duì)公文流轉(zhuǎn)過(guò)程進(jìn)行篡改,可以利用OA系統(tǒng)管理員的權(quán)限來(lái)達(dá)到目的,也可以通過(guò)對(duì)相關(guān)數(shù)據(jù)包的修改來(lái)實(shí)現(xiàn)。下面,分別對(duì)這兩種方式的具體實(shí)現(xiàn)加以說(shuō)明。
在OA系統(tǒng)中,OA管理員的身份認(rèn)證大多是基于用戶名和口令式的,安全強(qiáng)度不高。一旦攻擊者竊取或破譯了OA管理員的密碼,就可以修改公文流轉(zhuǎn)的過(guò)程,使得公文流向發(fā)生變化,破壞OA系統(tǒng)的安全性。另外,OA管理員自身也可能會(huì)存在違規(guī)操作,未經(jīng)批準(zhǔn),擅自修改固定流程。利用OA管理員身份,針對(duì)上述公文流轉(zhuǎn)過(guò)程進(jìn)行篡改后的流程如圖2所示。
圖2 基于系統(tǒng)管理員身份的流程篡改
從圖2中可見(jiàn),以O(shè)A管理員身份登錄OA系統(tǒng)后,在流程的第五步和第六步之間添加了一個(gè)新的“收文辦理”環(huán)節(jié)。按照新的工作流程,工作人員A能夠直接將收文發(fā)送給工作人員C辦理。但在實(shí)際工作中,這一違規(guī)流程將擴(kuò)大公文的知悉范圍,造成對(duì)公文的越權(quán)訪問(wèn),應(yīng)當(dāng)是被禁止的。
對(duì)公文流轉(zhuǎn)過(guò)程進(jìn)行篡改,另外一種間接的方法,是對(duì)相關(guān)數(shù)據(jù)包進(jìn)行截獲分析,并對(duì)數(shù)據(jù)包進(jìn)行修改,以達(dá)到攻擊目的。為達(dá)到相同的攻擊效果,攻擊者會(huì)攔截第五步提交的數(shù)據(jù)包,并對(duì)其中的內(nèi)容進(jìn)行修改,修改后流程如圖3所示。
圖3 基于數(shù)據(jù)包分析的流程篡改
在實(shí)際攻擊中,假設(shè)攻擊者已經(jīng)獲知工作人員C的用戶名和密碼,并在網(wǎng)絡(luò)上截獲了工作人員A提交公文所對(duì)應(yīng)的數(shù)據(jù)包,對(duì)其中的路徑內(nèi)容做如下修改:
Javascript:eWorksDoc.Form.selectedUserlDs.value=
工作人員C賬號(hào);
eWorksDoc.Form.selectedFlowlD.value=目標(biāo)流向ID;
eWorksDoc.Form.sendMode.value=1;
eWorksDoAction(‘complete’)。
修改完成后,公文流轉(zhuǎn)的過(guò)程也會(huì)發(fā)生相應(yīng)的變化,使得本應(yīng)該只流向工作人員B的公文,同時(shí)流向了工作人員C。
綜上所述,現(xiàn)有OA系統(tǒng)的脆弱性主要表現(xiàn)在兩個(gè)方面:首先,OA管理員和一般用戶的身份認(rèn)證強(qiáng)度不夠,使得用戶身份存在被冒充的可能性:其次,現(xiàn)有的安全機(jī)制位于應(yīng)用層,存在被旁路的危險(xiǎn)。這些因素都會(huì)直接或間接導(dǎo)致公文流轉(zhuǎn)的應(yīng)用流程被惡意篡改。
針對(duì)現(xiàn)有OA系統(tǒng)在典型應(yīng)用中存在的脆弱性,本文設(shè)計(jì)了OA應(yīng)用安全增強(qiáng)系統(tǒng)。該系統(tǒng)是在OA服務(wù)器的前端,以橋接模式透明接入前置機(jī),實(shí)現(xiàn)對(duì)OA服務(wù)器請(qǐng)求數(shù)據(jù)包的分析與過(guò)濾,防止非法訪問(wèn),確保相關(guān)信息流的安全。前置機(jī)所使用的強(qiáng)制訪問(wèn)控制策略由安全管理員在安全管理中心上進(jìn)行配置,并以在線的方式下發(fā)到前置機(jī)上。OA應(yīng)用安全增強(qiáng)系統(tǒng)總體拓?fù)浣Y(jié)構(gòu)如圖4所示。
圖4 OA應(yīng)用安全增強(qiáng)系統(tǒng)拓?fù)浣Y(jié)構(gòu)
OA應(yīng)用安全增強(qiáng)系統(tǒng)在運(yùn)行中,首先需要由安全管理中心給合法用戶配發(fā)相應(yīng)的 身 份 鑰 匙,即 USBKEY:接著在安全管理中心,由安全管理員對(duì)OA服務(wù)器中的資源進(jìn)行歸類,并對(duì)其中的主客體信息進(jìn)行標(biāo)記,設(shè)定相應(yīng)的范疇、敏感度及可信度[5~7],然后將這些信息作為安全策略,下發(fā)到前置機(jī):前置機(jī)上的安全內(nèi)核模塊,會(huì)對(duì)辦公終端訪問(wèn)OA服務(wù)器的請(qǐng)求數(shù)據(jù)包進(jìn)行截獲與分析,提取相關(guān)的主客體信息,同時(shí)根據(jù)安全管理中心下發(fā)的安全策略,實(shí)現(xiàn)操作系統(tǒng)內(nèi)核級(jí)的強(qiáng)制訪問(wèn)控制。
OA應(yīng)用安全增強(qiáng)系統(tǒng)利用硬件USB KEY,通過(guò)專用的身份認(rèn)證協(xié)議和鑒別機(jī)制,實(shí)現(xiàn)對(duì)登錄到OA系統(tǒng)的用戶身份雙因子認(rèn)證,提高了認(rèn)證的安全強(qiáng)度;利用前置機(jī)的操作系統(tǒng)內(nèi)核增強(qiáng)模塊,對(duì)終端請(qǐng)求的數(shù)據(jù)包進(jìn)行截獲、分析和判斷,能保證安全機(jī)制不會(huì)被旁路。
圖5 OA應(yīng)用安全增強(qiáng)系統(tǒng)模塊組成
OA應(yīng)用安全增強(qiáng)系統(tǒng)由兩大功能組件構(gòu)成:安全管理中心和前置機(jī)安全內(nèi)核增強(qiáng)模塊。安全管理中心由動(dòng)態(tài)網(wǎng)頁(yè)、后臺(tái)數(shù)據(jù)庫(kù)與安全代理構(gòu)成;前置機(jī)的安全內(nèi)核增強(qiáng)模塊可以分為數(shù)據(jù)包分析模塊、安全代理模塊、訪問(wèn)控制模塊以及審計(jì)模塊。上述模塊的作用及其相互之間的關(guān)系,如圖5所示。
安全管理中心用于對(duì)合法用戶進(jìn)行身份注冊(cè),配發(fā)相應(yīng)的USBKEY;根據(jù)主客體信息的范疇、敏感度與可信度,下發(fā)相應(yīng)的安全策略給前置機(jī)安全內(nèi)核增強(qiáng)模塊;同時(shí),安全管理中心還會(huì)根據(jù)制定好的審計(jì)規(guī)則,接收由前置機(jī)安全內(nèi)核上傳的相關(guān)審計(jì)信息,以便于安全管理員進(jìn)行查看和分析。
前置機(jī)安全內(nèi)核增強(qiáng)模塊用于透明接管終端用戶的訪問(wèn)請(qǐng)求,對(duì)OA系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行分析和控制,過(guò)濾掉非法請(qǐng)求,確保OA系統(tǒng)的安全性。安全內(nèi)核增強(qiáng)模塊的構(gòu)成及其相互間關(guān)系是:
1)安全代理模塊:接收由安全管理中心下發(fā)的安全策略,將安全策略傳遞給訪問(wèn)控制模塊;接收由審計(jì)模塊產(chǎn)生的審計(jì)信息,將審計(jì)信息上報(bào)給安全管理中心。
2)數(shù)據(jù)包分析模塊:根據(jù)OA系統(tǒng)的應(yīng)用協(xié)議對(duì)終端發(fā)出的請(qǐng)求數(shù)據(jù)包進(jìn)行分析,從用戶登錄數(shù)據(jù)包中提取主體信息,從URL串中提取客體資源信息,并將這些主客體信息傳遞給訪問(wèn)控制模塊。
3)訪問(wèn)控制模塊:接收由數(shù)據(jù)包分析模塊傳遞的主客體信息,根據(jù)安全管理中心下發(fā)的安全策略,對(duì)主體的訪問(wèn)權(quán)限進(jìn)行控制,防止非法用戶的非授權(quán)訪問(wèn)以及合法用戶的越權(quán)訪問(wèn)。
4)審計(jì)模塊:用于記錄所有用戶對(duì)OA服務(wù)器的操作信息,以及錯(cuò)誤信息,便于安全管理員進(jìn)行統(tǒng)計(jì)和分析,利于事后審查與追蹤。
OA應(yīng)用安全增強(qiáng)系統(tǒng)核心模塊的功能主要包括:安全策略的下載以及操作系統(tǒng)內(nèi)核級(jí)的強(qiáng)制訪問(wèn)控制[8~9]。
1)安全策略下載
前置機(jī)的安全代理模塊讀取本地網(wǎng)絡(luò)配置文件,獲取安全管理中心的IP地址和端口,向安全管理中心進(jìn)行注冊(cè)。在注冊(cè)成功后,請(qǐng)求并接收安全管理中心下發(fā)的安全策略。策略下載流程如圖6所示。
圖6 策略下載流程
前置機(jī)安全代理將接收到的安全策略存入緩沖區(qū),在接收完成后,安全代理會(huì)在本地計(jì)算安全策略的hash值,并將其與安全管理中心下發(fā)的hash值相比較,驗(yàn)證安全策略的完整性。如果策略下載完整,則安全策略保存到本地磁盤,否則給出相應(yīng)的提示并退出。
2)強(qiáng)制訪問(wèn)控制
前置機(jī)的安全內(nèi)核在實(shí)現(xiàn)強(qiáng)制訪問(wèn)控制時(shí),首先需要在操作系統(tǒng)內(nèi)核中加載鉤子函數(shù)[10],對(duì)數(shù)據(jù)包進(jìn)行分析和過(guò)濾,提取所需的主客體相關(guān)信息。然后根據(jù)下載的安全策略,決定是否轉(zhuǎn)發(fā)數(shù)據(jù)包。強(qiáng)制訪問(wèn)控制的具體流程如圖7所示。
安全內(nèi)核中的鉤子函數(shù)對(duì)截獲的數(shù)據(jù)包進(jìn)行分析,判斷當(dāng)前用戶的操作行為是否與公文流轉(zhuǎn)相關(guān),如果不相關(guān)則讓數(shù)據(jù)通過(guò)。如果相關(guān),則記錄下當(dāng)前登錄用戶的SSID,并將SSID寫入對(duì)應(yīng)主體鏈表節(jié)點(diǎn)內(nèi)。
分析用戶發(fā)起的是公文流轉(zhuǎn),還是公文瀏覽。如果是公文的流轉(zhuǎn),則查找目的用戶,比較源用戶和目的用戶是否在同一范疇內(nèi),如果在同一范疇,則允許數(shù)據(jù)包通過(guò),如果出現(xiàn)越級(jí)現(xiàn)象,則進(jìn)行審計(jì)并丟棄數(shù)據(jù)包。
圖7 強(qiáng)制訪問(wèn)控制流程
如果用戶進(jìn)行的是公文瀏覽操作,則記錄當(dāng)前公文的標(biāo)識(shí)。接著,以安全管理中心下發(fā)的安全策略為依據(jù),比較用戶及公文的可信度、敏感度與范疇,如果滿足安全策略,則允許數(shù)據(jù)包通過(guò),否則進(jìn)行審計(jì)并丟棄數(shù)據(jù)包。
本文通過(guò)對(duì)現(xiàn)有OA系統(tǒng)的脆弱性進(jìn)行分析,有針對(duì)性的增強(qiáng)了用戶身份認(rèn)證機(jī)制,使得用戶的身份不易被竊取和冒充。同時(shí),在前置機(jī)的操作系統(tǒng)內(nèi)核層實(shí)現(xiàn)強(qiáng)制訪問(wèn)控制,確保用戶無(wú)法進(jìn)行違規(guī)操作。
在實(shí)際應(yīng)用部署中,OA應(yīng)用安全增強(qiáng)系統(tǒng)無(wú)需對(duì)應(yīng)用服務(wù)器進(jìn)行修改,由安全管理中心進(jìn)行安全策略配置,所有訪問(wèn)服務(wù)器的數(shù)據(jù)都要經(jīng)過(guò)前置機(jī),實(shí)施內(nèi)核級(jí)的強(qiáng)制訪問(wèn)控制。測(cè)試表明,該系統(tǒng)在不影響OA服務(wù)器正常工作的前提下,能夠較好實(shí)現(xiàn)對(duì)上層應(yīng)用的安全透明支撐與保障。
[1]沈昌祥.基于積極防御的安全保障框架[J].中國(guó)信息導(dǎo)報(bào),2003(10):50-51.
[2]D.Baker.Building Upon Sand[J].Proceedings of the New Security Paradigms Workshop,1996:25-27.
[3]Peter A.Loscocco,Stephen D.Smalley,Patrick A.Muckelbauer,et al.The Inevitability Of Failure:The Flawed Assumption of Security in Modern Computing Environment[C]//Proceedings of the 21st National Information Systems Security Conference,1998:303-314.
[4]沈昌祥.關(guān)于加強(qiáng)信息安全保障體系的思考[J].信息安全與通信保密,2002(24):11-14.
[5]D.E.Bell,L.J.LaPadula.Secure Computer System:Mathematical Foundation[EB/OL].http://citeseer.ist.psu.edu/548063.html,2002,6.
[6]M.Abrams,L.Lapadula,K.Eggers,et al.A Generalized Framework for Access Control:an Informal Description[C]//Proceedings of the 13hNational Computer Security Conference,1990:134-143.
[7]蔡誼,沈昌祥,鄭志蓉.多級(jí)安全策略的二維標(biāo)識(shí)模型[J].計(jì)算機(jī)學(xué)報(bào),2004(5):619-624.
[8]S.Jajodia,P.Samarati,V.Subrahmanian,et al.A Unified Framework for Enforcing Multiple Access Control Policies[C]//Proceedings of SIGMOD,1997:474-485.
[9]Ray Spencer,Stephen Smalley,Peter Loscacco,et al.The Flask Security Architecture:System Support for Diverse Security Policies[C]//Proceedings of the 8th USENIX Security Symposium,1999:242-247.
[10]Chirs Wright,Crispin Cowan,et al.Linux Security Module Framework[J].Proceedings of the 2002Ottawa Linux Symposium,2002:303-314.