尚 瑛,張凱然
(1.中交第二公路工程局有限公司信息技術處,陜西西安 710065;2.西安電子科技大學電子工程學院,陜西西安 710071)
在網絡給人們生活帶來方便的同時,其安全也成為困擾人們的一個難題。病毒、黑客入侵等,給社會造成了巨大的經濟損失。此外,機密文件在生產的過程中經過多個環節,也存在潛在的威脅、干擾或泄漏。因此保障信息存儲的安全性成為目前研究的熱點。
對于計算機重要信息數據的保護,目前已有學者提出了3層保護體系[1-2]。多家公司也基于操作系統內核設計了軟、硬件結合的信息安全產品,具有一定的優勢,但價格昂貴。對于某些關系國計民生的數據生產商而言,使用這些產品存在弊端。據權威咨詢公司調查指出,超過60%的被調查公司,報告信息的非授權使用和篡改的非法行為時有發生。70%的公司認為,PC計算機信息丟失和被竊取,是造成公司經濟損失的主要原因。由此,有必要研制一套利于第三方用戶靈活使用的一套體系,實現在內部網絡中對機密文件進行有效實時監控。目前常用的文件監控方法,是基于虛擬設備掛接方式的監控[3],這需要在Windows系統內核層編程,實現難度較大,且多個設備掛接,容易造成系統資源浪費。
文中針對數據文件,基于Windows API設計并實現了一種較為通用的文件監控系統,首先針對具體的數據文件類別,引入數字水印技術,確保數據文件的版權或完整性;此外對打開、查詢、讀/寫、刪除、重命名文件等操作進行監控和記錄,防止未授權用戶非法拷貝盜取文件信息。
系統設計目標:所有用戶均需進行嚴格的身份驗證,系統管理員可根據工作任務不同動態設置終端用戶的權限和資源,任何非法用戶或未授權用戶對涉密文件的訪問、外接設備的訪問被禁止,系統對用戶的所有操作均記錄,并對日志進行有效管理。要求該系統的設計模式具有通用性、實用性、易于管理、可維護性好。
通過分析現有技術,設計的數據文件安全監控系統對應的軟件模塊為:系統管理員模塊、數據加密模塊、訪問控制模塊、端口控制模塊、U盤監控模塊、審計日志模塊和系統保護模塊,具體功能如下:
(1)數據加密,信息置亂、數字水印是新興的信息安全技術。信息置亂就是利用一些變換,將數據以其他方式存儲,具有一定的加密性;數字水印是在載體數據中嵌入版權信息來表示該數據的版權,或嵌入其他一些信息以確保原文件數據仍保持完整,沒有被篡改。現有的文件數據可分成圖像數據、矢量圖形數據、文本數據和文檔數據。針對以上數據的魯棒水印技術或脆弱、半脆弱水印技術已比較成熟。在保證文件可用的前提下,完全可以引入以上技術來實現數據文件的加密,這樣即使文件泄漏,也可保證數據不可直接被竊取者利用,在一定程度上降低損失;而數字水印可以協助追蹤信息泄漏的源頭。
(2)身份認證,被監控設備用戶的身份驗證。
(3)訪問控制,當用戶訪問涉密文件時,實時獲取其操作信息,并將其傳輸給用戶層,并確認其是否有此權限,并作出相應的響應。
(4)外接存儲設備及端口監控,對計算機端口和外接存儲設備如光盤、軟盤、USB設備等的使用情況進行監控,防止機密信息通過外接存儲設備發生泄漏和流失。
以軍用地理信息數據為例,部分地理信息產品以柵格圖像的形式存儲。它可能受到以下攻擊:增大或減小圖像的亮度和對比度;為看清圖像細節,通常先將圖像放大,再縮小到原來尺寸;計算機軟、硬件的限制,使海量地理信息圖像不可能一次完成,必須進行圖像拼接或裁剪。由于地理信息數據具有一定的地理精度和明確的屬性特征,一般不進行壓縮、加噪、縮小和濾波等操作,會損失圖像信息,使地理信息喪失使用價值。為對數據進行加密,首先采用文獻[4]算法嵌入水印,然后進行存儲。
文件訪問控制模塊是監控系統中的核心模塊,其保護涉密文件不被隨意修改,阻止涉密文件被未經授權的拷貝,并實時監控對涉密文件的其他操作。
Windows操作系統中,文件系統的主要功能是由文件系統驅動程序(File System Driver,FSD)和存儲設備驅動程序兩部分完成。其中,FSD負責文件管理,應用程序接口通過FSD來創建和存取文件。文件系統按不同的處理功能進行了層次劃分,其基本結構如圖1所示。

