李順新,楊 鑫
(武漢科技大學 計算機學院,湖北 武漢 430081)
隨著ASP.NET2.0與SQL Server網絡應用程序開發(fā)的快速發(fā)展,在由數據庫驅動的Web應用程序中,為從數據庫讀取的數據能及時、準確、快速地提供給訪問客戶,通常采用緩存技術。但在使用SQL緩存[1-2]提高效率的過程中,內存中緩存的數據等待時間較長,存在數據信息安全的隱蔽通道問題。
隨著ASP.NET技術的不斷完善,在ASP.NET2.0中增加一組新的DataSource控件,通過使用DataSource控件,使在ASP.NET頁面上訪問數據庫數據的訪問方式得到優(yōu)化和改變,以此創(chuàng)建可以顯示數據庫數據的ASP.NET頁面,避免編寫多余的訪問數據庫的代碼。
在使用DataSource控件時,不僅可以有效連接數據庫,同時還可以通過設置SqlDataSource控件上的屬性,自動在內存中緩存有DataSource控件表示的數據[1-2],以此在Web應用程序中,對數據庫數據能及時、準確、快速地訪問。
在使用DataSource控件時,通過設置SqlDataSource控件上的屬性,將那些大量由服務器資源獲取到的數據集存儲在內存中,可以提高客戶端快捷地獲取服務的效率。但由于客戶端用戶的實際操作,會存在內存中緩存的數據存儲等待時間過長,甚至數據過期。例如,當服務器基礎數據庫中的數據發(fā)生變化時,而使用SqlData-Source控件屬性設置在客戶端內存中存儲的數據庫表的內容沒有得到及時更新,則在Web應用程序中會顯示舊的、過期的、不準確的數據信息。
為改變因緩存技術帶來的不足,在ASP.NET2.0新增加了SQL緩存無效功能,利用SqlCacheDependency類實現SQL緩存無效功能。即:在SQL Server數據庫對象和Web應用程序緩存對象之間,建立SQL緩存依賴關系,由SqlCacheDependency對象監(jiān)控Web應用程序中建立的相關緩存依賴關系的數據對象的相關行為。如果修改依賴關系對應的數據對象發(fā)生變化時,SqlCacheDependency對象會自動移除存儲在緩存中的對應對象。當客戶端Web應用程序再次訪問請求該緩存對象時,如果該對象不在緩存中,SqlCacheDependency對象會向緩存中填充更新的最新版本,并保證具有最新的數據。
在操作系統(tǒng)安全方面,通常存在如下5個主要操作系統(tǒng)安全威脅:病毒和蠕蟲、邏輯炸彈、特洛伊木馬、天窗、隱蔽通道[3]。本文重點分析研究ASP.NET與SQL Server應用程序開發(fā)中SQL緩存中的隱蔽通道問題。
隨著計算機技術的迅速發(fā)展,人們對信息安全問題的認識逐漸深刻。通常對系統(tǒng)或應用程序進行的各種入侵攻擊多是通過分析操作系統(tǒng)和應用程序的弱點或缺陷來實現的。
在操作系統(tǒng)安全威脅中,隱蔽通道是指系統(tǒng)中不受安全策略控制的、違反安全策略的信息泄露路徑。按信息傳遞的方式和方法區(qū)分,可把隱蔽通道分為:隱蔽存儲通道和隱蔽定時通道。隱蔽存儲通道在系統(tǒng)中通過2個進程利用不受安全策略控制的存儲單元傳遞信息,2個進程中的前1個進程通過改變存儲單元的內容發(fā)送信息,后1個進程通過觀察存儲單元的變換來接收信息。隱蔽定時存儲通道在系統(tǒng)中通過2個進程利用其中1個不受安全策略控制的廣義存儲單元傳遞信息,其前1個進程通過改變廣義存儲單元的內容發(fā)送信息;后1個進程通過觀察廣義存儲單元的變換接收信息,并用實時時鐘這樣的坐標進行測量。廣義存儲單元只能在短時間內保留前1個進程發(fā)送的信息,后1個進程必須迅速地接收廣義存儲單元的信息,否則信息將消失,如圖1所示的隱蔽定時通道[3-4]。
圖1 發(fā)送者S與接收者R之間的隱蔽通道
隨著信息安全技術的不斷完善和發(fā)展,在20世紀80年代前期,隱蔽通道分析的對象大體上為特定的系統(tǒng)機制或者特定的系統(tǒng)功能(如多級目錄機制)。目前常用的隱蔽通道標識技術有[3-4]:
(1)句法信息流分析法(Syntactic Information flow Analysis):是一個比較系統(tǒng)的隱蔽通道分析方法,但此方法不宜分析類似操作系統(tǒng)內核的大規(guī)模程序,故在實際的系統(tǒng)分析中較少應用。但此方法對后來出現的SRM等方法奠定了相關概念基礎。
(2)無干擾分析法(Noninterference Analysis):此方法能把可信計算(TCB)視為一個抽象機。通常1個進程的1個請求操作會得到1個相應的響應,如1個有效響應、1個數據值、或者1個錯誤消息,因此該抽象機將把1個進程的請求作為輸入,把對它的響應作為1個輸出,任意給定時刻抽象機內部變量和數據結構的內容就是抽象機的當前狀態(tài)。分析系統(tǒng)的時候,源代碼或者更抽象一些的形式化/描述性規(guī)范都可以使用這些變量和數據結構。
(3)共享資源矩陣分析法SRM(Shared Resource Matrix):在該分析法中,首先要統(tǒng)計主體可以讀或寫的所有共享資源(系統(tǒng)變量),然后檢查每個共享資源,確定它是否可能被用來在各個主體之間隱蔽地址傳遞信息,要完成這一步需要仔細研究每個TCB原語的貌似。此外,由于兩個進程可能讀寫同一個共享資源的不同屬性,因此需要進一步精化,指出共享資源的每個屬性。
(4)語義信息流分析法(Information-flow Analysis with Semantic Component):此分析法是借鑒了 Denning信息流分析和Kemmerer共享資源矩陣法的優(yōu)點設計而成,并在安全Xenix項目中用這種方法進行隱蔽通道分析工作的。
(5)隱蔽流樹分析法 CFT(Covert Flow Tree Analysis)∶該分析法采用樹結構將信息從一個共享資源向另外一個共享資源的流動過程建模,實現對通過共享變量屬性發(fā)送、能被監(jiān)聽進程接收的通信系統(tǒng)化搜索,從而提供查找隱蔽通道場景的方法。
隱蔽通道的常用處理技術有消除法和寬帶限制法等[3]。
(1)消除法:是指消除隱蔽通道。消除隱蔽通道需要改變系統(tǒng)的設計和實現,改變通常包括:消除系統(tǒng)潛在的隱蔽通信參與者的共享資源和消除導致隱蔽通道的接口和機制。
(2)帶寬限制法:通過設法降低通道的最大或者平均帶寬,使之降低到一個事先預定的可以接受的帶寬程度的一種帶寬限制策略,以此實現處理隱蔽通道問題。限制帶寬的方法有:故意引入噪音,即用隨機分配算法分配諸如共享表、磁盤分區(qū)、PID等共享資源的索引或者引入額外的進程隨機修改隱蔽通道的變量;其次是故意引入延時。
在ASP.NET2.0與SQL Server相結合由數據庫驅動的Web網絡應用程序開發(fā)中,采用緩存技術可以提高從數據庫讀取數據的效率,能及時、準確、快速地為訪問客戶服務。但內存中緩存的數據可能會存儲時間較長,會出現數據信息不受安全策略控制的、違反安全策略的信息泄露路徑。因此,在重要的Web網絡應用程序開發(fā)中,要對SQL緩存中可能存在的隱蔽通道問題進行分析研究,確保由此引發(fā)的隱蔽通道數據信息安全問題得到有效解決。
由信息傳遞的方式和方法對隱蔽通道的分類可知,隱蔽存儲通道和隱蔽定時通道在SQL緩存中都可能存在。特別是隱蔽存儲通道在數據被存儲到內存后,會在系統(tǒng)中通過2個進程利用不受安全策略控制的存儲單元傳遞信息。2個進程中的前1個進程通過改變存儲單元的內容發(fā)送信息;后1個進程通過觀察存儲單元的變換來接收信息,以此對存儲在內存中的信息進行讀取操作。而SqlDataSource控件上設置的屬性只能將那些大量服務器資源獲取到的數據集存儲在內存中,提高客戶端快捷地獲取服務的效率,但不能保障數據信息的信息安全不被破壞或訪問。
使用ASP.NET2.0新增功能SQL緩存無效技術,利用SqlCacheDependency類,在SQL Server數據庫對象與應用程序緩存對象之間建立一種緩存對象,然后在SQL Server7.0/2000版本中,使用輪詢技術使緩存無效。同時,對緩存內容建立安全策略監(jiān)控機制,對其內容的訪問權限、安全策略、讀取存儲路徑等安全因素進行監(jiān)控分析,以此提高緩存中內容的數據信息安全和整個系統(tǒng)的安全[5-7]。SQL緩存中的隱蔽通道分析功能設計如圖2所示。
隱蔽通道系統(tǒng)安全分析技術應用在ASP.NET與SQL Server的Web應用程序開發(fā)中,在提高整個Web應用程序性能的同時,能有效保證SQL緩存數據信息的安全和用戶數據信息的安全,這在Web應用程序開發(fā)中具有重要的實際應用意義。
[1]賀偉,陳哲,龔濤,等.新一代 ASP.NET2.0網絡編程入門與實踐[M].北京∶清華大學出版社,2007∶263-296.
[2]楊云,王毅.ASP.NET2.0程序開發(fā)詳解[M].北京∶人民郵電出版社,2007∶83-163.
[3]陳頌,何良生,王建華,等.安全操作系統(tǒng)中隱蔽通道的研究[J].信息安全與通信保密,2006(11).
[4]卿斯?jié)h,劉文清,溫紅子.操作系統(tǒng)安全[M].北京∶清華大學出版社,2004∶4-196.
[5]趙玉偉,趙小雨,喬木.緩存技術在 B/S架構信息系統(tǒng)中的應用[J].計算機工程,2008(1).
圖2 SQL緩存中的隱蔽通道分析功能圖
[6]劉美華,古志民,曹元大,等.一個基于機群的可擴展的Web緩存服務器[J].計算機工程與應用,2003(7).
[7]錢小軍.Web文本挖掘技術研究及其實現[D].杭州:浙江大學,2002.