◆修揚 張月紅
網絡協議漏洞分析測試平臺在實驗教學中的應用
◆修揚 張月紅
(上海電子信息職業技術學院 上海 201411)
網絡是搭起信息系統的橋梁,網絡的安全性是整個信息系統安全的主要環節,只有網絡系統安全可靠,才能保證信息系統的安全可靠。網絡系統也是非法入侵者主要攻擊的目標,協議的開放性是開放分布或互聯網絡存在的不安全因素的主要體現。信息安全專業的學生在平時的學習過程中往往更多的依賴現成的攻防工具,但是卻不清楚工具運行所依賴的網絡協議,學生在學習攻防知識的時候僅僅是停留在使用工具的層面,但是卻沒有更深入地理解“工具為什么要這要用”、“參數為什么要這樣設置”,因此開發網絡協議漏洞分析平臺具有現實的教學意義,能夠幫助學生更深入地理解協議運行原理以及協議攻防技術。
協議開放性;網絡協議;協議漏洞分析
網絡協議是計算機之間為了互聯共同遵守的規則,目前的互聯網絡所采用的主流協議TCP/IP,由于在其設計初期人們過分強調其開發性和便利性,沒有仔細考慮其安全性,因此很多的網絡協議都存在嚴重的安全漏洞,給Internet留下了許多安全隱患。另外,有些網絡協議缺陷造成的安全漏洞還會被黑客直接用來攻擊受害者系統。目前大部分的攻防工具都是以命令行或者圖形化界面的形式呈現,并沒有將工具所依賴的協議原理性東西呈現出來,學生在學習TCP/IP協議模型的時候,往往聽不懂;通過攻防平臺學習攻防知識時,學生大多是依賴現成攻防工具,只知道要把相應的命令記一下就可以了,只需要記住命令參數的配置就行了,但是并不知道該命令執行成功的原因、以及這些工具能夠實現攻擊的原理,不清楚工具所依賴的網絡協議原理,僅僅是停留在用的層面,而不知道“為什么要這樣用”。

