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