摘要:隨著科學(xué)技術(shù)與計(jì)算機(jī)網(wǎng)絡(luò)的不斷發(fā)展,病毒防火墻作為計(jì)算機(jī)系統(tǒng)防病毒的主要工具,發(fā)展前景越來(lái)越廣闊。本文就Windows NT內(nèi)核下的病毒防火墻原理進(jìn)行探討,以期病毒防火墻更好地發(fā)揮作用,保障計(jì)算機(jī)系統(tǒng)安全、穩(wěn)定地運(yùn)行。
關(guān)鍵詞:Windows NT內(nèi)核;病毒防火墻;原理
中圖分類(lèi)號(hào):TP393.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599 (2012) 15-0000-02
計(jì)算機(jī)目前已經(jīng)廣泛的應(yīng)用到社會(huì)各個(gè)領(lǐng)域,網(wǎng)絡(luò)使得千家萬(wàn)戶(hù)能更加便捷的交流,計(jì)算機(jī)和網(wǎng)絡(luò)的結(jié)合給人類(lèi)社會(huì)生活帶來(lái)便捷的同時(shí),也引發(fā)了一些不安全的因素。計(jì)算機(jī)網(wǎng)絡(luò)由于其特定的脆弱性,被很多有居心的不法分子不斷的專(zhuān)空子,給廣大網(wǎng)民帶來(lái)困擾的同時(shí)也造成了很多經(jīng)濟(jì)損失,因此反病毒技術(shù)勢(shì)在必行。目前,病毒防火墻作為計(jì)算機(jī)系統(tǒng)的安全防護(hù)工具,具有實(shí)時(shí)檢測(cè)病毒和清除系統(tǒng)、保護(hù)計(jì)算機(jī)免受病毒的侵害的優(yōu)點(diǎn),因此,其應(yīng)用前景越來(lái)越廣闊。
1 Windows NT 內(nèi)核
Windows NT內(nèi)核是微軟公司推出的一款面向網(wǎng)絡(luò)應(yīng)用的操作系統(tǒng),在和通信技術(shù)密切融合的基礎(chǔ)上提供打印等各種附加服務(wù),由于其非常周到的人性化服務(wù),得到了許多用戶(hù)的青睞,具有廣泛的市場(chǎng)。
Windows NT內(nèi)核為32位操作系統(tǒng),具有多重引導(dǎo)功能,并支持兼容;在線(xiàn)程操作方面也很有特色,具備多線(xiàn)程多任務(wù)的特點(diǎn)外,還具有搶先式的功能,為用戶(hù)提供了多種多樣地選擇;采用SMP技術(shù),并支持多處理器系統(tǒng);支持CISC(如Intel系統(tǒng))和RISC(如Power PC、R4400等)多種硬件平臺(tái);提供安全存取控制及容錯(cuò)能力,可與各種網(wǎng)絡(luò)操作系統(tǒng)協(xié)調(diào)合作,如:UNIX、Novel。Windows NT內(nèi)核的意義在于將用戶(hù)模式和內(nèi)核模式分離,這可使得系統(tǒng)更安全,穩(wěn)定。
實(shí)際上,所有的Windows NT內(nèi)核的組件來(lái)說(shuō)其本身都是DLL、PE格式的.EXE文件以及導(dǎo)入導(dǎo)出函數(shù)。因此,Windows NT內(nèi)核的主要組件可以分為以下一種:
第一種就是*Ntoskrnl.exe,其作為系統(tǒng)的核心,因而系統(tǒng)中所有涉及到的執(zhí)行函數(shù)全部集中在這里,與此同時(shí)這些函數(shù)又能夠起到調(diào)用其它組件的作用。對(duì)于這一部分的核心組件主要包括有進(jìn)線(xiàn)程創(chuàng)建、LPC、對(duì)象管理器、安全管理、文件系統(tǒng)、進(jìn)線(xiàn)程控制、異常處理、內(nèi)存管理器、VDM、輸入輸出和т.д.這些組件一般情況下均位于大于80100000h的地址上。
第二種就是作為硬件抽象層(Hardware Abstraction Layer)也就是處于硬件相關(guān)的模塊的*Hal.dll。該隔離層主要的任務(wù)就是將操作系統(tǒng)中與硬件相關(guān)的部分進(jìn)行隔離出來(lái),以此提高系統(tǒng)的可移植性。主要的模塊的任務(wù)就是負(fù)責(zé)實(shí)現(xiàn)程序控制中斷以及硬件輸入輸出等等非常底層的函數(shù)。一般情況下同樣是位于大于80100000h的地址之上的。
第三種就是*Ntdll.dll,其作為某些Win32 API的實(shí)現(xiàn)函數(shù),主要負(fù)責(zé)提供核心模式與用戶(hù)模式之間的接口。其一般情況下是位于用戶(hù)空間,即系統(tǒng)函數(shù)調(diào)用的過(guò)程就是從這里導(dǎo)出。
第四種就是*Kernel32.dll,其作為類(lèi)似于Win9x的核心的一項(xiàng)組件主要是負(fù)責(zé)實(shí)現(xiàn)一些函數(shù),并且其中有很多的函數(shù)封裝在ntdll.dll中。
還有就是作為進(jìn)程服務(wù)器子系統(tǒng)的*Csrss.exe,它是一個(gè)單獨(dú)的進(jìn)程的特征是其受到保護(hù)而避免受到其它進(jìn)程(位于其它進(jìn)程的地址空間中)的干擾與影響。但與此同時(shí),該組件對(duì)服務(wù)的請(qǐng)求通常情況下要借助于LPC產(chǎn)生。
最后一種就是作為驅(qū)動(dòng)程序的*Win32k.sys,其主要功能就是用來(lái)減少調(diào)用Csrss服務(wù)而造成的開(kāi)銷(xiāo)損失。在此程序中通過(guò)對(duì)于GDI和USER函數(shù)的使用,使其用系統(tǒng)調(diào)用而減少了對(duì)于LPC的使用,這在一定程度上有效地提高了Windows NT4.0和2K的圖形處理性能。
2 病毒防火墻
防火墻,確切的稱(chēng)之為“病毒實(shí)時(shí)檢測(cè)和清除系統(tǒng)”,是一種反病毒軟件的工作模式。通俗的來(lái)說(shuō)就是指在網(wǎng)絡(luò)上用以保護(hù)系統(tǒng)安全而廣泛使用的一個(gè)軟件,在系統(tǒng)和網(wǎng)絡(luò)上其他機(jī)器設(shè)備之間設(shè)置一道安全措施,能有效的攔截病毒,防止網(wǎng)絡(luò)惡意攻擊。
當(dāng)病毒防火墻運(yùn)行的時(shí)候,內(nèi)存中會(huì)自動(dòng)存儲(chǔ)著一些用以病毒特征監(jiān)控的程序,對(duì)系統(tǒng)進(jìn)行實(shí)時(shí)的監(jiān)控,隨時(shí)觀(guān)察并發(fā)現(xiàn)系統(tǒng)運(yùn)行過(guò)程中是否存在有病毒的跡象;如果監(jiān)控病毒程序的檢測(cè)結(jié)果表明文件中攜帶有病毒或者是具有攜帶病毒的痕跡,病毒防火墻就會(huì)自動(dòng)啟動(dòng)激活,對(duì)相關(guān)文件進(jìn)行對(duì)應(yīng)處理。防火墻在激活之后首要步驟就是阻止病毒的進(jìn)入過(guò)程,并且阻止攜毒文件的開(kāi)啟或運(yùn)行,緊接著對(duì)帶毒的文件進(jìn)行二次查殺,最終將病毒消滅。病毒防火的工作方式大致上就是如上述文字所描述的那樣,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行保護(hù)以此避免其遭受到病毒的侵襲而造成損失。因此,從這個(gè)角度來(lái)分析,病毒防火墻的實(shí)際作用并不再是對(duì)網(wǎng)絡(luò)環(huán)境中的病毒進(jìn)行簡(jiǎn)單的監(jiān)控,它會(huì)對(duì)計(jì)算機(jī)系統(tǒng)運(yùn)行過(guò)程中的所有涉及到的應(yīng)用軟件進(jìn)行濕濕的監(jiān)控,全方位、系統(tǒng)化的監(jiān)控將從真正意義上保障用戶(hù)系統(tǒng)的安全,使得用戶(hù)系統(tǒng)能夠長(zhǎng)期處于“無(wú)毒”環(huán)境之中。
就當(dāng)前計(jì)算機(jī)技術(shù)的日益發(fā)展,病毒的多樣性也是其發(fā)展進(jìn)程中的一項(xiàng)衍生產(chǎn)物。并且有許多的病毒的主要傳播途徑就是通過(guò)網(wǎng)絡(luò),這也就在一定程度上為涉及范疇不同的兩種防火墻產(chǎn)品(病毒防火墻和網(wǎng)絡(luò)防火墻)提供了交叉使用的可能性。除此之外,就目前而言有許多的網(wǎng)絡(luò)防火墻也增加了病毒防火墻所具有的病毒檢測(cè)和防御的功能。與此同時(shí),對(duì)于一些網(wǎng)絡(luò)入侵所特有的后門(mén)軟件(諸如木馬之類(lèi)的),也同樣被是作為“病毒”范疇,這也就導(dǎo)致其能夠輕易地被“病毒防火墻”監(jiān)控到并實(shí)時(shí)進(jìn)行清除。就目前的趨勢(shì)而言,病毒防火墻在網(wǎng)絡(luò)安全保護(hù)中占據(jù)著不可或缺的地位。
3 Windows NT內(nèi)核下的病毒防火墻原理
Windows NT內(nèi)核中存在著一種文件驅(qū)動(dòng)程序,這種程序的主要作用就是基于非易失性存儲(chǔ)介質(zhì)的基礎(chǔ)上對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)以此為用戶(hù)提供服務(wù)。通過(guò)對(duì)文件驅(qū)動(dòng)程序的開(kāi)發(fā)實(shí)現(xiàn)擴(kuò)展功能是NT中I/O管理器的一大特色,I/O管理器支持分層驅(qū)動(dòng)程序模型,病毒防火墻實(shí)現(xiàn)攔截文件的原理如下:通過(guò)開(kāi)發(fā)驅(qū)動(dòng)程序并插入到結(jié)構(gòu)層中,從而進(jìn)行文件攔截。這種驅(qū)動(dòng)文件亦稱(chēng)作過(guò)濾驅(qū)動(dòng)文件。
總的來(lái)說(shuō),病毒防火墻就是利用這種過(guò)濾驅(qū)動(dòng)文件來(lái)實(shí)現(xiàn)對(duì)計(jì)算機(jī)系統(tǒng)保護(hù)的。譬如,當(dāng)用戶(hù)程序利用Create File函數(shù)對(duì)已有文件夾進(jìn)行打開(kāi)或者建立一個(gè)新文件時(shí),病毒防火墻能夠在運(yùn)行的進(jìn)程中對(duì)Create File的請(qǐng)求包(IRP)進(jìn)行有效的截獲操作,從而對(duì)文件包進(jìn)行檢測(cè)查看其中是否攜帶有病毒,以此為用戶(hù)安全的對(duì)文件進(jìn)行使用提供了有效的保障。過(guò)濾驅(qū)動(dòng)程序的工作流程如下:首先對(duì)文件的類(lèi)型進(jìn)行檢查,從而判斷該文件是否屬于攜帶病毒類(lèi)型的文件,對(duì)于那些存在病毒概率較小的文件,會(huì)進(jìn)一步傳遞到文件驅(qū)動(dòng)程序。其次,用戶(hù)在應(yīng)用程序的運(yùn)行進(jìn)程中,在內(nèi)核的過(guò)濾驅(qū)動(dòng)程序中需要實(shí)時(shí)的通訊派遣反饋。在過(guò)程中,如果IRP返回了“文件打開(kāi)產(chǎn)生錯(cuò)誤”的指令,為了避免檢測(cè)中心做了不必要的工作,病毒防火墻便會(huì)選擇只把結(jié)果返回給I/O 管理器;如果返回指令表明該文件已被成功地打開(kāi),文件系統(tǒng)中的過(guò)濾驅(qū)動(dòng)程序會(huì)發(fā)送一個(gè)(或多個(gè))Read File的IRP給文件系統(tǒng)驅(qū)動(dòng)程序,從而使病毒防火墻對(duì)文件進(jìn)行放行,將文件的內(nèi)容完整的傳遞給客戶(hù)。病毒檢測(cè)器需要實(shí)時(shí)注意IRP的工作狀態(tài),只有當(dāng)IRP完成任務(wù)后,病毒檢測(cè)器才能發(fā)揮功效。作為檢測(cè)病毒的文件過(guò)濾驅(qū)動(dòng)程序,還需要維護(hù)應(yīng)用程序?qū)觽鱽?lái)的病毒特征代碼庫(kù)。因?yàn)椴《咎卣鞔a庫(kù),不僅可以幫助反病毒引擎提高檢測(cè)準(zhǔn)確性,還能夠提高檢測(cè)的效率。
病毒防火墻軟件主要由應(yīng)用程序和驅(qū)動(dòng)程序兩部分組成。應(yīng)用程序主要是通過(guò)WINDOWS平臺(tái)中后臺(tái)運(yùn)行并且無(wú)界面的服務(wù)程序來(lái)實(shí)現(xiàn)的,類(lèi)似于Unix/Linux 下的守護(hù)進(jìn)程,其主要任務(wù)是對(duì)文件驅(qū)動(dòng)程序進(jìn)行安裝與卸載;驅(qū)動(dòng)程序的主要功能檢測(cè)文件的安全狀態(tài),就是檢測(cè)文件中是否存在病毒。驅(qū)動(dòng)程序主要是靠服務(wù)程序用NET START與NET STOP系統(tǒng)命令啟動(dòng)與停止來(lái)實(shí)現(xiàn)快速加載功能的。
4 結(jié)論
病毒防火墻作為不同網(wǎng)絡(luò)之間的通道,通過(guò)檢測(cè)、限制流動(dòng)的文件及數(shù)據(jù),可以有效屏蔽存在安全隱患的信息,有選擇地接收外來(lái)訪(fǎng)問(wèn),為用戶(hù)與外網(wǎng)建立了一道天然的屏障。本文對(duì)Windows NT內(nèi)核下的病毒防火墻原理進(jìn)行研究,首先分別介紹了Windows NT內(nèi)核與病毒防火墻的概念及意義,然后著重闡述了Windows NT內(nèi)核下的病毒防火墻原理,以期進(jìn)一步開(kāi)發(fā)與拓展Windows NT內(nèi)核下病毒防火墻的功能,使其更好地為計(jì)算機(jī)用戶(hù)服務(wù)。
參考文獻(xiàn)
[1]夏洪雷,王海峰. Windows NT 內(nèi)核下病毒防火墻的原理分析與實(shí)現(xiàn)[J].福建電腦,2009(06)
[2] Chris Cant. Windows WDM 設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)指南[J].北京:機(jī)械工業(yè)出版社,2010(05)
[3]趙戰(zhàn)生. Internet防火墻[J].中國(guó)計(jì)算機(jī)用戶(hù),2008(16)