何保鋒 井榮枝
鄭州大學(xué)西亞斯國(guó)際學(xué)院計(jì)算機(jī)科學(xué)系 河南 451150
目前網(wǎng)絡(luò)安全領(lǐng)域面臨著嚴(yán)重的向題,一方面當(dāng)今社會(huì)對(duì)網(wǎng)絡(luò)的依賴性日益增加,另一方面網(wǎng)絡(luò)入侵和攻擊泄密事件發(fā)生的次數(shù)也急劇增長(zhǎng)。網(wǎng)絡(luò)中同時(shí)還存在著大量的網(wǎng)絡(luò)攻擊工具和攻擊文件等資源,這種情況使得近幾年的網(wǎng)絡(luò)攻擊頻率和密度顯著增長(zhǎng),給網(wǎng)絡(luò)安全帶來(lái)越來(lái)越多的安全隱患。
為了有效地保護(hù)我們的計(jì)算機(jī)及信息資源不受侵害,本文闡述了從操作系統(tǒng)的內(nèi)核層出發(fā),對(duì)文件訪問(wèn)與網(wǎng)絡(luò)訪問(wèn)智能地進(jìn)行了綜合的行為分析,高效且精確地找出各種潛在的危險(xiǎn)進(jìn)程并進(jìn)行攔截與阻斷,有效地防御網(wǎng)絡(luò)中的各種威脅,并且做出及時(shí)的響應(yīng),將那些危險(xiǎn)的連接和攻擊行為拒之門(mén)外。
安全防御從內(nèi)核層出發(fā),非法進(jìn)程所采用的繞過(guò)機(jī)制在內(nèi)核層都顯得無(wú)能為力,進(jìn)程的行為一覽無(wú)余,這樣能保證采集到的行為數(shù)據(jù)正確且無(wú)遺漏,結(jié)合從應(yīng)用層所搜集到的進(jìn)程的狀態(tài)信息,進(jìn)行綜合分析,能夠保證分析的結(jié)果足夠精確。
在基于文件過(guò)濾驅(qū)動(dòng)與網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng)的基礎(chǔ)上,進(jìn)行文件訪問(wèn)與網(wǎng)絡(luò)訪問(wèn)的數(shù)據(jù)搜集,并把搜集到的數(shù)據(jù)從內(nèi)核層上傳到應(yīng)用層。在應(yīng)用層進(jìn)行各類(lèi)內(nèi)核層搜集數(shù)據(jù)的再加工與預(yù)處理,初步判斷出操作系統(tǒng)當(dāng)前所有進(jìn)程的狀態(tài)、簽名可信度、主窗體是否隱藏等信息。在數(shù)據(jù)處理的基礎(chǔ)上,應(yīng)用各種定義的規(guī)則來(lái)進(jìn)行判別,能夠智能地剔除無(wú)關(guān)數(shù)據(jù),進(jìn)行可疑進(jìn)程的行為分析與阻斷,并把判別結(jié)果上報(bào)。
系統(tǒng)可以設(shè)計(jì)為配置管理模塊、緩存管理模塊、在線升級(jí)模塊、數(shù)據(jù)操作模塊、驅(qū)動(dòng)控制模塊、進(jìn)程狀態(tài)模塊、規(guī)則定義模塊和公共模塊等。配置管理模塊可以實(shí)現(xiàn)規(guī)則定義、更新設(shè)置、緩存設(shè)置、上報(bào)設(shè)置以及阻斷設(shè)置;緩存管理模塊管理文件訪問(wèn)數(shù)據(jù)緩存和上報(bào)數(shù)據(jù)緩存,用戶瀏覽監(jiān)控信息時(shí),首先從緩存管理模塊獲取最新信息,不用操作數(shù)據(jù)庫(kù),加快瀏覽速度;在線升級(jí)模塊實(shí)現(xiàn)文件下載、版本判斷、更新列表獲取、系統(tǒng)更新等功能;數(shù)據(jù)操作模塊完成數(shù)據(jù)庫(kù)的操作,上報(bào)數(shù)據(jù)和緩存數(shù)據(jù);驅(qū)動(dòng)控制模塊完成驅(qū)動(dòng)通訊,驅(qū)動(dòng)狀態(tài)控制,驅(qū)動(dòng)規(guī)則應(yīng)用等功能;進(jìn)程狀態(tài)模塊實(shí)現(xiàn)主窗口狀態(tài)判斷,隱藏性判斷,模塊簽名狀態(tài)判斷等功能;規(guī)則定義模塊用來(lái)定義進(jìn)程黑白名單,網(wǎng)絡(luò)黑白端口,特定文件類(lèi)型;規(guī)則分析模塊根據(jù)定義的規(guī)則及數(shù)據(jù)判斷當(dāng)前的網(wǎng)絡(luò)訪問(wèn)或者文件訪問(wèn)是否允許,如果不允許訪問(wèn)則由相應(yīng)的網(wǎng)絡(luò)過(guò)濾驅(qū)動(dòng)模塊和文件過(guò)濾驅(qū)動(dòng)模塊做禁止訪問(wèn)處理;公共模塊定義端口進(jìn)程映射表,設(shè)備名映射表,客戶端信息采集等。其業(yè)務(wù)邏輯結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)業(yè)務(wù)邏輯
數(shù)據(jù)采集的內(nèi)容是包括隱藏進(jìn)程在內(nèi)的系統(tǒng)所有進(jìn)程列表、文件訪問(wèn)記錄、網(wǎng)絡(luò)訪問(wèn)記錄、端口進(jìn)程映射表、進(jìn)程數(shù)字簽名信息、進(jìn)程創(chuàng)建以及銷(xiāo)毀等信息。
一個(gè)活動(dòng)的進(jìn)程必然有其訪問(wèn)行為,包括文件訪問(wèn)和網(wǎng)絡(luò)訪問(wèn)。如果一個(gè)惡意的進(jìn)程沒(méi)有訪問(wèn)行為,就不會(huì)產(chǎn)生破壞行為,可以忽略它。系統(tǒng)采用文件過(guò)濾驅(qū)動(dòng)攔截所有的文件訪問(wèn),采用NDIS中間層驅(qū)動(dòng)來(lái)截獲所有的網(wǎng)絡(luò)訪問(wèn),因此當(dāng)進(jìn)程有訪問(wèn)行為時(shí)就會(huì)被截獲。
規(guī)則定義包括訪問(wèn)網(wǎng)絡(luò)端口黑白名單定義、進(jìn)程黑白名單定義、特殊文件類(lèi)型定義等,黑白名單表示進(jìn)程是否允許創(chuàng)建,黑名單直接阻斷,白名單不做監(jiān)控。
當(dāng)系統(tǒng)初始化后,首先判斷網(wǎng)絡(luò)與服務(wù)器的連接狀態(tài),如果已連接則進(jìn)行認(rèn)證服務(wù)和更新服務(wù)判斷;如果未連接,則啟動(dòng)連接監(jiān)聽(tīng),將所有上報(bào)記錄暫存在XML文件中。當(dāng)連接認(rèn)證通過(guò)后進(jìn)行數(shù)據(jù)上報(bào),如果數(shù)據(jù)上報(bào)未通過(guò)則暫存在XML文件中。
判斷進(jìn)程是否安全的基本規(guī)則是:(1)判斷進(jìn)程相應(yīng)模塊是否有數(shù)字簽名;(2)判斷進(jìn)程是否有窗體;(3)判斷進(jìn)程是否是訪問(wèn)文件進(jìn)程。根據(jù)這些規(guī)則加入相應(yīng)的類(lèi)型如表1所示,其中類(lèi)型4和類(lèi)型5需要上報(bào)。
表1 進(jìn)程安全判斷規(guī)則
根據(jù)采集到的進(jìn)程行為數(shù)據(jù),應(yīng)用規(guī)則定義進(jìn)行數(shù)據(jù)分析,找出疑似以及可疑進(jìn)程,并上報(bào)其行為。進(jìn)程可信度分析有幾項(xiàng)指標(biāo):第一是判斷進(jìn)程有無(wú)主窗口;第二是判斷所加載模塊是否有合法的簽名;第三是判斷是否有文件訪問(wèn),且訪問(wèn)的文件類(lèi)型是否在特定文件類(lèi)型之列;第四是有網(wǎng)絡(luò)訪問(wèn)時(shí),判斷是否有特定文件的訪問(wèn)。根據(jù)所定義的規(guī)則,依據(jù)上面的幾項(xiàng)指標(biāo)來(lái)確定進(jìn)程的可信度。當(dāng)進(jìn)程無(wú)主窗口,且訪問(wèn)的文件類(lèi)型包含有特定類(lèi)型的文件,而且端口在規(guī)則定義之外,那么此進(jìn)程就為可疑進(jìn)程,根據(jù)所訪問(wèn)的文件,能準(zhǔn)確分析出它的行為。
數(shù)據(jù)分析算法為:①判斷訪問(wèn)網(wǎng)絡(luò)的進(jìn)程或者模塊的主進(jìn)程是否在規(guī)則中,如果不在則直接阻斷;②判斷訪問(wèn)文件的進(jìn)程是不是在規(guī)則定義中,如果不在并且文件有訪問(wèn)網(wǎng)絡(luò)的行為則直接阻斷;③判斷訪問(wèn)網(wǎng)絡(luò)的進(jìn)程或者模塊的主進(jìn)程是否在端口規(guī)則中,如果在而進(jìn)程或者主進(jìn)程不在進(jìn)程快照列表中則阻斷并上報(bào);④判斷訪問(wèn)網(wǎng)絡(luò)的端口,如果端口不在規(guī)則中,則直接阻斷并上報(bào);⑤判斷被訪問(wèn)的文件是特殊的文件,判斷其進(jìn)程或者主進(jìn)程是否在進(jìn)程快照中,如果不在則提醒并上報(bào);⑥如果進(jìn)程在進(jìn)程列表中,進(jìn)程訪問(wèn)文件也是合法的,訪問(wèn)網(wǎng)絡(luò)也是合法的,則記錄行為并上報(bào);⑦判斷進(jìn)程創(chuàng)建,判斷進(jìn)程是否在規(guī)則定義中,如果不在則進(jìn)行行為監(jiān)控;⑧進(jìn)程創(chuàng)建判斷其是否為隱藏進(jìn)程,如果是則阻斷并上報(bào),可以通過(guò) Create Toolhelp32Snapshot()函數(shù)、進(jìn)程環(huán)境塊(KPEB)和線程環(huán)境塊(KTEB)技術(shù),獲得進(jìn)程鏈表和線程鏈表內(nèi)容,檢測(cè)系統(tǒng)中存在的隱藏進(jìn)程;⑨判斷進(jìn)程創(chuàng)建模塊,通過(guò)內(nèi)核函數(shù)PsSet Create Process Notify Routine()和PsSet Create Thread Notify Routine(),檢測(cè)操作系統(tǒng)中進(jìn)程創(chuàng)建、遠(yuǎn)程線程注入、CMD調(diào)用等行為。
將數(shù)據(jù)分析的結(jié)果記錄下來(lái),調(diào)用上報(bào)接口,實(shí)時(shí)上報(bào)到指定的服務(wù)器或者緩存到本地嵌入式數(shù)據(jù)庫(kù)并在程序主界面進(jìn)行顯示。
這種通過(guò)內(nèi)核模式檢測(cè)文件訪問(wèn)與網(wǎng)絡(luò)訪問(wèn)的組合檢測(cè)機(jī)制不同于普通的防火墻技術(shù),可以有效地監(jiān)視文件信息的使用軌跡,控制非法程序?qū)ξ募畔⒌脑L問(wèn),提高了系統(tǒng)的安全性,是保證信息安全的有力工具。
[1]張明,陳性元等.基于防火墻鉤子的IPSec VPN 研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程.2009.
[2]汪利鴻.基于NDIS中間驅(qū)動(dòng)程序的ARP防火墻設(shè)計(jì)[J].農(nóng)業(yè)科技與信息.2008.
[3]符廣全,王海峰等.基于文件過(guò)濾驅(qū)動(dòng)的內(nèi)核病毒防火墻技術(shù)[J].計(jì)算機(jī)應(yīng)用與軟件.2006.
[4]吳玉,婁智,基于操作系統(tǒng)內(nèi)核的包過(guò)濾防火墻系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].湖南工程學(xué)院學(xué)報(bào).2006.