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