圖1 基于NT核心的文件系統結構
這種層次結構,為程序員開發文件系統的特性化功能提供了豐富的接口,既可以在FSD層采用文件系統驅動過濾的方式來開發文件監控系統,又可以在應用程序接口層利用系統提供的Win32 API開發存儲監控系統[5]。
要完成存儲數據的監控,需要對涉密文件的操作進行攔截,通常采用的方法有:掛鉤函數、攔截系統調用和加載文件系統過濾驅動。掛鉤函數方式通過在用戶模式下掛鉤與文件操作相關的API函數來達到監視文件操作的目的;而通過修改系統調用表中提供的接口函數的調用入口,攔截文件操作,需要過濾大量無關信息,造成不必要的系統開銷;加載文件系統過濾驅動相對于攔截系統調用方式則更底層,實現不易。基于上述分析,直接利用系統API相關接口實現用戶層操作。
該途徑利用系統提供的Windows API監視文件及文件夾的改變,針對文件信息狀態的變化來執行特定的操作,實現監控存儲數據的目的。通過指定被監控文件的后綴,該后綴類型的文件的任何操作都將被監控程序監視和記錄,其中非法的操作會被立即禁止。對于指定后綴名的文件,可監視的操作有:新建、刪除、修改后綴、拷貝至移動設備等。
當新建、刪除文件或文件夾,修改文件名稱或后綴時,通過系統提供類CDirectoryChange-Watcher和CDirectoryChangeHandler中的API函數,就能得到有關文件狀態改變的系統消息,程序開發人員就可依據需求,為系統消息加入相應的響應處理,實現文件操作的監控。其中,CDirectoryChangeWatcher通過創建一個線程,來監視文件或文件夾,并等待文件或文件夾的改變進而捕獲消息,類CDirectoryChangeWatcher的一個對象可同時監視多個文件或文件夾,并能根據需要增加或刪減文件夾。當接收到文件或文件夾改變的消息時,類 CDirectoryChange-Watcher利用CDirectoryChangeHandler類把相關消息發送給應用程序。程序開發人員從CDirectoryChangeHandler繼承一個子類,處理文件或文件夾改變的消息。
通過上述兩個Windows類API函數進行重載,當用戶在本機或者移動存儲設備上新建、刪除、修改或拷貝涉密件時,安全監控系統對具有特殊文件后綴名的涉密文件進行監控,并控制文件進出端口和U盤等移動介質,保護了文件的安全性和隱密性。
注冊表由微軟公司引入,其特點有:(1)允許對硬件、系統參數、設備驅動程序等進行跟蹤配置。(2)注冊表中登錄的硬件部分數據支持高版本Windows的即插即用特性。(3)通過注冊表可以檢查系統的配置和設置,注冊表的這些特征為U盤的合法性認證奠定了基礎。
筆者根據U盤的惟一性標志對U盤進行識別和分類,達到身份驗證的目的。這需要從計算機硬件信息中提取U盤序列號和盤符,并根據序列號的惟一性判斷U盤的合法性。U盤序列號的獲取步驟如下:首先,根據U盤的系統注冊記錄讀取U盤的相關信息;然后,逐字節分析U盤信息,提取U盤的序列號和盤符;最后,將提取的U盤序列號與監控端允許的合法序列號集合進行比對,實現U盤認證。
U盤如果認證合法,則對U盤進行實時監控;否則強行退出,拒絕對該U盤的任何訪問。對于合法U盤,若用戶具有涉密文件的拷貝權限,則監控系統允許對涉密文件進行拷貝,同時監控系統會實時記錄對U盤的一切操作信息,并寫進日志記錄文件,以便事后追查,有效保障涉密文件的安全性。
對Windows操作系統中數據文件的安全監控進行了研究,設計并實現了一種基于Win32API的文件監控系統。通過數據加密、用戶權限設定、U盤認證、端口控制等技術的利用,在操作系統的應用層實現了用戶對文件的創建、刪除、拷貝、重命名等操作的監控和處理,有效防止了涉密文件數據非法訪問等問題。
[1] 王雷,莊毅,潘龍平.基于強制訪問控制的文件安全監控系統的設計與實現[J].計算機應用,2006,26(12):161-164.
[2] 李慧,孫波.網絡監控技術的研究與實現[J].計算機工程與設計,2004(8):1302-1304.
[3] 李凡,劉學照,盧安,等.WindowsNT內核下文件系統過濾驅動程序開發[J].華中科技大學學報:自然科學版,2003(1):28-30.
[4] 朱靜靜,曾平,謝琨.針對柵格地圖的快速魯棒盲水印算法[J].計算機工程,2008,34(1):167-169.
[5] 求是科技.Windows API程序設計參考大全[M].北京:人民郵電出版社,2006.