周 曦 (安徽行政學(xué)院計(jì)算機(jī)工程系,安徽合肥230031)
隨著Internet的迅速發(fā)展,網(wǎng)絡(luò)安全問題引起了人們的高度關(guān)注,防火墻技術(shù)成為目前應(yīng)用最為廣泛的一種網(wǎng)絡(luò)安全技術(shù)。狀態(tài)檢測技術(shù)的核心是在防火墻的底層為通信建立連接狀態(tài)信息,通過識(shí)別通信的狀態(tài),可以帶來更高的效率、更有力的訪問控制和更強(qiáng)的安全性。
當(dāng)前,個(gè)人計(jì)算機(jī)大都使用Windows系列的操作系統(tǒng),而W indow s下的個(gè)人防火墻多采用傳統(tǒng)的包過濾技術(shù),在安全性和效率方面都存在著不足[1]。因此,基于狀態(tài)檢測技術(shù)的個(gè)人防火墻成為研究重點(diǎn)。
狀態(tài)檢測機(jī)制通過上層協(xié)議 (TCP、UDP)的動(dòng)態(tài)連接,以有關(guān)聯(lián)的IP數(shù)據(jù)流的觀點(diǎn)來處理數(shù)據(jù)包:如果某IP包是屬于一個(gè)已經(jīng)建立的連接,那么就直接 “越過”協(xié)議棧中的規(guī)則檢測,提交主機(jī)處理;如果該IP包不屬于一個(gè)已經(jīng)建立的連接,那么轉(zhuǎn)入正常的規(guī)則檢測。
2 功能模塊
圖1 功能模塊
基于狀態(tài)檢測個(gè)人防火墻的各個(gè)功能模塊如圖1所示。
1)數(shù)據(jù)包截獲模塊 利用NDIS中間驅(qū)動(dòng)程序,截獲所有進(jìn)出主機(jī)的網(wǎng)絡(luò)數(shù)據(jù)包,并提取出有效數(shù)據(jù),供狀態(tài)解析模塊分析,根據(jù)分析結(jié)果決定如何對數(shù)據(jù)包的進(jìn)行處理。
2)數(shù)據(jù)包解析模塊 對進(jìn)出的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議分析,根據(jù)不同協(xié)議的協(xié)議類型,分別調(diào)用不同協(xié)議解析子程序?qū)?shù)據(jù)包的相關(guān)參數(shù) (如地址、端口等)進(jìn)行解析,將符合條件數(shù)據(jù)包的參數(shù)傳送給狀態(tài)檢測模塊。
3)狀態(tài)檢測模塊 添加、刪除狀態(tài)記錄,記錄回話的狀態(tài),狀態(tài)記錄時(shí)間溢出值T的更新,根據(jù)狀態(tài)參數(shù)判斷該數(shù)據(jù)包在狀態(tài)表中是否有相應(yīng)的狀態(tài)記錄,SYN(DOS)攻擊檢測和防御。
4)控管規(guī)則處理模塊 包過濾行為都是以過濾規(guī)則為標(biāo)準(zhǔn),根據(jù)用戶定義的控管規(guī)則 (存儲(chǔ)在控管規(guī)則文件中)與截獲的數(shù)據(jù)包信息匹配處理。
5)控制臺(tái)應(yīng)用模塊 它是主機(jī)狀態(tài)檢測防火墻系統(tǒng)與用戶交互的界面。用戶可以通過控制臺(tái)來啟停防火墻,對防火墻的控管規(guī)則表進(jìn)行諸如修改、增加、刪除等各項(xiàng)操作,查看分析日志記錄等等。
狀態(tài)檢測防火墻先通過數(shù)據(jù)包截獲模塊截獲進(jìn)出主機(jī)的所有數(shù)據(jù)包,再利用數(shù)據(jù)包解析模塊對數(shù)據(jù)包進(jìn)行協(xié)議分析,然后根據(jù)不同協(xié)議的類型,分別調(diào)用不同協(xié)議解析子程序?qū)?shù)據(jù)包的相關(guān)參數(shù) (如地址、端口等)進(jìn)行解析,最后將符合條件數(shù)據(jù)包的參數(shù)再傳送給狀態(tài)檢測模塊。
IP包的解析后提取出2種協(xié)議——TCP和UDP,由于這2種協(xié)議的服務(wù)和工作方式的不同,所以對不同協(xié)議的數(shù)據(jù)包需要采用不同策略方法來進(jìn)行過濾處理。下面分別討論TCP協(xié)議和UDP協(xié)議。
1)TCP數(shù)據(jù)包狀態(tài)檢測 TCP包狀態(tài)檢測流程如圖2所示。
圖2 TCP包狀態(tài)檢測流程
2)UDP數(shù)據(jù)包狀態(tài)檢測 UDP是一個(gè)簡單的傳輸層協(xié)議,它與TCP協(xié)議屬于同一層協(xié)議。UDP包是無連接的,所以不能直接進(jìn)行狀態(tài)檢測。可為 UDP包建立 “狀態(tài)信息”,將UDP包的源地址、目的地址、源端口、目的端口等信息取出,加上狀態(tài)記錄數(shù) (N)、連接狀態(tài)位 (S)等信息,作為UDP的狀態(tài)信息。這樣使用人為建立的狀態(tài)信息產(chǎn)生的一條連接,稱為 “虛連接”。在設(shè)置連接時(shí)間t和包序號(hào)M等配合進(jìn)行狀態(tài)檢測。
圖3 UDP包的狀態(tài)檢測
接收 UDP包后,先取出源地址、目的地址、源端口、目的端口等信息,查詢狀態(tài)表確定是否存在狀態(tài)信息,如存在,則放行;否則進(jìn)行數(shù)據(jù)包解析,保存該包的源地址、目的地址、源端口、目的端口等狀態(tài)信息,即建立 “虛連接”。當(dāng)UDP包返回時(shí),查詢狀態(tài)表中狀態(tài)屬性信息,符合允許返回,否則丟棄。其流程圖如圖3所示。
國內(nèi)在狀態(tài)檢測防火墻技術(shù)的研究與應(yīng)用方面與國外先進(jìn)水平相比具有較大的差距,而且大多數(shù)的研究都集中在開放源代碼的Linux操作系統(tǒng)平臺(tái)之上,由于Linux操作與系統(tǒng)的使用相對W indow s操作系統(tǒng)更為困難,基于該平臺(tái)的防火墻的使用與設(shè)置也更具有專業(yè)性,所以對一般用戶來說具有較大的難度[2]。因此開發(fā)基于W indow s操作系統(tǒng)的個(gè)人狀態(tài)檢測防火墻便具有更為現(xiàn)實(shí)的意義。
[1]李兵.計(jì)算機(jī)局域網(wǎng)的安全性研究 [J].計(jì)算機(jī)安全,2007,(11):53~58.
[2]汪貴生,夏陽.計(jì)算機(jī)安全漏洞分類研究 [J].計(jì)算機(jī)安全,2008,(11):68~72.