


解析Windows下個人防火墻實現技術路線
防火墻技術在網絡安全領域是數據加密與簽名外的另一個核心要點。基于Windows平臺上的個人防火墻系統的實現需要理解Windows的網絡編程的一些獨特底層接口和網絡協議底層,難度極大。另外,個人防火墻系統實現所用到的很多軟件技術和企業級的網絡防火墻、硬件防火墻原理基本是相同的,因此對個人防火墻系統的研究能極大地推動網絡安全技術進步和人才涌現,具有重大工程意義。
國外在該領域發展得比較快,國內主要有天網防火墻和許多原來是開發殺病毒軟件的開發商的個人防火墻,如KV系列、KILL系列、金山系列等,而且在實用性能上并不比國外知名品牌遜色。由于網絡安全領域涉及機密多,無法得到商業個人防火墻的技術實現細節上的區別聯系。
1個人防火墻功能分析
(1)實時監控,根據安全規則對進出本機的網絡封包進行過濾;
(2)受到攻擊時向用戶報警指示;
(3)日志記錄網絡訪問動作的詳細信息;
(4)電子郵件監控,可以根據自定義的過濾規則對郵件實施過濾;
(5)根據特征庫進行入侵檢測;
(6)在線升級特征庫;
(7)將防毒、殺毒和個人防火墻集成在一起。
這里進一步繼續分析。取并集可以得到一種功能強大的方案,但很多功能不完全屬于防火墻技術領域的研究范圍,如入侵檢測和防毒殺毒和郵件監控功能,而在線升級是~種技術支持的手段。入侵檢測是項復雜的技術,有許多實現方法,最常用的是借鑒殺毒軟件的工作原理定義一個入侵的特征庫,根據這個特征庫里的數據用包過濾技術對入侵進行攔截,也就是基于特征庫進行數據包截獲分析,其難點是特征庫的建立完善和自學習(關于特征庫的建立和自學習不是本項目的研究內容),但本質仍然是以包過濾為核心。
入侵檢測和各種規則過濾(包括應用程序規則和電子郵件規則)都是基于數據包截獲分析技術基礎上的,可以在不同的網絡體系結構層次截獲網絡通信數據包,然后結合自定義控管規則進行分析判斷是攔截還是放行。因此,防火墻軟件技術的核心是數據包封包截獲——對網絡上流動的數據包截獲并分析,通過控管規則來決定放行或者禁止出/入。因此,這里定義個人防火墻軟件系統應該具有的功能點有:
(1)根據應用程序控制訪問規則對應用程序的聯網動作進行過濾檢查;
(2)對應用程序控制訪問規則具有自學習功能;
(3)可實時監控,監視網絡活動;
(4)具有日志,以記錄網絡訪問動作的詳細信息;
(5)被截獲時通過聲音或閃爍的圖標向用戶報警提示。其中(1)是個人防火墻的基本功能,(4)、(5)是一個實用的個入防火墻系統應具備的輔助功能,(2)的要求比較高,要求個人防火墻系統在找不到完全符合的控管規則定義時具備一定的智能學習能力來決定放行或拒絕的管制動作。
2 Windows網絡體系結構分析
OSI/RM(OSI參考模型)是ISO最早給出的網絡體系結構參考模型嘲,它首先提出了協議分層和對等層通信,已成為描述和理解各種網絡協議和網絡通信過程的標準術語。本節將使用OSI參考模型盡可能準確地描述Windows操作系統的網絡體系結構,進而分析得到數據包截獲可能發生的網絡層次與方法。
給出了OSI七層參考模型與Window的網絡驅動分層結構,因此包截獲可以發生在網卡驅動程序所在的數據鏈路層及其以上直至應用層的各層中,這給我們提供了攔截網絡數據包的基本思路。MicrosoR在Windows的各個網絡協議層次上都提供了一些公開規范或者未公開非常規的方法方便開發者來插入一層,因此可以利用這些規范或者非常規的方法在插入的一層處理中進行數據包截獲。
在用戶態下進行網絡數據包攔截就是指會話層和表示層的包截獲,利用WinsockSPl(serviceproviderinterface,服務提供程序接口)或直接替換系統自帶的Winsock動態鏈接庫來截獲包,注意這里指的WinsockSPI編程并不是指Windows上的套接字編程Winsock網絡編程。另一個難點是對各種網絡坍議的解析,可以使用一些嗅探器軟件工具(如著名的Sniffer)來學習各種TCP/IP協議。
TDI層及以下底層的操作必須借助它提供的一些接口和開發規范進行,操作系統工作在系統態保護模式下。在系統態下的截獲要使用到WindowsDDK(windowsdevicedevelopingkit)和TDI(transport layer device interface filter driver)、NDIS接口規范(networkdriverinterfacespecification)。DDK是Windows下驅動開發的開發包,可以通過學習W/NDDK中的一些簡單范例找到解決方法。
在系統態下首先看最底層,從網絡體系結構來看截獲可發生在網卡驅動程序所在的數據鏈路層。但防火墻系統需要從數據包截獲中得到的主要是IP地址、協議服務類型和應用程序信息,在網絡層進行截獲已經足夠可以獲得這些信息,無必要對網卡MAC幀進行截獲分析。而且在網卡截獲適應各種各樣的網卡硬件環境,實際上也就是開發一個網卡驅動程序,這與防火墻系統的開發目標不太吻合。
從上向下看系統態下的方案還可以利用TDI層上的過濾驅動程序
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解