李廷順
(華北電力大學 控制與計算機學院,北京 100089)
美國軍方于1985年提出可信計算機系統評估準則TCSEC[1],描述了兩種安全策略:自主訪問控制(Discretionary Access Control,簡稱DAC)和強制訪問控制(Mandatory Access Control,簡稱MAC)。DAC允許用戶把他對客體的訪問權授予其他用戶或從其他用戶那里收回他所授予的訪問權,它是基于客體-用戶的所屬關系的訪問控制。MAC是指系統依照對象或用戶的分級機制對資源訪問所進行的控制。
DCOM(Distributed Component Object Model,分布式組件對象模型)由微軟公司在前幾年推出的一項較為先進的技術,是客戶端/服務器(Client/Server,簡稱C/S)三層結構實現的較理想的選擇之一。目前,在局域網應用軟件的架構方面,DCOM很受工程軟件工程師的青睞。
采用DCOM技術,時常會出現一些問題,比如:當客戶端用戶數量達到一定規模(比如訪問量大于50)后,DCOM組件會爆發出各種莫名其妙的錯誤;有時DCOM線程會長時間占用服務器的內存或CPU資源等。采用MAC模式,可以解決上述問題。
DCOM組件是實現三層C/S結構的最好選擇之一,包括客戶端連接功能優化模塊和服務器端MAC模塊。
服務器端MAC模塊是該模型得以實現的核心部分,包括信息采集控制模塊和控制策略決策模塊兩個部分。其組成結構如圖1所示。

圖1 服務器端MAC模塊組成圖
這個模塊有兩個作用:其一,負責采集受控模塊的運行狀態信息,并對信息進行有效性檢測、篩選有用信息,將篩選后的信息發送給控制策略決策模塊;其二,接收控制策略決策模塊發出的控制信息,將這些信息變成適當的控制信號,發送給操作系統,通過操作系統控制受控模塊。
控制策略模塊是MAC模塊的大腦,是控制程序的核心部分。這部分主要是實現兩個功能:第一,接收信息采集控制模塊發來的受控模塊的有效信息,進行分析處理,確認受控模塊狀態是否合理合法;第二,根據分析的結果,檢索策略庫,做出對應的決策,將決策信息反饋給信息采集控制模塊。
在Windows NT環境下,DCOM組件的控制策略建議采用如下規則:
1)檢測DCOM組件的合法性,包括線程名、啟動后所占用內存是否合理、線程數量是否在規定范圍內等;
2)若CPU資源占用率在一定時間內(如,3分鐘內)一直超過規定數值(70%),視為非法;
3)若內存占有量高于規定值(如,100M),視為非法;
4)若DCOM線程數量高于統計值(如,70個),視為非法;
5)若客戶端連接數量持續高于規定值(如,50個),視為非法。
只要從系統反應來的信息中,上述五條規則中某一條滿足,該控制模塊就視為該DCOM進程異常,就可以通知操作系統對該DCOM組件進程采取相應措施,比如強行中止該進程、釋放該進程資源,之后啟動程序,恢復該進程等。
Windows系統是多線程操作系統,DCOM組件服務也是以線程的方式為客戶端提供響應的,所以服務器端模塊的實現也是以線程的級別實現的,對DCOM組件的控制表現在對系統線程的控制上。
程序的主體部分如圖2所示。
1)創建受控模塊列表;2)提升程序本身的權限;3)創建控制線程;4)創建時鐘,定期喚醒控制線程,監測受控進程。

圖2 MAC例程程序實現流程圖
線程控制部分如圖3所示。
控制線程被喚醒之后,1)根據受控進程列表,從操作系統中讀取受控進程信息;2)對讀取來的進程信息進行過濾和處理,并對有些信息進行加工;3)按照優先級依次對受控進程的信息進行處理。如果某個信息不合格,沒有達到預先的標準,那么就需要從策略庫中讀取響應的操作策略措施;4)將這些操作措施轉化成操作系統的操作信號,發送給操作系統。
在Window系統下,DCOM組件本身具有連接功能,而且這種連接方式是常連接。為了實現上述功能,客戶端除了要包括正常的業務處理功能外,還需要包括一個連接監視器,其組成結構如圖4所示。
業務處理模塊,就是客戶端要實現的業務功能。連接監視器除了要為業務模塊提供連接外,還需要具有檢測與客體的連接是否正常和斷點續連的功能。連接監視器用來實時監測客戶端模塊的連接是否完好。當客戶端與服務器之間的連接斷開后,馬上判斷該連接斷開是否是異常斷開;如果是異常斷開,馬上向服務器發出申請,請求再次連接,直至在有限次連接內成功連接為止。處理過程如流程圖5所示。
客戶端模塊斷點續連功能的實現是保證該策略得以實現的重要的前提條件。

圖3 MAC例程控制線程實現流程圖

圖4 客戶端模塊組成圖

圖5 DCOM連接主體請求連接功能流程圖
浙江某發電廠,是一家有著悠久歷史的老發電廠,承擔著對杭州供電的主要任務。2005年開始重建MIS系統,采用的正式DCOM技術。該MIS系統由于用戶眾多,且對系統訪問時間集中(集中在早晨8:30至9:30開始上班和下午16:00至16:25下班兩個時段),由于DCOM的缺陷,致使服務器響應很慢。2007年采用MAC控制策略后,響應速度和DCOM的穩定性得到了很大的提升,至今除了系統打補丁等正常重啟外,服務器一直在不間斷運行;且服務器對客戶端的響應速度提高50%以上。上述MAC策略的作用,可見一斑。
[1]Prasad A R,Moelard H,Kruys J.Security architecture for wireless LANs: corporate and public environment [A].Vehicular Technology Conference Proceedings [C]Tokyo,2000,(1): 15-18.
[2]Pattara AtikomW,Krishnamurthy P,Banerjee S.Distributed mechanisms for quality of service in wireless LANs[J].IEEEPersonal Communications,2003,10(3),26-34.
[3]李善平,劉文峰,李程遠,等.Linux內核2.4版源代碼分析大全[M].北京機械工業出版社,2002.
[4]袁兆山.面向對象軟件開發原理[M].北京: 北京希望電子出版社,2002.
[5]張海藩.軟件工程[M].北京: 清華大學出版社,1999.