[摘要] 本文論述了內部網文件監控審計系統的設計和實現。在系統監控端上,利用木馬的“隱蔽性”,實現了在Win2002系統中的進程隱藏和通信隱藏。在文件監控上,論述了內部網文件監控審計系統對數據進行全方位安全保護機制。
[關鍵詞] 文件監控 木馬 網絡安全 P2DR模型
隨著網絡技術的發展,在關注外部網安全的同時,必須要加倍地重視內部網的安全控制,內部網安全已成為整體網絡安全的基石和出發點,而要想控制內網則首選文件操作監控技術,本文通過分析這兩種常用技術的利蔽,最后實現本系統對內網的安全管理的實現。
一、系統設計
內部網文件監控審計系統(NFAMS)是基于Windows平臺的內部網安全行為監控審計系統,采用集中式管理、分布式控制結構對網絡用戶操作行為監控,并提供事后安全審計功能。
代理登錄控制臺:連接認證控制臺模塊周期地向控制臺建立連接請求,并認證控制臺身份,檢測到控制臺已經啟動,則進入代理生存心博模塊;處理控制臺:代理監聽TCP網絡端口,等待控制臺的連接請求,并根據操作碼,進入不同的命令處理模塊。
1.系統安全性設計
控制臺采用須獲得對控制臺軟件所在的主機的使用權和能夠通過控制臺軟件的身份認證的雙重的安全防護方法,來保證控制臺的安全管理,另外控制臺還提供了災難恢復技術;代理進程是隨著操作系統的啟動代理進程進行正常的監控狀態。同時,具有防止代理進程被意外地殺死或者終止。
2.系統實現的相關技術
鑒于本系統監控端的需要,需要采用以下一些技術。
程序隱藏,分偽隱藏和真隱藏。偽隱藏,在Win9x的系統中把木馬服務器端的程序注冊為一個服務即可,在Win NT、2000中可使用API的攔截技術;真隱藏,就是這個程序完全的溶進了系統的內核。把它作為一個線程。
端口隱藏,有端口重用、反向連接和潛伏方式進行通信等方法。在本系統中,采用了潛伏的方式,利用 IP 協議簇中的自定義協議來進行網絡傳輸。
攔截系統調用技術,在Windows系統中,修改系統調用表實現指向本系統的監控代碼。
二、系統實現
系統要防止代理進程被意外地殺死或者終止,就要替換系統API調用的方式,使之調用自己定義的API函數,進行安全性的檢查。因此要將操作系統的所有用戶態進程相應的API進行替換,實現對操作系統的行為監控。Explorer.exe進程是所有的用戶態進程的父進程,在操作系統進入用戶桌面環境的時候,Explorer.exe被創建,所有的用戶態的進程都是由Explorer.exe進程創建的。將Explorer.exe的相關API替換以后,其中替換了進程創建的相關API,包括Kernel32.dll中的CreateProcessA、CreateProcessW、WinExec和Advapi32.dll中的CreateProcessAsUserA、CreateProcessAsUserW、CreateProcessWithLogonW,所以當Explorer.exe創建新進程,能夠得到這種消息,然后再將新進程的相關API進程替換,那么也就能夠監控新進程的行為。
系統的API是按照動態鏈接庫的方式存放的。如同系統API的存儲方式,將自己定義的API也存儲在動態鏈接庫DLL中,將DLL插入到要監控的進程中。動態鏈接庫DLL有一個初始化的過程,在此過程中,進行系統API的替換,從而實現對相應進程的行為監控。
遠程線程插入DLL,Windows的大多數函數允許進程只對自己進行操作,它能夠防止一個進程破壞另一個進程的運作。但是,有些最初是為調試程序和其他工具設計的函數卻允許一個進程對另一個進程進行操作。即一個稱為CreateRemoteThread的函數,使我們能夠非常容易地在另一個進程中創建線程。
這個DLL插入方法基本上要求目標進程中的線程調用LoadLibrary函數來夾帶必要的DLL。由于除了自己進程中的線程外,無法方便地控制其它進程中的線程,因此這種解決方案要求在目標進程中創建一個能夠控制它執行什么代碼新線程。
三、行為監控效率
由于操作系統會對需要監控的系統API進行大量的調用,為提高系統的響應速度。采用了兩個措施來提供系統的效率:安全策略文件的訪問速度和規則的匹配速度。
在策略檢查的時候,如果采用正常的文件讀寫方法,需要頻繁的打開關閉文件,頻繁的讀寫文件,導致系統的效率低。本系統采用內存文件映射方法,即使應用程序通過內存指針對磁盤上的文件進行訪問,其過程就如同對加載了文件的內存的訪問。在使用內存映射文件進行I/O處理時,系統對數據的傳輸按頁面來進行。至于內部的所有內存頁面則是由虛擬內存管理器來負責管理,由于虛擬內存管理器是以一種統一的方法來處理所有磁盤I/O的,因此這種優化使其有能力以足夠快的速度來處理內存操作。
規則的匹配速度。安全策略規則不是無序的排列,而是按照監控對象所在的磁盤驅動器進行分類,按照字母順序有序的排列。在安全策略檢查的時候,已知的是監控對象的名字,即文件或者文件夾的名字,根據這個名字,可以獲得監控對象所在的磁盤驅動器??梢酝ㄟ^磁盤驅動器,根據策略文件相應的位置索引,直接定位到該監控對象所適用的策略范圍,大大降低了需要進行規則匹配檢查的數量。
參考文獻:
[1]黃良斌:透視木馬程序開發技術[J].浙江交通職業技術學院學報,2004,5(4):39
[2]何會民胡躍湘臧衛華:Linux2.6系統調用鉤子的原理分析與實現應用[J].湖南工程學院學報,2007(3):54~57
[3]紀勇李祥和:Windows系統下木馬程序的設計與實現[J],計算機安全,2003(23):66~67