❶ 防火牆技術有哪些
從實現原理上分,防火牆的技術包括四大類:網路級防火牆、應用級網關、電路級網關和規則檢查防火牆。
1、網路級防火牆
一般是基於源地址和目的地址、應用、協議以及每個IP包的埠來作出通過與否的判斷。防火牆檢查每一條規則直至發現包中的信息與某規則相符。
如果沒有一條規則能符合,防火牆就會使用默認規則,一般情況下,默認規則就是要求防火牆丟棄該包。通過定義基於TCP或UDP數據包的埠號,防火牆能夠判斷是否允許建立特定的連接,如Telnet、FTP連接。
2、應用級網關
應用級網關能夠檢查進出的數據包,通過網關復制傳遞數據,防止在受信任伺服器和客戶機與不受信任的主機間直接建立聯系。應用級網關能夠理解應用層上的協議,能夠做復雜一些的訪問控制,並做精細的注冊和稽核。
它針對特別的網路應用服務協議即數據過濾協議,並且能夠對數據包分析並形成相關的報告。應用網關對某些易於登錄和控制所有輸出輸入的通信的環境給予嚴格的控制,以防有價值的程序和數據被竊取。
3、電路級網關
電路級網關用來監控受信任的客戶或伺服器與不受信任的主機間的TCP握手信息,這樣來決定該會話是否合法,電路級網關是在OSI模型中會話層上來過濾數據包,這樣比包過濾防火牆要高二層。
電路級網關代理伺服器功能,代理伺服器是設置在Internet防火牆網關的專用應用級代碼。這種代理服務准許網管員允許或拒絕特定的應用程序或一個應用的特定功能。包過濾技術和應用網關是通過特定的邏輯判斷來決定是否允許特定的數據包通過,成功地實現了防火牆內外計算機系統的隔離。
4、規則檢查防火牆
該防火牆結合了包過濾防火牆、電路級網關和應用級網關的特點。能夠在OSI網路層上通過IP地址和埠號,過濾進出的數據包,也能夠檢查SYN和ACK標記和序列數字是否邏輯有序。當然它也象應用級網關一樣,可以在OSI應用層上檢查數據包的內容,查看這些內容是否能符合企業網路的安全規則。
規則檢查防火牆雖然集成前三者的特點,但是不同於一個應用級網關的是,它並不打破客戶機/伺服器模式來分析應用層的數據,它允許受信任的客戶機和不受信任的主機建立直接連接。行並規則檢查防火牆培帶前不依靠與應用層有關的代理,而是依靠某種演算法來識別進出的應用層數據。
(1)防火牆資源申請需要提供哪些數據擴展閱讀
應用防火牆技術考慮以下方面:
1、防火牆是不能防病毒的。
2、防火牆技術的另外一個弱點在於數據在防火牆之間的更新是一個難題,如果延遲太大將無法支持實時服務請求。
防火牆採用濾波技術,濾波配清通常使網路的性能降低50%以上,如果為了改善網路性能而購置高速路由器,又會大大提高經濟預算。
防火牆是企業網安全問題的常用方案,即把公共數據和服務置於防火牆外,使其對防火牆內部資源的訪問受到限制。作為一種網路安全技術,防火牆具有簡單實用的特點,並且透明度高,可以在不修改原有網路應用系統的情況下達到一定的安全要求。
❷ 介紹防火牆如何處理數據應該把握哪些點
測試防火牆性能
不要只通過防火牆在默認狀態下的性能表現來判斷其優劣,因為現在很多數據託管的應用程序與服務都是基於SaaS和雲計算的。諸如智能手機、平板等移動設備而產生的數據包,不僅要大流量管道才能滿足網路的訪問需要,而且必須在網路邊緣給予審核。
對於網路安全設備來說,在處理上述不可預知的容量與流量並發的時候,會產生大量的網路延遲,並降低關鍵應用和服務的性能,今天的防火牆設備更是需要處理日益增多的數據流量。因此,這就與默認狀態下的性能表現會有很大拿讓差別,也有必要為了確保制定的安全策略與防火牆進行較佳適殲清配,而不定期進行防火牆的性能測試。
2、檢查加密流量
確保防火牆可以檢查所有流量,包括加密的流量。雖然很多網路流量都是通過SSL(安全套接層,SecureSocketsLayer)和SSH(安全外殼協議,SecureShell)加密,來保障交互數據的安全,但實際上,對於攻擊者來說,也會利用它們來加密惡意活動,並隱瞞與入侵系統的通信。據估計,在擊中企業網路的所有流量中,有三分之以上的攻擊流量是被加密的。
因此,如果沒有種方法來解密流量的話,那麼你的防火牆面對攻擊者的威氏敏前脅將是盲目的,而且可能會在加密流量面前栽跟頭。雖然目前些新式防火牆已經能夠解密和檢查加密流量,但大量運行著的傳統防火牆並不具備這個功能。而如果你的防火牆屬於後者,那麼就有必要在SSL流量抵達之前給予攔截。並且,現在些IT服務供應商可提供代理伺服器來幫助企業實現流量的攔截過濾服務。
3、查看防護策略
確保定期地審查防火牆策略規則。因為即使開始企業制定的套安全策略是有效的,但隨著時間的推移,該策略規則都有被淘汰的可能,變成冗餘和矛盾的存在。所以,建議少每半年檢查次防火牆策略集,刪除過時、未使用的和過期的策略規則。而當添加新策略時,要確保其與現行策略不重復和不沖突。
❸ 申請網路安全策略時要提供哪些信息
網路的安全策略1.引言
隨著計算機網路的不斷發展,全球信息化已成為人類發展的大趨勢。但由於計算機網路具有聯結形式多樣性、終端分布不均勻性和網路的開放性、互連性等特徵,致使網磨神絡易受黑客、怪客、惡意軟體和其他不軌的攻擊,所以網上信息的安全和保密是一個至關重要的問題。對於軍用的自動化指揮網路、C3I系統和銀行等傳輸敏感數據的計算機網路系統而言,其網上信息的安全和保密尤為重要。因此,上述的網路必須有足夠強的安全措施,否則該網路將是個無用、甚至會危及國家安全的網路。無論是在區域網還是在廣域網中,都存在著自瞎正虧然和人為等諸多因素的脆弱性和潛在威脅。故此,網路的安全措施應是能全方位地針對各種不同的威脅和脆弱性,這樣才能確保網路信息的保密性、完整性和可用性。
2.計算網路面臨的威脅
計算機網路所面臨的威脅大體可分為兩種:一是對網路中信息的威脅;二是對網路中設備的威脅。影響計算機網路的因素很多,有些因素可能是有意的,也可能是無意的;可能是人為的,也可能是非人為的;可能是外來黑客對網路系統資源的非法使有,歸結起來,針對網路安全的威脅主要有三:
(1)人為的無意失誤:如操作員安全配置不當造成的安全漏洞,用戶安全意識不強,用戶口令選擇不慎,用戶將自己的帳號隨意轉借他人或與別人共享等都會對網路安全帶來威脅。
(2)人為的惡意攻擊:這是計算機網路所面臨的最大威脅,敵手的攻擊和計算機犯罪就屬於這一類。此類攻擊又可以分為以下兩種:一種是主動攻擊,它以各種方式有選擇地破壞信息的有效性和完整性;另一類是被動攻擊,它是在不影響網路正常工作的情況下,進行截獲、竊取、破譯以獲得重要機密信息。這兩種攻擊均可對計算機網路造成極大的危害,並導致機密數據的泄漏。
(3)網路軟體的漏洞和「後門」:網路軟體不可能是百分之百的無缺陷和無漏洞的,然而,這些漏洞和缺陷恰恰是黑客進行攻擊的首選目標,曾經出現過的黑客攻入網路內部的事件,這些事件的大部分就是因為安全措施不完善所招致的苦果。另外,軟體的「後門」都是軟體公司的設計編程人員為了自便而設置的,一般不為外人所知,但一旦「後門」洞開,其造成的後果將不堪設想。
3.計算機網路的安全策略
3.1 物理安全策略
物理安全策略的目的是保護計算機系統、網路伺服器、列印機等硬體實體和通信鏈路免受自然災害、人為破壞和搭線攻擊;驗證用戶的身份和使用許可權、防止用戶越權操作;確保計算機系統有一個良好的電磁兼容工作環境;建立完備的安全管理制度,防止非法進入計算機控制室和各種偷竊、破壞活動的發生。
抑制和防止電磁泄漏(即TEMPEST技術)是物理安全策略的一個主要問題。目前主要防護措施有兩類:一類是對傳導發射的防護,主要採取對電源線和信號線加裝性能良好的濾波器,減小傳輸阻抗和導線間的交叉耦清顫合。另一類是對輻射的防護,這類防護措施又可分為以下兩種:一是採用各種電磁屏蔽措施,如對設備的金屬屏蔽和各種接插件的屏蔽,同時對機房的下水管、暖氣管和金屬門窗進行屏蔽和隔離;二是干擾的防護措施,即在計算機系統工作的同時,利用干擾裝置產生一種與計算機系統輻射相關的偽雜訊向空間輻射來掩蓋計算機系統的工作頻率和信息特徵。
3.2 訪問控制策略
訪問控制是網路安全防範和保護的主要策略,它的主要任務是保證網路資源不被非法使用和非常訪問。它也是維護網路系統安全、保護網路資源的重要手段。各種安全策略必須相互配合才能真正起到保護作用,但訪問控制可以說是保證網路安全最重要的核心策略之一。下面我們分述各種訪問控制策略。 3.2.1 入網訪問控制
入網訪問控制為網路訪問提供了第一層訪問控制。它控制哪些用戶能夠登錄到伺服器並獲取網路資源,控制准許用戶入網的時間和准許他們在哪台工作站入網。
用戶的入網訪問控制可分為三個步驟:用戶名的識別與驗證、用戶口令的識別與驗證、用戶帳號的預設限制檢查。三道關卡中只要任何一關未過,該用戶便不能進入該網路。
對網路用戶的用戶名和口令進行驗證是防止非法訪問的第一道防線。用戶注冊時首先輸入用戶名和口令,伺服器將驗證所輸入的用戶名是否合法。如果驗證合法,才繼續驗證用戶輸入的口令,否則,用戶將被拒之網路之外。用戶的口令是用戶入網的關鍵所在。為保證口令的安全性,用戶口令不能顯示在顯示屏上,口令長度應不少於6個字元,口令字元最好是數字、字母和其他字元的混合,用戶口令必須經過加密,加密的方法很多,其中最常見的方法有:基於單向函數的口令加密,基於測試模式的口令加密,基於公鑰加密方案的口令加密,基於平方剩餘的口令加密,基於多項式共享的口令加密,基於數字簽名方案的口令加密等。經過上述方法加密的口令,即使是系統管理員也難以得到它。用戶還可採用一次性用戶口令,也可用攜帶型驗證器(如智能卡)來驗證用戶的身份。
網路管理員應該可以控制和限制普通用戶的帳號使用、訪問網路的時間、方式。用戶名或用戶帳號是所有計算機系統中最基本的安全形式。用戶帳號應只有系統管理員才能建立。用戶口令應是每用戶訪問網路所必須提交的「證件」、用戶可以修改自己的口令,但系統管理員應該可以控制口令的以下幾個方面的限制:最小口令長度、強制修改口令的時間間隔、口令的唯一性、口令過期失效後允許入網的寬限次數。
用戶名和口令驗證有效之後,再進一步履行用戶帳號的預設限制檢查。網路應能控制用戶登錄入網的站點、限制用戶入網的時間、限制用戶入網的工作站數量。當用戶對交費網路的訪問「資費」用盡時,網路還應能對用戶的帳號加以限制,用戶此時應無法進入網路訪問網路資源。網路應對所有用戶的訪問進行審計。如果多次輸入口令不正確,則認為是非法用戶的入侵,應給出報警信息。
3.2.2 網路的許可權控制
網路的許可權控制是針對網路非法操作所提出的一種安全保護措施。用戶和用戶組被賦予一定的許可權。網路控制用戶和用戶組可以訪問哪些目錄、子目錄、文件和其他資源。可以指定用戶對這些文件、目錄、設備能夠執行哪些操作。受託者指派和繼承許可權屏蔽(IRM)可作為其兩種實現方式。受託者指派控制用戶和用戶組如何使用網路伺服器的目錄、文件和設備。繼承許可權屏蔽相當於一個過濾器,可以限制子目錄從父目錄那裡繼承哪些許可權。我們可以根據訪問許可權將用戶分為以下幾類:(1)特殊用戶(即系統管理員);(2)一般用戶,系統管理員根據他們的實際需要為他們分配操作許可權;(3)審計用戶,負責網路的安全控制與資源使用情況的審計。用戶對網路資源的訪問許可權可以用一個訪問控製表來描述。
3.2.3 目錄級安全控制
網路應允許控制用戶對目錄、文件、設備的訪問。用戶在目錄一級指定的許可權對所有文件和子目錄有效,用戶還可進一步指定對目錄下的子目錄和文件的許可權。對目錄和文件的訪問許可權一般有八種:系統管理員許可權(Supervisor)、讀許可權(Read)、寫許可權(Write)、創建許可權(Create)、刪除許可權(Erase)、修改許可權(Modify)、文件查找許可權(File Scan)、存取控制許可權(Access Control)。用戶對文件或目標的有效許可權取決於以下二個因素:用戶的受託者指派、用戶所在組的受託者指派、繼承許可權屏蔽取消的用戶許可權。一個網路系統管理員應當為用戶指定適當的訪問許可權,這些訪問許可權控制著用戶對伺服器的訪問。八種訪問許可權的有效組合可以讓用戶有效地完成工作,同時又能有效地控制用戶對伺服器資源的訪問 ,從而加強了網路和伺服器的安全性。
3.2.4 屬性安全控制
當用文件、目錄和網路設備時,網路系統管理員應給文件、目錄等指定訪問屬性。屬性安全控制可以將給定的屬性與網路伺服器的文件、目錄和網路設備聯系起來。屬性安全在許可權安全的基礎上提供更進一步的安全性。網路上的資源都應預先標出一組安全屬性。用戶對網路資源的訪問許可權對應一張訪問控製表,用以表明用戶對網路資源的訪問能力。屬性設置可以覆蓋已經指定的任何受託者指派和有效許可權。屬性往往能控制以下幾個方面的許可權:向某個文件寫數據、拷貝一個文件、刪除目錄或文件、查看目錄和文件、執行文件、隱含文件、共享、系統屬性等。網路的屬性可以保護重要的目錄和文件,防止用戶對目錄和文件的誤刪除、、執行修改、顯示等。
3.2.5 網路伺服器安全控制
網路允許在伺服器控制台上執行一系列操作。用戶使用控制台可以裝載和卸載模塊,可以安裝和刪除軟體等操作。網路伺服器的安全控制包括可以設置口令鎖定伺服器控制台,以防止非法用戶修改、刪除重要信息或破壞數據;可以設定伺服器登錄時間限制、非法訪問者檢測和關閉的時間間隔。
3.2.6 網路監測和鎖定控制
網路管理員應對網路實施監控,伺服器應記錄用戶對網路資源的訪問,對非法的網路訪問,伺服器應以圖形或文字或聲音等形式報警,以引起網路管理員的注意。如果不法之徒試圖進入網路,網路伺服器應會自動記錄企圖嘗試進入網路的次數,如果非法訪問的次數達到設定數值,那麼該帳戶將被自動鎖定。
3.2.7 網路埠和節點的安全控制
網路中伺服器的埠往往使用自動回呼設備、靜默數據機加以保護,並以加密的形式來識別節點的身份。自動回呼設備用於防止假冒合法用戶,靜默數據機用以防範黑客的自動撥號程序對計算機進行攻擊。網路還常對伺服器端和用戶端採取控制,用戶必須攜帶證實身份的驗證器(如智能卡、磁卡、安全密碼發生器)。在對用戶的身份進行驗證之後,才允許用戶進入用戶端。然後,用戶端和伺服器端再進行相互驗證。
3.2.8 防火牆控制
防火牆是近期發展起來的一種保護計算機網路安全的技術性措施,它是一個用以阻止網路中的黑客訪問某個機構網路的屏障,也可稱之為控制進/出兩個方向通信的門檻。在網路邊界上通過建立起來的相應網路通信監控系統來隔離內部和外部網路,以阻檔外部網路的侵入。目前的防火牆主要有以下三種類型;
(1)包過濾防火牆:包過濾防火牆設置在網路層,可以在路由器上實現包過濾。首先應建立一定數量的信息過濾表,信息過濾表是以其收到的數據包頭信息為基礎而建成的。信息包頭含有數據包源IP地址、目的IP地址、傳輸協議類型(TCP、UDP、ICMP等)、協議源埠號、協議目的埠號、連接請求方向、ICMP報文類型等。當一個數據包滿足過濾表中的規則時,則允許數據包通過,否則禁止通過。這種防火牆可以用於禁止外部不合法用戶對內部的訪問,也可以用來禁止訪問某些服務類型。但包過濾技術不能識別有危險的信息包,無法實施對應用級協議的處理,也無法處理UDP、RPC或動態的協議。
(2)代理防火牆:代理防火牆又稱應用層網關級防火牆,它由代理伺服器和過濾路由器組成,是目前較流行的一種防火牆。它將過濾路由器和軟體代理技術結合在一起。過濾路由器負責網路互連,並對數據進行嚴格選擇,然後將篩選過的數據傳送給代理伺服器。代理伺服器起到外部網路申請訪問內部網路的中間轉接作用,其功能類似於一個數據轉發器,它主要控制哪些用戶能訪問哪些服務類型。當外部網路向內部網路申請某種網路服務時,代理伺服器接受申請,然後它根據其服務類型、服務內容、被服務的對象、服務者申請的時間、申請者的域名范圍等來決定是否接受此項服務,如果接受,它就向內部網路轉發這項請求。代理防火牆無法快速支持一些新出現的業務(如多媒體)。現要較為流行的代理伺服器軟體是WinGate和Proxy Server。
(3)雙穴主機防火牆:該防火牆是用主機來執行安全控制功能。一台雙穴主機配有多個網卡,分別連接不同的網路。雙穴主機從一個網路收集數據,並且有選擇地把它發送到另一個網路上。網路服務由雙穴主機上的服務代理來提供。內部網和外部網的用戶可通過雙穴主機的共享數據區傳遞數據,從而保護了內部網路不被非法訪問。
4.信息加密策略
信息加密的目的是保護網內的數據、文件、口令和控制信息,保護網上傳輸的數據。網路加密常用的方法有鏈路加密、端點加密和節點加密三種。鏈路加密的目的是保護網路節點之間的鏈路信息安全;端-端加密的目的是對源端用戶到目的端用戶的數據提供保護;節點加密的目的是對源節點到目的節點之間的傳輸鏈路提供保護。用戶可根據網路情況酌情選擇上述加密方式。
信息加密過程是由形形 色色的加密演算法來具體實施,它以很小的代價提供很大的安全保護。在多數情況下,信息加密是保證信息機密性的唯一方法。據不完全統計,到目前為止,已經公開發表的各種加密演算法多達數百種。如果按照收發雙方密鑰是否相同來分類,可以將這些加密演算法分為常規密碼演算法和公鑰密碼演算法。
在常規密碼中,收信方和發信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。比較著名的常規密碼演算法有:美國的DES及其各種變形,比如Triple DES、GDES、New DES和DES的前身Lucifer; 歐洲的IDEA;日本的FEAL-N、LOKI-91、Skipjack、RC4、RC5以及以代換密碼和轉輪密碼為代表的古典密碼等。在眾多的常規密碼中影響最大的是DES密碼。
常規密碼的優點是有很強的保密強度,且經受住時間的檢驗和攻擊,但其密鑰必須通過安全的途徑傳送。因此,其密鑰管理成為系統安全的重要因素。
在公鑰密碼中,收信方和發信方使用的密鑰互不相同,而且幾乎不可能從加密密鑰推導出解密密鑰。比較著名的公鑰密碼演算法有:RSA、背包密碼、McEliece密碼、Diffe-Hellman、Rabin、Ong-Fiat-Shamir、零知識證明的演算法、橢園曲線、EIGamal演算法等等。最有影響的公鑰密碼演算法是RSA,它能抵抗到目前為止已知的所有密碼攻擊。
公鑰密碼的優點是可以適應網路的開放性要求,且密鑰管理問題也較為簡單,尤其可方便的實現數字簽名和驗證。但其演算法復雜。加密數據的速率較低。盡管如此,隨著現代電子技術和密碼技術的發展,公鑰密碼演算法將是一種很有前途的網路安全加密體制。
當然在實際應用中人們通常將常規密碼和公鑰密碼結合在一起使用,比如:利用DES或者IDEA來加密信息,而採用RSA來傳遞會話密鑰。如果按照每次加密所處理的比特來分類,可以將加密演算法分為序列密碼和分組密碼。前者每次只加密一個比特而後者則先將信息序列分組,每次處理一個組。 密碼技術是網路安全最有效的技術之一。一個加密網路,不但可以防止非授權用戶的搭線竊聽和入網,而且也是對付惡意軟體的有效方法之一。
5. 網路安全管理策略
在網路安全中,除了採用上述技術措施之外,加強網路的安全管理,制定有關規章制度,對於確保網路的安全、可靠地運行,將起到十分有效的作用。
網路的安全管理策略包括:確定安全管理等級和安全管理范圍;制訂有關網路操作使用規程和人員出入機房管理制度;制定網路系統的維護制度和應急措施等。
6. 結束語
隨著計算機技術和通信技術的發展,計算機網路將日益成為工業、農業和國防等方面的重要信息交換手段,滲透到社會生活的各個領域。因此,認清網路的脆弱性和潛在威脅,採取強有力的安全策略,對於保障網路的安全性將變得十分重要。
❹ 個人防火牆的數據類型
用戶態(user-mode)和內核態(kernel-mode)。
1)用戶態(user-mode)。
在用戶態下進行網路數據包的攔截有三種方法:WinsockLayeredServiceProvider(LSP)、Windows2000包過濾介面、替換系統自帶的WINSOCK動態連接庫。在用戶態下
進行數據包攔截最致命的缺點就是只能在Winsock層次上進行,而對於網路協議棧中底層協議的數據包無法進行處理。因此,這些方法並不適合個人防火牆。
2)內核態(kernel-mode)。
a)TDI過濾驅動程序(TDIFilterDriver)。當應用程序要發送或接收網路數據包的時候,都是通過與協議驅動所提供的介面來進行的。協議驅動提供了一套系統預定義的標准介面來和應用程序之間進行交互。因此,只需要開發一個過濾驅動來截獲這些交互的介面,就可以實現網路數據包的攔截。在Windows2000/NT下,ip,tcp,udp是在一個驅動程序里實現的,叫做tcp.sys,這個驅動程序創建了5個設備:DeviceRawIp,DeviceUdp,DeviceTcp,DeviceIp,DeviceMULTICAST。應用程序所有的網路數據操作都是通過這些設備進行的。因此,我們只需要開發一個過濾驅動來截獲這些交互的介面,就可以實現網路數據包的攔截。另外,TDI層的網路數據攔截還可以得到操作網路數據包的進程詳細信息,這也是個人防火牆的一個重要功能。但是,TDI傳輸驅動程序有一個缺陷,TDIFilterdriver屬於Upperdriver,位於TcpIP.sys之上,這就意味著由TcpIP.sys接收並處理的數據包不會傳送到上層,從而無法過濾某些接收的數據包,例如ICMP包。ICMP的應答包直接由TcpIP.sys生成並回應,而上面的過濾驅動程序全然不知。另外,該方法需要在系統核心層編寫驅動程序,需要編寫人員對Windows操作核心層的工作機制非常熟悉,同時,驅動程序對代碼質量要求非常高,稍有不慎就會使系統崩潰,
b)Win2kFilter-HookDriver。這是從Windows2000開始系統所提供的一種驅動程序,該驅動程序主要是利用Ipfiltdrv.sys所提供的功能來攔截網路數據包。Filter-HookDriver的結構非常簡單,易於實現。但是正因為其結構過於簡單,並且依賴於Ipfiltdrv.sys,Microsoft並不推薦使用Filter-HookDriver。
c)NDISHookDriver。該方法在Windows2000/xp下是非公開的,因此這種方法對平台的依賴性比較大,需要在程序中判斷不同的操作系統版本而使用不同的方法。
d)NDIS中間層驅動程序(NDISIntermediateDriver)。NDIS()碰差是Microsoft和3Com公司開發的網路驅動程序介面規范的簡稱,它支持如下三種類型的網路驅動程序:微埠驅動程序、中間層驅動程序(IntermediateDriver)和協議驅動程序。其中中間層驅動介於協議層驅動和小埠驅動之間,其功能非常強大,可以提供多種服務,能夠截獲所有的網路數據包(以太幀),過濾微埠驅動程序,實現特定的協議或其他諸如數據包加密、認證等功能。綜上所述,在NDIS中間層進行網路數據包截獲的方法結構規范,功能強大,該技術極其適合個人防火牆所採用。
中間層驅動程序(NDIS)的內部結構
NDIS支持飢吵御3種驅動:微埠驅動,中間層驅動和協議驅動爛岩。
1) 微埠驅動。就是網卡驅動,它負責管理網卡,包括通
過網卡發送和接受數據,它也為上層驅動提供介面。
2) 中間層驅動。它通常位於微埠驅動和傳輸協議驅動之間,是基於鏈路層和網路層之間的驅動,由於中間層驅動在驅動層次中的中間層位置,它必須與其上層的協議和下層的微埠驅動通信,並且導出兩種協議的函數。雖然中間層驅動導出MINIPORTXX函數,但它並不真正的管理物理網卡,而是導出一個或者多個虛擬適配器,上層協議可以綁定到上面。對於協議驅動來說,中間層導出的虛擬適配器看起來像一個物理網卡,當它向這個虛擬適配器發送封包或者請求時,中間層驅動將這些封包和請求傳播到下層微埠驅動;當下層微埠驅動向上指示接收封包或者狀態時,中間層驅動向上到綁定虛擬適配器上的協議驅動。中間層驅動的主要作用就是過濾封包,其優點是能夠截獲所有的網路數據包。
3) 協議驅動,即網路協議。它位於NDIS體系的最高層,經常用作實現傳輸協議堆棧的傳輸驅動中的最底層驅動。傳輸協議驅動申請封包,從發送應用程序將數據復制到封包中,通過調用NDIS函數將這些封包發送到下層驅動。協議驅動也是提供了一個協議介面來接收來自下層驅動的封包。傳輸協議驅動將收到的封包傳遞給相應的客戶應用程序。在下層,協議驅動與中間層微埠驅動交互。協議驅動調用NDISXX函數發送封包,讀取和設置下層驅動維護的信息,使用操作系統服務。協議驅動也要導出一系列的入口點,NDIS調用它來指示封包的接受,指示下層驅動的狀態,或者是和其他協議驅動的通信。
中間層內部的工作流程
1) 中間層對數據包的管理
中間層驅動程序從高層驅動程序接收數據包描述符,並在網路上發送,該包描述符與一個或多個鏈式數據緩沖區相關聯。中間層驅動程序能夠對數據進行重新打包,並使用新的數據包描述符進行數據傳輸,也可以直接將數據包傳遞給低層驅動程序,如果驅動程序下邊界面向無連接,可調用NdisSend或NdisSendPackets函數完成該功能,如果驅動程序下邊界是面向連接的,可調用NdisCoSendPackets函數完成此項功能。中間層驅動程序也可以進行一些操作改變鏈式緩沖區的內容,或者調整內入數據包相對於其他發送任務的發送次序或發送定時。但是,即使中間層驅動程序只是向下層傳遞上層引入的數據報,例如,僅僅只是對數據包進行計數,也必須分配新的數據包描述符,並且要管理部分或者全部新的包結構。
每一個中間層驅動程序都必須分配自己的包描述符來代替高層的數據包描述符。如果中間層驅動程序要把數據包從一種格式轉化為另一種格式,也必須分配緩沖區描述符來映射用於復制轉配數據的緩沖區,該緩沖區由中間層驅動程序進行分配。如果有與復制的包描述符相關的OOB數據,那麼可以將這些數據復制到與包描述符(中間層驅動程序分配的)相關的新OOB數據塊,其過程是,首先,用NDIS_OOB_DATA_FROM_PACKET宏獲取OOB數據區的指針,然後,調用disMoveMemory將其內容移入與新包描述符相關的OOB數據區。該驅動程序也能夠用NDIS_GET_PACKET_XXX或NDIS_SET_PACKET_XXX宏從與老的包描述符相關的OOB數據區中,讀取相關的內容,並寫入與新包描述符相關的OOB數據區。
包描述符通過調用以下NDIS函數進行分配
a)調用NdisAllocatePacketPool或者NdisAllocatePacketPoolEx,為固定尺寸包描述符(由呼叫器指定數量)分配並初始化一組非可分頁池。
b)調用NdisAllocatePacket函數,從NdisAllocatePacketPool(Ex)已經分配的池中分配包描述符。根據中間層驅動程序目的的不同,驅動程序能夠對引入包描述符連接的緩沖區進行重新打包。例如,中間層驅動程序可以在接下來的情況下分配包緩沖池、對引入包數據重新打包.如果中間層驅動程序從高層協議驅動程序接收到的數據緩沖區,比低層介質能夠發送的單個緩沖區更大,那麼中間層驅動程序必須將引入的數據緩沖分割成更小的、滿足低層發送要求的數據緩沖。中間層驅動程序在將發送任務轉交低層驅動程序之前,可以通過壓縮或加密數據方式來改變內入數據包的長度。調用以下NDIS函數分配上面所要求的緩沖區:
NdisAllocateBufferPool獲取用於分配緩沖區描述符的句柄;
NdisAllocateMemory或NdisAllocateMemoryWithTag分配緩沖區;
c)調用NdisAllocateBuffer分配和設置緩沖區描述符,映射由NdisAllocateMemory(WithTag)分配的緩沖區,並鏈接到NdisAllocatePacket分配的包描述符上。驅動程序可以通過調用NdisChainBufferAtBack或NdisChainBufferAtFront函數,將緩沖區描述符和包描述符進行鏈接。調用NdisAllocateMemory(WithTag)返回的虛擬地址和緩沖區長度,將被傳遞給NdisAllocateBuffer函數來初始化其所映射的緩沖區描述符。符合典型要求的包描述符能夠在驅動程序初始化時根據要求進行分配,也可以通過ProtocolBindAdapter函數調用來實現。如果必要或者出於性能方面的考慮,中間層驅動程序開發者可以在初始化階段,分配一定數量的包描述符和由緩沖區描述符映射的緩沖區,這樣,就為ProtocolReceive復制內入數據(將向高層驅動程序指示)預先分配了資源,也為MiniportSend或MiniportSendPackets向相鄰低層驅動程序傳遞引入的發送數據包,准備了可用的描述符和緩沖區。如果在中間層驅動程序復制接收/發送數據到一個或多個緩沖區時,最末的一個緩沖的實際數據長度比緩沖區的長度小,那麼,中間層驅動程序將調用NdisAdjustBufferLength把該緩沖區描述符調節到數據的實際長度。當該包返回到中間層驅動程序時,應再次調用該函數將其長度調節到完整緩沖區的實際尺寸。
2)下邊界面向無連接的中間層驅動程序的工作流程
通過ProtocolReceivePacket函數,從低層NIC驅動程序以完整數據包形式接收內入數據,該數據包由NDIS_PACKET類型的包描述符指定,也能夠通過將內入數據指示給ProtocolReceive函數,並將數據復制到中間層驅動程序提供的數據包中。下邊界面向連接的中間層驅動程序總是用ProtocolCoReceivePacket函數,從低層NIC驅動程序接收數據作為一個完整的數據包。
在如下情況下,中間層驅動程序能夠保持對接收數據包的所有權:當下邊界面向無連接的中間層驅動程序向ProtocolReceivePacket函數指示完整數據包時,當下邊界面向連接的中間層驅動程序向ProtocolCoReceivePacket函數指示數據包時,其中DIS_PACKET_OOB_DATA的Status成員設置為除NDIS_STATUS_RESOURCES以外的任何值。在這些情況下,中間層驅動程序能夠保持對該包描述符和其所描述的資源的所有權,直到所接收數據處理完畢,並調用NdisReturnPackets函數將這些資源返還給低層驅動程序為止。如果ProtocolReceivePacket向高層驅動程序傳遞其所接收的資源,那麼至少應該用中間層驅動程序已經分配的包描述符替代引入包描述符。根據中間層驅動程序目的的不同,當其從低層驅動程序接收完整數據包時,將有幾種不同的包管理策略。例如,以下是幾種可能的包管理策略:復制緩沖區內容到中間層驅動程序分配的緩沖區中,該緩沖區被映射並鏈接到一個新的包描述符,向低層驅動程序返回該輸入包描述符,然後可以向高層驅動程序指示新的數據包;創建新的包描述符,將緩沖區(與被指示包描述符相關聯)鏈接到新的包描述符,然後將新的包描述符指示給高層驅動程序。當高層驅動程序返回包描述符時,中間層驅動程序必須拆除緩沖區與包描述符間的鏈接,並將這些緩沖區鏈接到最初從低層驅動程序接收到的包描述符,最後向低層驅動程序返還最初的包描述符及其所描述的資源。即使下邊界面向無連接的中間層驅動程序支持ProtocolReceivePacket函數,它也提供ProtocolReceive函數。當低層驅動程序不釋放包描述符所指示資源的所有權時,NDIS將調用ProtocolReceive函數,當這類情況出現時,中間層驅動程序必須復制所接收的數據到它自己的緩沖區中。對於下邊界面向連接的中間層驅動程序,當低層驅動程序不釋放包描述符所指示資源的所有權時,則將數據包的NDIS_PACKET_OOB_DATA的Status成員設為NDIS_STATUS_RESOURCES,然後驅動程序的ProtocolCoReceivePacket函數必須將接收到數據復制到自己的緩沖區中
5) 中間層驅動過濾數據包的原理
NDIS中間層驅動程序在NDIS中起著轉發上層驅動程序送來的數據包,並將其向下層驅動程序發送的介面功能。當中間層驅動程序從下層驅動程序接收到數據包時,它要麼調用NdisMXxxIndicateReceive函數,要麼調用NdisMindicateReceivePacket函數向上層指示該數據包中間層驅動程序通過調用NDIS打開和建立一個對低層NIC驅動程序或者NDIS中間層驅動程序的綁定。中間層驅動程序提供MiniportSetInformation和MiniportQueryInformation函數來處理高層驅動程序的設置和查詢請求,某些情況下,可能還要將這些請求向低層NDIS驅動程序進行傳遞,如果其下邊界是面向無連接的可通過調用NidsRequest實現這一功能,如果其下邊界是面向連接的則通過調用NidsCoRequest實現該功能。中間層驅動程序通過調用NDIS提供的函數向網路低層NDIS驅動程序發送數據包。例如,下邊界面向無連接的中間層驅動程序必須調用NdisSend或NdisSendPackets來發送數據包或者包數組,而在下邊界面向連接的情況下就必須調用NdisCoSendPackets來發送包數組數據包。如果中間層驅動程序是基於非NDISNIC驅動程序的,那麼在調用中間層驅動程序的MiniportSend或Miniport(Co)SendPackets函數之後,發送介面對NDIS將是不透明的。NDIS提供了一組隱藏低層操作系統細節的NdisXxx函數和宏。例如,中間層驅動程序可以調用NdisMInitializeTimer來創建同步時鍾,可以調用NdisInitializeListHead創建鏈表。中間層驅動程序使用符合NDIS標準的函數,來提高其在支持Win32介面的微軟操作系統上的可移植性。
在防火牆的設計中,最核心的部分應該是數據包的過濾。
其他的功能都是建立在數據包過濾的基礎之上,如:入侵檢測功能和郵件檢測功能都是建立在數據包過濾的基礎之上。數據包過濾中主要是IP包頭的分析,例如:在乙太網中,得到的數據報大致是如下結構,以太幀頭14個位元組,放在PUCHAR結構數組的第0個元素到第13個元素中,其中前六個位元組是目的MAC地址,然後六個位元組源MAC地址,然後兩個位元組是協議類型,通常的協議類型有0x080x00->IP,0x080x06->ARP,0x080x35->RARP,所以,可以通過數組的第12個元素和第13個元素來判斷協議類型。過濾規則就是在這個基礎之上建立。如果要過濾特定協議,只要在相應的位元組讀取數據,判斷是否符合要過濾的規則就可以了,當然實際的過濾規則要復雜的多的多,比如對指定的埠指定的IP的過濾。
❺ 什麼是防火牆一個防火牆至少提供哪兩個基本的服務
1.防火牆的定義
所謂防火牆指的是一個由軟體和硬體設備組合而成、在內部網和外部網之間、專用網與公共網之間的界面上構造的保護屏障.是一種獲取安全性方法的形象說法,它是一種計算機硬體和軟體的結合,使Internet與Intranet之間建立起一個安全網關(Security Gateway),從而保護內部網免受非法用戶的侵入,防火牆主要由服務訪問規則、驗證工具、包過濾和應用網關4個部分組成,
防火牆就是一個位於計算機和它所連接的網路之間的軟體或硬體(其中硬體防火牆用的較少,例如國防部以及大型機房等地才用,因為它價格昂貴)。該計算機流入流出的所有網路通信均要經過此防火牆。
防火牆 英語為firewall 《英漢證券投資詞典》的解釋為:金融機構內部將銀行業務與證卜畝券業務嚴格區分開來的法律屏障,旨在防止可能出現的內幕消息共享等不公平交易出現。使用防火牆比喻不要引火燒身
(一)內部網路和外部網路之間的所有網路數據流都必須經過防火牆
這是防火牆所處網路位置特性,同時也是一個前提。因為只有當防火牆是內、外部網路之間通信的唯一通道,才可以全面、有效地保護企業網部網路不受侵害。
根據美國國家安全局制定的《信息保障技術框架》,防火牆適用於用戶網路系統的邊界,屬於用戶網路邊界的安全保護設備。所謂網路邊界即是採用不同安全策略的兩個網路連接處,比如用戶網路和互聯網之間連接、和其它業務往來單位的網路連接、用戶內部網路不同部門之間的連接等。防火牆的目的就是在網路連接之間建立一個安全控制點,通過允許、拒絕或重新定向經過防火牆的數據流,實現對進、出內部網路的服務和訪問的審計和控制。
典型的防火牆體系網路結構如下圖所示。從圖中可以看出,防火牆的一端連接企事業型唯森單位內部的區域網,而另一端則連接著互聯網。所有的內、外部網路之間的通信都要經過防火牆。
(二)只有符合安全策略的數據流才能通過防火牆
防火牆最基本的功能是確保網路流量的合法性,並在此前提下將網路的流量快速的從一條鏈路轉發到另外的鏈路上去。從最早的防火牆模型開始談起,原始的防火牆是一台「雙穴主機」,即具備兩個網路介面,同時擁有兩個網路層地址。防火牆將網路上的流量通過相應的網路介面接收上來,按照OSI協議棧的七層結構順序上傳,在適當的協議層進行訪問規則和安全審查,然後將符合通過條件的報文從相應的網路介面送出,而對於那些不符合通過條件的報文則予以阻斷。因此,從這個角度上來說,防火牆是一個類似於橋接或路由器的、多埠的(網路介面>=2)轉發設備,它跨接於多個分離的物理網段之間,並在報文轉發過程之中完成對報文的審查工作。如下圖:
(三)防火牆自身應具有非常強的抗攻擊免疫力
這是防火牆之所以能擔當企業內部網路安全防護重任的先決條件。防火牆處於網路邊緣,它就像一個邊界衛士一樣,每時每刻都要面對黑客的入侵,這樣就要求防火牆自身要具有非常強的抗擊入侵山老本領。它之所以具有這么強的本領防火牆操作系統本身是關鍵,只有自身具有完整信任關系的操作系統才可以談論系統的安全性。其次就是防火牆自身具有非常低的服務功能,除了專門的防火牆嵌入系統外,再沒有其它應用程序在防火牆上運行。當然這些安全性也只能說是相對的。
2.防火牆最基本的功能就是控制在計算機網路中,不同信任程度區域間傳送的數據流。例如互聯網是不可信任的區域,而內部網路是高度信任的區域。以避免安全策略中禁止的一些通信,與建築中的防火牆功能相似。它有控制信息基本的任務在不同信任的區域。 典型信任的區域包括互聯網(一個沒有信任的區域) 和一個內部網路(一個高信任的區域) 。 最終目標是提供受控連通性在不同水平的信任區域通過安全政策的運行和連通性模型之間根據最少特權原則。