圖1 協議分析平臺總體框架
平臺的主要思想就是基于規則庫的條件下,對網絡協議數據進行分析,分析相關協議漏洞,并對協議漏洞進行復現,最終生成協議分析報告。
2.2.1協議嗅探技術
現成的嗅探器有很多,它們在功能以及設計上也有不同,一般情況下,大多數的嗅探器都能分析TCP/IP協議,在網絡嗅探的工具中,pcap是目前公認的較好用的嗅探器,pcap(packet capture)由捕獲網絡流量的應用程序編程接口(API)組成[1]。類Unix的系統主要是在libpcap庫中實現pcap,而Windows系統則是使用名為WinPcap的libpcap端口。libpcap和WinPcap提供了許多開源和商業網絡工具的數據包捕獲和過濾引擎,包括協議分析器(數據包嗅探器)、網絡監視器、網絡入侵檢測系統、流量生成器和網絡測試器。libpcap和WinPcap還支持將捕獲的數據包保存到文件中,并讀取包含保存的數據包的文件;使用libpcap或WinPcap可以編寫應用程序,就能夠很好的捕獲網絡流量并對其進行分析,或使用相同的分析代碼讀取保存的捕獲數據并進行分析。通過研究pcap協議嗅探器的網絡接入方式,嗅探實現原理以及嗅探器使用方法,將嗅探器以交換機端口鏡像的方式接入網絡,以供流量數據包捕獲、統計和協議分析。研究相關協議分析技術,將嗅探器獲得的流量包統計數據解碼為可閱讀的形式,通過對網絡協議的深入了解,根據學習需求設置數據包的字段、如MAC地址、IP地址、端口信息等,以實現網絡攻擊仿真。
2.2.2基于Fuzzing測試的協議漏洞挖掘
漏洞挖掘技術過程可以分為白盒測試、灰盒測試和黑盒測試[2],白盒測試是在獲得源代碼碼的基礎上實施的,但是一般情況下,源代碼很難獲取得到,因此白盒測試只適用于開源軟件的源代碼測試;在不能對源代碼進行漏洞挖掘的情況下,只能采用對目標代碼進行分析的灰盒測試技術,灰盒測試技術是采用逆向工程將目標代碼的二進制轉成匯編代碼,通過反匯編的方式進行漏洞測試。M. Sutton等人提出了模糊測試技術,該技術是一種黑盒測試方法,該技術又稱為Fuzzing測試技術[3],該技術是一種發現安全漏洞的有效的測試方法,模糊測試將隨機的壞數據插入程序,觀察程序是否能容忍雜亂輸入,模糊測試是不合邏輯的,只是產生雜亂數據攻擊程序,采用模糊測試攻擊應用程序可發現其他采用邏輯思維來測試很難發現的安全漏洞。
Fuzzing測試技術不需要源代碼的參與,并且可以自動完成目標識別、該技術包括識別測試目標、識別輸入、生成模糊測試數據、執行模糊測試數據、監視異常、確定可利用性等流程。其中識別測試目標意思是識別目標程序中所使用的協議;識別用戶輸入包括數據包、端口等發送到目標程序的數據;等到確定輸入數據后,根據目標應用程序所需的數據格式生成fuzzing測試數據,fuzzing測試數據生成將直接影響測試結果;在執行fuzzing大量的測試用例之后,并不是任何一個測試用例都會導致目標應用程序崩潰,因此要監視程序的異常反應;一旦某個測試用例使得目標應用程序發生異常,該技術將通過異常日志或者模糊數據判斷目標程序崩潰時暴露漏洞的可利用性。
2.3.1協議數據包捕獲模塊
數據包的捕獲和解析是實現后續協議分析的基礎,數據包將包括自身平臺獲取的數據包報文以及第三方平臺接入的數據包報文,該模塊可以直接將報文數據發送給后續的協議分析模塊進行分析,也可以將報文數據存儲為PCAP格式數據等待后續分析。
2.3.2協議規則庫更新模塊
協議分析需要協議漏洞知識庫的支持,但是基于規則匹配的漏洞識別技術只能識別已有的漏洞,而不能識別新型的漏洞,因此需要及時更新已有的漏洞知識庫。本平臺的規則庫包含現有的協議規則庫、第三方流量經過漏洞掃描工具得到檢測結果生成規則庫,未知漏洞經過人工分析生成的規則庫以及Fuzzing模糊測試后生成的規則庫。
2.3.3協議數據分析模塊
協議報文分析模塊是影響整個工程效率最關鍵的部分,其主要功能是分析報文捕獲模塊中捕獲的報文數據,該模塊中最重要的部分就是要清楚“對協議中的哪些字段”進行分析,分析結果將會利用相應的格式進行描述。
對于信息安全專業的學生來說,僅僅依靠工具是萬萬不行的,網絡安全中由于協議的開放性,TCP/IP協議不提供安全保證,網絡協議的開放性方便了網絡互連,同時也為非法入侵者提供了方便,非法入侵者可以冒充合法用戶進行破壞,篡改信息,竊取報文內容。對協議知識的學習,要求學生在分析TCP/IP協議的基礎上,要充分理解不同層的協議通信原理,以及對協議通信的參數進行配置修改,該平臺能夠對整個協議攻擊過程進行記錄,方便學生對整個攻擊過程的了解和回溯,在充分掌握攻擊原理后,才能對協議攻擊采取相應的措施。
[1]張春泳. 基于WinPcap的網絡嗅探器的設計與實現[D]. 吉林大學.
[2]王希忠,黃俊強. 漏洞挖掘技術研究[J].網絡空間安全, 2014(06):32-35.
[3]黃影,鄒頎偉,范科峰. 基于Fuzzing測試的工控網絡協議漏洞挖掘技術[J]. 通信學報,2018,039(0z2):181-188.
[4]丁嵐.高等院校圖書館計算機網絡安全與防范——TCP/IP網絡協議漏洞分析及解決途徑[J].黑龍江科技信息,2016(16):161-162.