何保鋒 井榮枝
鄭州大學西亞斯國際學院計算機科學系 河南 451150
目前網絡安全領域面臨著嚴重的向題,一方面當今社會對網絡的依賴性日益增加,另一方面網絡入侵和攻擊泄密事件發生的次數也急劇增長。網絡中同時還存在著大量的網絡攻擊工具和攻擊文件等資源,這種情況使得近幾年的網絡攻擊頻率和密度顯著增長,給網絡安全帶來越來越多的安全隱患。
為了有效地保護我們的計算機及信息資源不受侵害,本文闡述了從操作系統的內核層出發,對文件訪問與網絡訪問智能地進行了綜合的行為分析,高效且精確地找出各種潛在的危險進程并進行攔截與阻斷,有效地防御網絡中的各種威脅,并且做出及時的響應,將那些危險的連接和攻擊行為拒之門外。
安全防御從內核層出發,非法進程所采用的繞過機制在內核層都顯得無能為力,進程的行為一覽無余,這樣能保證采集到的行為數據正確且無遺漏,結合從應用層所搜集到的進程的狀態信息,進行綜合分析,能夠保證分析的結果足夠精確。
在基于文件過濾驅動與網絡過濾驅動的基礎上,進行文件訪問與網絡訪問的數據搜集,并把搜集到的數據從內核層上傳到應用層。在應用層進行各類內核層搜集數據的再加工與預處理,初步判斷出操作系統當前所有進程的狀態、簽名可信度、主窗體是否隱藏等信息。在數據處理的基礎上,應用各種定義的規則來進行判別,能夠智能地剔除無關數據,進行可疑進程的行為分析與阻斷,并把判別結果上報。
系統可以設計為配置管理模塊、緩存管理模塊、在線升級模塊、數據操作模塊、驅動控制模塊、進程狀態模塊、規則定義模塊和公共模塊等。配置管理模塊可以實現規則定義、更新設置、緩存設置、上報設置以及阻斷設置;緩存管理模塊管理文件訪問數據緩存和上報數據緩存,用戶瀏覽監控信息時,首先從緩存管理模塊獲取最新信息,不用操作數據庫,加快瀏覽速度;在線升級模塊實現文件下載、版本判斷、更新列表獲取、系統更新等功能;數據操作模塊完成數據庫的操作,上報數據和緩存數據;驅動控制模塊完成驅動通訊,驅動狀態控制,驅動規則應用等功能;進程狀態模塊實現主窗口狀態判斷,隱藏性判斷,模塊簽名狀態判斷等功能;規則定義模塊用來定義進程黑白名單,網絡黑白端口,特定文件類型;規則分析模塊根據定義的規則及數據判斷當前的網絡訪問或者文件訪問是否允許,如果不允許訪問則由相應的網絡過濾驅動模塊和文件過濾驅動模塊做禁止訪問處理;公共模塊定義端口進程映射表,設備名映射表,客戶端信息采集等。其業務邏輯結構如圖1所示。

圖1 系統業務邏輯
數據采集的內容是包括隱藏進程在內的系統所有進程列表、文件訪問記錄、網絡訪問記錄、端口進程映射表、進程數字簽名信息、進程創建以及銷毀等信息。
一個活動的進程必然有其訪問行為,包括文件訪問和網絡訪問。如果一個惡意的進程沒有訪問行為,就不會產生破壞行為,可以忽略它。系統采用文件過濾驅動攔截所有的文件訪問,采用NDIS中間層驅動來截獲所有的網絡訪問,因此當進程有訪問行為時就會被截獲。
規則定義包括訪問網絡端口黑白名單定義、進程黑白名單定義、特殊文件類型定義等,黑白名單表示進程是否允許創建,黑名單直接阻斷,白名單不做監控。
當系統初始化后,首先判斷網絡與服務器的連接狀態,如果已連接則進行認證服務和更新服務判斷;如果未連接,則啟動連接監聽,將所有上報記錄暫存在XML文件中。當連接認證通過后進行數據上報,如果數據上報未通過則暫存在XML文件中。
判斷進程是否安全的基本規則是:(1)判斷進程相應模塊是否有數字簽名;(2)判斷進程是否有窗體;(3)判斷進程是否是訪問文件進程。根據這些規則加入相應的類型如表1所示,其中類型4和類型5需要上報。

表1 進程安全判斷規則
根據采集到的進程行為數據,應用規則定義進行數據分析,找出疑似以及可疑進程,并上報其行為。進程可信度分析有幾項指標:第一是判斷進程有無主窗口;第二是判斷所加載模塊是否有合法的簽名;第三是判斷是否有文件訪問,且訪問的文件類型是否在特定文件類型之列;第四是有網絡訪問時,判斷是否有特定文件的訪問。根據所定義的規則,依據上面的幾項指標來確定進程的可信度。當進程無主窗口,且訪問的文件類型包含有特定類型的文件,而且端口在規則定義之外,那么此進程就為可疑進程,根據所訪問的文件,能準確分析出它的行為。
數據分析算法為:①判斷訪問網絡的進程或者模塊的主進程是否在規則中,如果不在則直接阻斷;②判斷訪問文件的進程是不是在規則定義中,如果不在并且文件有訪問網絡的行為則直接阻斷;③判斷訪問網絡的進程或者模塊的主進程是否在端口規則中,如果在而進程或者主進程不在進程快照列表中則阻斷并上報;④判斷訪問網絡的端口,如果端口不在規則中,則直接阻斷并上報;⑤判斷被訪問的文件是特殊的文件,判斷其進程或者主進程是否在進程快照中,如果不在則提醒并上報;⑥如果進程在進程列表中,進程訪問文件也是合法的,訪問網絡也是合法的,則記錄行為并上報;⑦判斷進程創建,判斷進程是否在規則定義中,如果不在則進行行為監控;⑧進程創建判斷其是否為隱藏進程,如果是則阻斷并上報,可以通過 Create Toolhelp32Snapshot()函數、進程環境塊(KPEB)和線程環境塊(KTEB)技術,獲得進程鏈表和線程鏈表內容,檢測系統中存在的隱藏進程;⑨判斷進程創建模塊,通過內核函數PsSet Create Process Notify Routine()和PsSet Create Thread Notify Routine(),檢測操作系統中進程創建、遠程線程注入、CMD調用等行為。
將數據分析的結果記錄下來,調用上報接口,實時上報到指定的服務器或者緩存到本地嵌入式數據庫并在程序主界面進行顯示。
這種通過內核模式檢測文件訪問與網絡訪問的組合檢測機制不同于普通的防火墻技術,可以有效地監視文件信息的使用軌跡,控制非法程序對文件信息的訪問,提高了系統的安全性,是保證信息安全的有力工具。
[1]張明,陳性元等.基于防火墻鉤子的IPSec VPN 研究與實現[J].計算機工程.2009.
[2]汪利鴻.基于NDIS中間驅動程序的ARP防火墻設計[J].農業科技與信息.2008.
[3]符廣全,王海峰等.基于文件過濾驅動的內核病毒防火墻技術[J].計算機應用與軟件.2006.
[4]吳玉,婁智,基于操作系統內核的包過濾防火墻系統的設計與實現[J].湖南工程學院學報.2006.