黃展鵬 蒙煒龍 吳俊璋 韋杰帥
【摘 要】TCP/IP協(xié)議安全分析仿真平臺主要由數(shù)據(jù)報文捕獲與解析、數(shù)據(jù)報文構(gòu)造與發(fā)送、DNS服務(wù)器、DHCP服務(wù)器等模塊構(gòu)成。本平臺使用的是真實可控的網(wǎng)絡(luò)環(huán)境,捕獲網(wǎng)絡(luò)流量并對數(shù)據(jù)報文進(jìn)行解析,能按需求構(gòu)造報文并發(fā)送,實現(xiàn)網(wǎng)絡(luò)協(xié)議安全分析。
【關(guān)鍵詞】協(xié)議安全;實驗教學(xué)
中圖分類號: TP393.08文獻(xiàn)標(biāo)識碼: A文章編號: 2095-2457(2019)32-0121-002
DOI:10.19694/j.cnki.issn2095-2457.2019.32.055
Design of TCP/IP Protocol Security Analysis and Simulation Platform
HUANG Zhan-peng MENG Wei-long WU Jun-zhang WEI Jie-shuai
(Department of Computer Science and Information security
【Abstract】TCP/IP protocol security analysis and simulation platform consists of four modules: data packet capturing and analysis, data message constructing and transiting, DNS server and DHCP server. The platform is used in the real network environment, to capture and analyze the real network traffic, and can construct data packets needed and send them to the real network environment, to achieve the real network attack and scanning probe, helping learning network protocol security technology.
【Key words】Protocol Security; Experimental Teaching
0 引言
網(wǎng)絡(luò)安全是計算機(jī)領(lǐng)域要解決的重要問題之一,對于計算機(jī)專業(yè)的學(xué)生或者在信息安全領(lǐng)域工作的人員而言,在真實的網(wǎng)絡(luò)環(huán)境下,學(xué)習(xí)常用的網(wǎng)絡(luò)攻擊和檢測手段是十分有意義的。
本平臺設(shè)計包括數(shù)據(jù)報文捕獲與解析、構(gòu)造與發(fā)送、DNS服務(wù)器和DHCP服務(wù)器共四個模塊。數(shù)據(jù)報文捕獲與解析、構(gòu)造與發(fā)送模塊使用基于Winpcap,包括以數(shù)據(jù)報文的捕獲、解析、內(nèi)核過濾與接收技術(shù)為基礎(chǔ),根據(jù)用戶的學(xué)習(xí)需求,提供了數(shù)據(jù)報文的捕獲和詳細(xì)分析功能和數(shù)據(jù)報文構(gòu)造傳輸功能。用戶可以分析捕獲的數(shù)據(jù)報文,或根據(jù)自己需求填寫數(shù)據(jù)報文的字段并發(fā)送到目標(biāo)主機(jī)中。本平臺的DNS服務(wù)器和DHCP服務(wù)器則是使用Qt下的QtNetwork模塊來實現(xiàn),為學(xué)習(xí)者提供了研究常見的攻擊DNS服務(wù)器和DHCP服務(wù)器手段的環(huán)境。
1 TCP/IP協(xié)議安全分析平臺設(shè)計
本平臺由兩個自主封裝庫和五個程序組成,分別是網(wǎng)絡(luò)工具庫、界面工具庫、啟動界面程序、數(shù)據(jù)報文捕獲與解析程序、數(shù)據(jù)報文構(gòu)造與發(fā)送程序、DNS服務(wù)器和DHCP服務(wù)器。
1.1 網(wǎng)絡(luò)工具庫設(shè)計
網(wǎng)絡(luò)工具庫主要是實現(xiàn)WinPcap的面向?qū)ο蠓庋b版本、結(jié)構(gòu)格式轉(zhuǎn)換函數(shù)、網(wǎng)絡(luò)協(xié)議格式首部定義和數(shù)據(jù)報文構(gòu)造的函數(shù)。
在WinPcap的面向?qū)ο蠓庋b版本中,通過定義一個網(wǎng)卡對象,可以十分簡單地打開一張網(wǎng)卡并獲取它的相關(guān)信息(如MAC地址,IP地址,子網(wǎng)掩碼和網(wǎng)關(guān)等),還能捕獲經(jīng)過這張網(wǎng)卡的所有網(wǎng)絡(luò)數(shù)據(jù)報文或通過這張網(wǎng)卡對外發(fā)送網(wǎng)絡(luò)數(shù)據(jù)報文。除此之外,還能定義一個堆文件對象,將捕獲到的數(shù)據(jù)報文記錄到堆文件中保存或者從堆文件中讀取已保存的數(shù)據(jù)報文進(jìn)行相關(guān)操作。
結(jié)構(gòu)格式轉(zhuǎn)換函數(shù)主要是為了方便將網(wǎng)絡(luò)中傳輸?shù)腎P地址或MAC地址結(jié)構(gòu)轉(zhuǎn)換為用戶可讀的字符串形式,或者從字符串形式轉(zhuǎn)換成網(wǎng)絡(luò)中傳輸?shù)腎P地址或MAC地址結(jié)構(gòu)。
網(wǎng)絡(luò)協(xié)議首部定義和數(shù)據(jù)報文構(gòu)造的函數(shù)實現(xiàn)主要是方便分析網(wǎng)絡(luò)數(shù)據(jù)報文時存儲數(shù)據(jù),還有在編寫數(shù)據(jù)報文構(gòu)造與發(fā)送程序、DNS服務(wù)器和DHCP服務(wù)器時,要求能快速地構(gòu)造所需協(xié)議的數(shù)據(jù)報文。
1.2 界面工具庫設(shè)計
對于一個具有圖形化界面的軟件而言,美觀的界面是吸引用戶使用的一個重要的手段,界面工具庫主要用來設(shè)置整個應(yīng)用程序的界面的風(fēng)格使應(yīng)用程序整體看起來扁平化。界面工具庫還會設(shè)計一些程序經(jīng)常用到的對話框,如警告提示對話框、錯誤提示對話框和確認(rèn)對話框等等。由于本平臺的程序比較多,因此需要設(shè)計一個啟動界面方便用戶快速啟動平臺的程序。該啟動界面相當(dāng)于是整個平臺的一個入口,只允許本程序只有一個實例在操作系統(tǒng)中運行。
1.3 數(shù)據(jù)報文捕獲與解析模塊設(shè)計
數(shù)據(jù)報文捕獲是整個平臺的最重要的程序之一,在主機(jī)上流動的網(wǎng)絡(luò)數(shù)據(jù)報文將會以列表和圖表的形式顯示在這個程序上。用戶在捕獲前可以設(shè)置過濾條件,只捕獲自己想要的數(shù)據(jù)報文。用戶還可以查看某一數(shù)據(jù)報文的詳細(xì)字段信息,分析所處的網(wǎng)絡(luò)環(huán)境的情況。本程序還將用狀態(tài)欄顯示當(dāng)前網(wǎng)卡的MAC地址、IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)和網(wǎng)速,更好地協(xié)助用戶分析網(wǎng)絡(luò)環(huán)境的狀況。
為了保證捕獲過程不會影響到應(yīng)用程序界面對用戶的及時響應(yīng),將開啟一個線程來捕獲數(shù)據(jù)報文,并且為了詳細(xì)解析數(shù)據(jù)報文該線程還要將數(shù)據(jù)報文寫到堆文件中保存。此外實時流量地監(jiān)控也應(yīng)該在線程中執(zhí)行。
1.4 數(shù)據(jù)報文構(gòu)造與發(fā)送模塊設(shè)計
數(shù)據(jù)報文構(gòu)造與發(fā)送也是整個平臺的重要程序之一,用戶可以使用本程序進(jìn)行數(shù)據(jù)報文的半自動化的構(gòu)造并發(fā)送到用戶定義的地址,實現(xiàn)ARP欺騙、PING、UDP數(shù)據(jù)傳輸和TCP SYN掃描等常見的網(wǎng)絡(luò)攻擊和掃描探測。
此外,為了讓用戶了解整個局域網(wǎng)的網(wǎng)絡(luò)狀況,將會局域網(wǎng)主機(jī)探測和端口掃描,給用戶提供數(shù)據(jù)包的發(fā)送對象和方便用戶填寫數(shù)據(jù)報文相關(guān)參數(shù)。與數(shù)據(jù)報文捕獲程序類似,本程序也會有一個狀態(tài)欄顯示當(dāng)前所使用網(wǎng)卡的MAC地址、IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)。
由于發(fā)送數(shù)據(jù)報文的數(shù)量往往需要循環(huán)發(fā)送,為了避免應(yīng)用程序界面卡死,所有發(fā)送數(shù)據(jù)報文的操作都將在線程中進(jìn)行。
1.5 DNS服務(wù)器設(shè)計
DNS服務(wù)器主要功能就是將發(fā)送到服務(wù)器上的DNS請求進(jìn)行解析,服務(wù)器將會把請求的內(nèi)容(如:域名)在用戶自己配置的HOST文件中查找對應(yīng)的記錄。如果找到,則將結(jié)果返回給請求者,如果沒有,則不進(jìn)行回應(yīng)。
DNS服務(wù)器主要由DNS解析構(gòu)造和DNS配置兩大部分組成。DNS服務(wù)器先配置好本地HOST文件,然后開始監(jiān)聽本地主機(jī)的53端口,將收到全部數(shù)據(jù)報文轉(zhuǎn)交給DNS解析構(gòu)造模塊處理,如果能解析成功,則將解析結(jié)果返回給請求者。
1.6 DHCP服務(wù)器設(shè)計
DHCP服務(wù)器主要是一個偽裝的服務(wù)器,用戶需要知道局域網(wǎng)有哪些可用的地址,然后簡單配置DHCP服務(wù)器,DHCP服務(wù)器啟動后會對局域網(wǎng)已存在的DHCP服務(wù)器進(jìn)行泛洪攻擊,讓其他DHCP服務(wù)器IP地址資源耗盡,這樣新加入局域網(wǎng)的主機(jī)就只能獲取本DHCP服務(wù)器提供的假冒IP地址和相關(guān)網(wǎng)絡(luò)信息,從而控制被攻擊者的網(wǎng)絡(luò)。
DHCP主要由DHCP解析,DHCP構(gòu)造,DHCP泛洪和DHCP假冒四個部分組成。本DHCP服務(wù)器會監(jiān)聽所有經(jīng)過操作系統(tǒng)67和68端口的所有數(shù)據(jù)包。分析數(shù)據(jù)包是DHCP報文類型。如果是局域網(wǎng)內(nèi)主機(jī)請求DHCP服務(wù)器分配IP地址的DHCP請求報文,則進(jìn)行DHCP欺騙攻擊。如果是局域網(wǎng)內(nèi)其他DHCP服務(wù)器回復(fù)給某臺主機(jī)的DHCP回復(fù)報文,則對那臺DHCP服務(wù)器進(jìn)行DHCP泛洪攻擊。
2 平臺在實驗教學(xué)中的應(yīng)用
本平臺能讓用戶在可控范圍內(nèi)使用真實的網(wǎng)絡(luò)環(huán)境,獲取真實的網(wǎng)絡(luò)數(shù)據(jù),開展真實的網(wǎng)絡(luò)攻擊與掃描探測,部署基本功能完備DNS服務(wù)器和DHCP服務(wù)器。用戶在使用本平臺學(xué)習(xí)的時候,能更加直觀真實的觀察網(wǎng)絡(luò)數(shù)據(jù)的流動和數(shù)據(jù)報文詳細(xì)信息,更直觀地面對各種網(wǎng)絡(luò)攻擊,學(xué)習(xí)網(wǎng)絡(luò)攻擊的特征。
3 結(jié)語
TCP/IP協(xié)議是Internet的網(wǎng)絡(luò)基礎(chǔ),而其核心不可能在短期內(nèi)進(jìn)行重新設(shè)計和部署實施,無法從根本上改變目前網(wǎng)絡(luò)面臨嚴(yán)重安全威脅的狀況。只有通過研究、學(xué)習(xí)常見攻擊的原理,才能給出相應(yīng)防范策略,通過部署一些監(jiān)測、預(yù)防與安全加固措施,增強(qiáng)網(wǎng)絡(luò)對已知攻擊的抵御能力。
本平臺所捕獲的數(shù)據(jù)報文真實,解析數(shù)據(jù)報文析詳細(xì),構(gòu)造數(shù)據(jù)報文完整,傳輸數(shù)據(jù)報文準(zhǔn)確,偽造的DNS服務(wù)器和DHCP服務(wù)器基本功能齊全,能完整地展現(xiàn)發(fā)生在局域網(wǎng)內(nèi)的常發(fā)生的網(wǎng)絡(luò)問題,用戶可以在可控范圍內(nèi)學(xué)習(xí)各種網(wǎng)絡(luò)攻擊與掃描探測方法,并自主研究如何防范網(wǎng)絡(luò)攻擊或屏蔽惡意地掃描監(jiān)測。
【參考文獻(xiàn)】
[1]呂雪峰,等.網(wǎng)絡(luò)分析技術(shù)揭秘[M].北京:機(jī)械工業(yè)出版社,2012.
[2]LawrenceBerkeley.TCP/IP詳解卷2:實現(xiàn)[M].北京:人民郵電出版社,2016.
[3]霍亞飛.Qt Creator快速入門[M].北京:北京航空航天大學(xué)出版社,2014.