版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 本科畢業(yè)設(shè)計(jì)(論文)</p><p><b> (二零 屆)</b></p><p><b> 泛洪攻擊設(shè)計(jì)與實(shí)現(xiàn)</b></p><p> 所在學(xué)院 </p><p> 專(zhuān)業(yè)班級(jí) 計(jì)算機(jī)科學(xué)與技術(shù)
2、 </p><p> 學(xué)生姓名 學(xué)號(hào) </p><p> 指導(dǎo)教師 職稱(chēng) </p><p> 完成日期 年 月 </p><p> 摘要:簡(jiǎn)述了泛洪攻擊的背景,詳細(xì)的介紹了TCP/IP協(xié)議首部格式和
3、與攻擊相關(guān)的面向連接的三次握手過(guò)程。之后對(duì)泛洪攻擊的概念和攻擊原理做了解析。本系統(tǒng)是以C++語(yǔ)言開(kāi)發(fā)。通過(guò)一個(gè)循環(huán)不停地改變和填充TCP/IP的首部并向被攻擊者發(fā)送,從而達(dá)到攻擊效果。本文還對(duì)泛洪攻擊的影響和危害做了一定闡述,并在此基礎(chǔ)上對(duì)其防御的措施進(jìn)行了一定建議。</p><p> 關(guān)鍵詞:DDoS;泛洪攻擊;三次握手;C++;解析;防御</p><p> Extensive fl
4、ood attack design and implementation</p><p> Abstract: Describes the background of generic flood attack, detailed introduces the TCP/IP protocol first format and and attack related connection-oriented hands
5、hake process three times. After the flood of functional concept and attack against the analytic principle. This system is developed in C + + language. Through a cycle constantly changing and filling of TCP/IP first and t
6、o send by an attacker, thus achieved the attack effect. This paper also to its attacks against the effect and harm floo</p><p> Key words: DDoS;flood attack; Shake hands three times;C++;Analytical;defense;&
7、lt;/p><p><b> 目錄</b></p><p><b> 1 緒論1</b></p><p> 1.1 課題背景1</p><p> 1.1.1 簡(jiǎn)介1</p><p> 1.1.2 國(guó)內(nèi)外實(shí)例記錄1</p><p>
8、 1.2 研究現(xiàn)狀2</p><p> 1.3 本課題研究的意義3</p><p> 2 相關(guān)理論基礎(chǔ)4</p><p> 2.1 TCP/IP協(xié)議4</p><p> 2.1.1 TCP簡(jiǎn)述4</p><p> 2.1.2 IP協(xié)議5</p><p> 2.2
9、 DoS及DDoS簡(jiǎn)述5</p><p> 2.3 泛洪攻擊簡(jiǎn)述8</p><p><b> 2.4 C++8</b></p><p> 2.4.1 C++的發(fā)展8</p><p> 3.4.2 C++的優(yōu)勢(shì)9</p><p> 2.5 開(kāi)發(fā)環(huán)境VC簡(jiǎn)介9</p
10、><p> 3 設(shè)計(jì)與實(shí)現(xiàn)10</p><p> 3.1 攻擊具體分析10</p><p> 3.1.1 基于TCP協(xié)議泛洪的分析10</p><p> 3.1.2 IP偽造11</p><p> 3.1.3 DDoS攻擊步驟11</p><p> 3.1.4 控制
11、與協(xié)同傀儡機(jī)12</p><p> 3.2程序設(shè)計(jì)14</p><p> 3.2.1 程序拓?fù)鋱D14</p><p> 3.2.2 TCP/IP首部定義14</p><p> 3.2.3 計(jì)算校驗(yàn)和15</p><p> 3.2.4 SynFlooding主函數(shù)16</p>
12、<p> 3.2.5 程序流程圖19</p><p> 3.3 攻擊測(cè)試20</p><p> 4 淺談泛洪攻擊的防御21</p><p> 4.1 DDoS攻擊防護(hù)機(jī)制21</p><p> 4.2 舉例防御22</p><p><b> 5 總結(jié)24</
13、b></p><p> 致 謝錯(cuò)誤!未定義書(shū)簽。</p><p><b> 參考文獻(xiàn)25</b></p><p><b> 1 緒論</b></p><p><b> 1.1 課題背景</b></p><p><b>
14、1.1.1 簡(jiǎn)介</b></p><p> 隨著科技的發(fā)展,人們生活質(zhì)量的提升,Internet和個(gè)人電腦也在迅速的發(fā)展和普及。給人們帶來(lái)各種學(xué)習(xí),工作和娛樂(lè)方便的同時(shí)也帶來(lái)了許多問(wèn)題,計(jì)算機(jī)安全,網(wǎng)絡(luò)安全就是其中之一。各種網(wǎng)絡(luò)黑客技術(shù),安全隱患層出不窮。因此針對(duì)這些問(wèn)題也就有了論證和研究乃至破解的必要,而要徹底的破解這些安全問(wèn)題,首先要做的就是對(duì)它進(jìn)行深刻的理解。因此對(duì)近年來(lái)比較常見(jiàn)的泛洪攻擊小
15、作論述,希望有所裨益。</p><p> 而隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,在計(jì)算機(jī)上處理的業(yè)務(wù)也由簡(jiǎn)單的數(shù)學(xué)運(yùn)算、文件處理,連接的內(nèi)部網(wǎng)絡(luò)的一些內(nèi)部業(yè)務(wù)處理等發(fā)展到復(fù)雜的內(nèi)部網(wǎng)、企業(yè)外部網(wǎng)、全球互聯(lián)網(wǎng)的企業(yè)級(jí)計(jì)算機(jī)處理系統(tǒng)以及世界范圍內(nèi)的信息共享和業(yè)務(wù)處理。在提高系統(tǒng)處理能力的同時(shí),系統(tǒng)的連接能力也在不斷的提高。但在連接信息、流通能力提高的同時(shí),在網(wǎng)絡(luò)連接上的安全問(wèn)題也日漸突出,整體的網(wǎng)絡(luò)安全主要表現(xiàn)在以下幾個(gè)方面
16、:網(wǎng)絡(luò)的物理安全、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)安全、網(wǎng)絡(luò)系統(tǒng)安全、應(yīng)用系統(tǒng)安全和網(wǎng)絡(luò)管理的安全等。 </p><p> 因此計(jì)算機(jī)安全問(wèn)題,應(yīng)該像每家每戶(hù)的防火防盜問(wèn)題一樣,做到防范于未然。也許不知道什么時(shí)候你自己也會(huì)成為被攻擊目標(biāo),一旦發(fā)生這些情況,常常措手不及,造成極大的損失。</p><p> 1.1.2 國(guó)內(nèi)外實(shí)例記錄</p><p> DDOS 最早可追述到199
17、6年最初,在中國(guó)2002年開(kāi)始頻繁出現(xiàn),2003年已經(jīng)頗具規(guī)模。近幾年由于網(wǎng)絡(luò)的普及,很多網(wǎng)站開(kāi)始盈利,其中很多網(wǎng)站利潤(rùn)巨大,造成同行之間互相攻擊,還有一部分人利用網(wǎng)絡(luò)攻擊來(lái)做一些非法活動(dòng)如敲詐勒索等。同時(shí)由于windows平臺(tái)的漏洞大量的被公布,流氓軟件,病毒,木馬大量充斥著網(wǎng)絡(luò)。有些熟悉網(wǎng)絡(luò)技術(shù)的人可以很容易地非法入侵控制大量的個(gè)人計(jì)算機(jī)來(lái)發(fā)起DDOS攻擊從中謀利。攻擊已經(jīng)成為互聯(lián)網(wǎng)上的一種最直接的競(jìng)爭(zhēng)方式,在利益的驅(qū)使下,攻擊已經(jīng)
18、演變成非常完善的產(chǎn)業(yè)鏈。</p><p> 下面是一些收集到得真實(shí)的網(wǎng)絡(luò)攻擊事件。其大部分來(lái)自文獻(xiàn)[3]的整理歸類(lèi):</p><p> 1996年初,美國(guó)舊金山的計(jì)算機(jī)安全協(xié)會(huì)與聯(lián)邦調(diào)查局通過(guò)一次聯(lián)合調(diào)查的數(shù)據(jù)顯示,有53%的企業(yè)受到過(guò)計(jì)算機(jī)病毒的侵害,有42%的企業(yè)的計(jì)算機(jī)系統(tǒng)在過(guò)去的12個(gè)月被非法使用過(guò)。同年,據(jù)五角大樓的一個(gè)研究小組稱(chēng)美國(guó)一年中遭受的網(wǎng)絡(luò)攻擊就達(dá)25萬(wàn)次之多。 &
19、lt;/p><p> 1994年末,俄羅斯黑客弗拉基米爾·利維與其伙伴從圣彼得堡的一家小軟件公司的聯(lián)網(wǎng)計(jì)算機(jī)上,向美國(guó)CITYBANK銀行發(fā)動(dòng)了一連串攻擊,通過(guò)電子轉(zhuǎn)帳方式,從CITYBANK銀行在紐約的計(jì)算機(jī)主機(jī)里竊取1100萬(wàn)美元。 </p><p> 1996年8月17日,美國(guó)司法部的網(wǎng)絡(luò)服務(wù)器曾遭到黑客入侵,并將“ 美國(guó)司法部” 的主頁(yè)改為“ 美國(guó)不公正部” ,甚至將司法
20、部部長(zhǎng)的照片換成了阿道夫·希特勒,將司法部徽章?lián)Q成了納粹黨徽,并加上一幅色情女郎的圖片作為所謂司法部部長(zhǎng)的助手。此外還留下了很多攻擊美國(guó)司法政策的文字。 </p><p> 1996年9月18日,黑客光顧了美國(guó)中央情報(bào)局的網(wǎng)絡(luò)服務(wù)器,將其主頁(yè)由“中央情報(bào)局” 改為“ 中央愚蠢局”。 </p><p> 1996年12月29日,黑客侵入美國(guó)空軍的全球網(wǎng)網(wǎng)址并將其主頁(yè)肆意改動(dòng),其
21、中有關(guān)空軍介紹、新聞發(fā)布等內(nèi)容被替換成一段簡(jiǎn)短的黃色錄象,且聲稱(chēng)美國(guó)政府所說(shuō)的一切都是謊言。迫使美國(guó)國(guó)防部一度關(guān)閉了其他80多個(gè)軍方網(wǎng)址。 </p><p> 1996年2月,剛開(kāi)通不久的Chinanet受到攻擊。 </p><p> 1997年初,北京某ISP被黑客成功侵入,并將如何免費(fèi)通過(guò)其ISP進(jìn)入Internet的方法公布在清華大學(xué)的BBS上。</p><p
22、> 1997年4月23日,一個(gè)遠(yuǎn)在美國(guó)德克薩斯某網(wǎng)絡(luò)的公司的PPP用戶(hù)成功侵入中國(guó)互聯(lián)網(wǎng)信息中心的服務(wù)器,破譯了系統(tǒng)賬戶(hù)并把中國(guó)互聯(lián)網(wǎng)信息中心的主頁(yè)換成了一個(gè)骷髏頭。</p><p> 1996年初,CHINANET受到某高校的一個(gè)研究生的攻擊。96年秋,北京某用戶(hù)因與某ISP的矛盾而攻擊了改ISP服務(wù)器,導(dǎo)致了改服務(wù)器數(shù)小時(shí)的中斷。</p><p> 從以上實(shí)例不難看出網(wǎng)絡(luò)安
23、全的重要性。隨著人們對(duì)網(wǎng)絡(luò)安全的重視,這也促使了對(duì)各種網(wǎng)絡(luò)攻擊的防御措施的發(fā)展。但是可以看到網(wǎng)絡(luò)攻擊的手段也在同時(shí)出現(xiàn)了大量的新型攻擊,而原有的攻擊也或多或少的進(jìn)化和變異,使攻擊形式趨向于多樣化、綜合化。而我所研究的泛洪攻擊也正是其中一種比較常見(jiàn)的DdoS攻擊的一種類(lèi)型。</p><p><b> 1.2 研究現(xiàn)狀</b></p><p> 從以上實(shí)例不難看出網(wǎng)
24、絡(luò)安全的重要性。隨著人們對(duì)網(wǎng)絡(luò)安全的重視,這也促使了對(duì)各種網(wǎng)絡(luò)攻擊的防御措施的發(fā)展。但是可以看到網(wǎng)絡(luò)攻擊的手段也在同時(shí)出現(xiàn)了大量的新型攻擊,而原有的攻擊也或多或少的進(jìn)化和變異,使攻擊形式趨向于多樣化、綜合化。而我所研究的泛洪攻擊也正是其中一種比較常見(jiàn)的DDoS攻擊的一種類(lèi)型。</p><p> DDoS全名是Distributed Denial of service (分布式拒絕服務(wù)攻擊),很多DOS攻擊源一起
25、攻擊某臺(tái)服務(wù)器就組成了DDOS攻擊。第一次的DDoS攻擊發(fā)生在1994年,在一個(gè)只有10多個(gè)主機(jī)的較小網(wǎng)絡(luò)上。它利用了TCP/IP的漏洞和最小寬帶特點(diǎn)結(jié)合ICMP泛洪攻擊進(jìn)行了組合式的綜合攻擊。之后一年,出現(xiàn)了新的攻擊工具,如trinoo,攻擊者通過(guò)盡量降低系統(tǒng)安全來(lái)大大的提高攻擊的力度。2000年2月,eBay,CNN,Buy.com,Amazon,雅虎電子貿(mào)易和 ZDNet 都受到過(guò) DDOS 攻擊。使所有公司都遭受到了巨大的經(jīng)濟(jì)損
26、失。</p><p> 作個(gè)形象的比喻來(lái)理解DDoS。街頭的餐館為大眾提供了餐飲服務(wù),假如一群地痞流氓要攻擊餐館的話,手段會(huì)有很多,比如霸占著餐桌不結(jié)賬,堵住餐館大門(mén)不讓路,騷擾餐館的服務(wù)員或廚師不能正常干活,甚至更惡劣……相應(yīng)的,計(jì)算機(jī)和網(wǎng)絡(luò)系統(tǒng)是為Internet用戶(hù)提供互聯(lián)網(wǎng)資源的,如果有黑客要進(jìn)行DDoS攻擊的話,同樣有很多種手段可以使用。今天最常見(jiàn)的DDoS攻擊有對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的帶寬攻擊和連通性攻擊。帶
27、寬攻擊指用極大的通信量沖擊網(wǎng)絡(luò),使得所有可用網(wǎng)絡(luò)資源都被消耗殆盡,最后導(dǎo)致合法的用戶(hù)請(qǐng)求無(wú)法通過(guò)。連通性攻擊指隊(duì)計(jì)算機(jī)用大量的連接請(qǐng)求,讓所有可用的操作系統(tǒng)資源都被消耗殆盡,導(dǎo)致計(jì)算機(jī)無(wú)法再正常處理合法用戶(hù)的請(qǐng)求。 </p><p> 現(xiàn)在針對(duì)DDoS攻擊的防御研究在不斷的進(jìn)行。歸納之下主要有以下幾種:</p><p> (1)優(yōu)化系統(tǒng)。通過(guò)優(yōu)化系統(tǒng)提高自身對(duì)DDoS攻擊的響應(yīng)能力。&
28、lt;/p><p> (2)網(wǎng)絡(luò)追查 。當(dāng)遭受攻擊時(shí),系統(tǒng)的管理人員通過(guò)詢(xún)問(wèn)上一級(jí)的網(wǎng)絡(luò)運(yùn)營(yíng)商,了解攻擊來(lái)源。</p><p> ?。?)提高硬件。有的人試圖以購(gòu)買(mǎi)硬件來(lái)提高系統(tǒng)的性能,來(lái)抵御攻擊。但這種方法性?xún)r(jià)比較低,且只能減緩一部分攻擊效果,并不能有效防御DDoS攻擊。</p><p> ?。?)基于路由器。通過(guò)在路由器上設(shè)置一定的措施可以有效的過(guò)濾一點(diǎn)的非法流量
29、。</p><p> ?。?)基于防火墻。雖然防火墻能很好的防御,但是其對(duì)攻擊的檢測(cè)能力較低,使得往往導(dǎo)致為了防御攻擊而拒絕整個(gè)網(wǎng)絡(luò)服務(wù)的情況出現(xiàn)。</p><p> ?。?)入侵檢測(cè)。對(duì)攻擊的及時(shí)檢測(cè)是防護(hù)的關(guān)鍵,也能大大降低攻擊效果,但是現(xiàn)在的檢測(cè)機(jī)制仍不完備,不能完全防御攻擊。</p><p> 1.3 本課題研究的意義</p><p&
30、gt; 泛洪攻擊是出現(xiàn)較早也較常見(jiàn)的網(wǎng)絡(luò)攻擊手段,所以它很具有研究?jī)r(jià)值。它利用的是TCP/IP協(xié)議的固有漏洞進(jìn)行攻擊,它的出現(xiàn)暴露了協(xié)議的缺陷,使人們有機(jī)會(huì)去完善網(wǎng)絡(luò)中類(lèi)似這樣的缺陷。同樣的道理,反過(guò)來(lái)說(shuō)這也促使了黑客攻擊人士去多元化的改良黑客攻擊手段。就是這樣類(lèi)似道高一尺魔高一丈的雙向循環(huán)下,互相提高。這也是本課題的研究意義之一。</p><p> 其實(shí),關(guān)于黑客方面的知識(shí)對(duì)我來(lái)說(shuō)是一個(gè)全新的領(lǐng)域,一個(gè)從未
31、接觸過(guò)的世界。以前也只是只見(jiàn)聞其“聲”,不明其所以。這樣一來(lái)對(duì)設(shè)計(jì)和研究方面增加了很大的難度。本課題致力于實(shí)現(xiàn)一個(gè)簡(jiǎn)單的泛洪攻擊,或者說(shuō)用設(shè)計(jì)來(lái)達(dá)到模擬這種攻擊手段,從而能更了解這種攻擊。包括其擁有怎樣的特性,有什么優(yōu)點(diǎn),又有什么樣的弱點(diǎn),從而促使針對(duì)其防御的發(fā)展。</p><p><b> 2 相關(guān)理論基礎(chǔ)</b></p><p> 2.1 TCP/IP協(xié)議
32、</p><p> TCP/IP協(xié)議(Transmission Control Protocol/Internet Protocol)在網(wǎng)絡(luò)運(yùn)輸層上提供面向連接的服務(wù)。圖2-1為T(mén)CP連接的建立過(guò)程。</p><p> 圖2-1 TCP連接的建立過(guò)程</p><p> 2.1.1 TCP簡(jiǎn)述</p><p> TCP是通過(guò)以下特點(diǎn)來(lái)
33、提供面向連接的服務(wù)的:</p><p> ?。?)差錯(cuò)控制:TCP通過(guò)收到的確認(rèn)信息來(lái)反應(yīng)對(duì)視或順序錯(cuò)亂的數(shù)據(jù)。通過(guò)超時(shí)和重傳機(jī)制來(lái)保證數(shù)據(jù)傳輸?shù)耐暾?,以達(dá)到可靠的連接服務(wù)。</p><p> ?。?)流量控制:TCP用過(guò)滑動(dòng)窗口流量控制機(jī)制來(lái)防止接受緩沖區(qū)的溢出。</p><p> ?。?)擁塞控制:TCP通過(guò)慢啟動(dòng)、擁塞避免、快速重傳等機(jī)制來(lái)適應(yīng)阻塞。<
34、/p><p> TCP的首部格式如下圖2-2所示:</p><p> 圖2-2 TCP首部格式</p><p> 2.1.2 IP協(xié)議</p><p> IP協(xié)議主要負(fù)責(zé)數(shù)據(jù)包的處理或者說(shuō)傳輸。但是因其傳輸只會(huì)針對(duì)數(shù)據(jù)包本身進(jìn)行處理,不會(huì)考慮到其他方面,所以其傳輸是不可靠的。</p><p> IP的首部格式如
35、下圖2-3所示:</p><p> 圖2-3 IP首部格式</p><p> 2.2 DoS及DDoS簡(jiǎn)述</p><p> DoS攻擊是用拒絕網(wǎng)絡(luò)中合法用戶(hù)對(duì)服務(wù)器的訪問(wèn),以達(dá)到破壞網(wǎng)路正常運(yùn)行的目的。DoS攻擊的攻擊方式有很多,在文獻(xiàn)[2]中對(duì)常見(jiàn)的DoS攻擊進(jìn)行了歸納,基本可分為一下3類(lèi):</p><p> (1)帶寬DoS
36、攻擊。這是一種初級(jí)的DoS攻擊方法,原理是利用高帶寬消耗服務(wù)器緩沖區(qū),從而消耗服務(wù)器的帶寬。</p><p> (2)日志文件滿(mǎn)載攻擊。通過(guò)構(gòu)造大量的錯(cuò)誤信息發(fā)送,使服務(wù)器 日志文件因?yàn)橛涗涍@些錯(cuò)誤信息而變得非常龐大。</p><p> ?。?)在Windows的SMB實(shí)現(xiàn)的DoS攻擊。其只要允許匿名連接的Windows操作系統(tǒng)就可以進(jìn)行遠(yuǎn)程攻擊。</p><p>
37、; DDoS攻擊,也稱(chēng)拒絕服務(wù)攻擊,是在DoS攻擊基礎(chǔ)上產(chǎn)生的一類(lèi)攻擊方法,也是目前比較常見(jiàn)的一種網(wǎng)絡(luò)攻擊方式。之前提到的DoS攻擊一般是采用一對(duì)一方式的,當(dāng)被攻擊目標(biāo)的CPU速度較低、內(nèi)存較小或者網(wǎng)絡(luò)帶寬較小等等各項(xiàng)性能普遍指標(biāo)不高的時(shí)候,它的攻擊效果是明顯的。但是隨著計(jì)算機(jī)與網(wǎng)絡(luò)技術(shù)迅猛的發(fā)展,計(jì)算機(jī)的處理能力迅速增長(zhǎng),內(nèi)存大大增加,同時(shí)也出現(xiàn)了千兆級(jí)別的網(wǎng)絡(luò),這使得DoS攻擊的困難程度加大了。或者說(shuō)被攻擊的目標(biāo)對(duì)惡意攻擊包的&q
38、uot;消化能力"加強(qiáng)了不少,例如你的攻擊軟件每秒鐘可以發(fā)送3,000個(gè)攻擊包,但我的主機(jī)與網(wǎng)絡(luò)帶寬每秒鐘可以處理10,000個(gè)攻擊包,這樣一來(lái)攻擊就不會(huì)產(chǎn)生什么效果。 </p><p> 這時(shí)候分布式的拒絕服務(wù)攻擊手段(DDoS)就應(yīng)運(yùn)而生了。它同樣是通過(guò)消耗網(wǎng)絡(luò)寬代或者系統(tǒng)資源,進(jìn)而導(dǎo)致網(wǎng)絡(luò)或者系統(tǒng)超負(fù)荷甚至癱瘓而停止提供正常網(wǎng)絡(luò)服務(wù)。不同的在于如果說(shuō)計(jì)算機(jī)與網(wǎng)絡(luò)的處理能力加大了10倍,用一臺(tái)攻擊
39、機(jī)來(lái)攻擊不再能起作用的話,攻擊者使用10臺(tái)攻擊機(jī)同時(shí)攻擊呢?用100臺(tái)呢?DDoS就是利用更多的傀儡機(jī)來(lái)發(fā)起進(jìn)攻,以比從前更大的規(guī)模來(lái)進(jìn)攻受害者。</p><p> 在文獻(xiàn)[14]中簡(jiǎn)要的對(duì)DDoS攻擊的特點(diǎn)進(jìn)行了歸納,可分為一下幾點(diǎn):</p><p> ?。?)分布式:攻擊者通過(guò)控制許多傀儡機(jī)完成協(xié)同攻擊。</p><p> ?。?)實(shí)行欺騙:攻擊者一般會(huì)采取I
40、P欺騙或者控制其他主機(jī)發(fā)動(dòng)攻擊等手段來(lái)隱藏自己,使其不易被追蹤。</p><p> (3)攻擊發(fā)起容易:由于現(xiàn)下DDoS攻擊工具在網(wǎng)上的泛濫,使其使用的門(mén)檻不斷變低,易用人群大大增加。</p><p> ?。?)攻擊特征不明顯:因?yàn)镈DoS攻擊利用的是協(xié)議的固有漏洞,使“看上去”合法的攻擊報(bào)文很難被一般的防御系統(tǒng)辨別,也就造成了其很難被完全防御的情況。</p><p&
41、gt; (5)威力強(qiáng),破壞力大:DDoS攻擊一經(jīng)發(fā)起,往往會(huì)借助大量的傀儡機(jī),這會(huì)使得被攻擊者所要面對(duì)的攻擊流會(huì)非常大,使得其造成的危害也更嚴(yán)重。</p><p> 但是無(wú)論是DoS攻擊還是DDoS攻擊,簡(jiǎn)單的看,都只是一種破壞網(wǎng)絡(luò)服務(wù)的黑客方式,雖然具體的實(shí)現(xiàn)方式千變?nèi)f化,但都有一個(gè)共同點(diǎn),就是其根本目的是使受害主機(jī)或網(wǎng)絡(luò)無(wú)法及時(shí)接收并處理外界請(qǐng)求,或無(wú)法及時(shí)回應(yīng)外界請(qǐng)求。其具體表現(xiàn)方式有以下幾種: <
42、;/p><p> (1)制造大流量無(wú)用數(shù)據(jù),造成通往被攻擊主機(jī)的網(wǎng)絡(luò)擁塞,使被攻擊主機(jī)無(wú)法正常和外界通信。 </p><p> ?。?)利用被攻擊主機(jī)提供服務(wù)或傳輸協(xié)議上處理重復(fù)連接的缺陷,反復(fù)高頻的發(fā)出攻擊性的重復(fù)服務(wù)請(qǐng)求,使被攻擊主機(jī)無(wú)法及時(shí)處理其它正常的請(qǐng)求。 </p><p> ?。?)利用被攻擊主機(jī)所提供服務(wù)程序或傳輸協(xié)議的本身實(shí)現(xiàn)缺陷,反復(fù)發(fā)送畸形的攻擊數(shù)
43、據(jù)引發(fā)系統(tǒng)錯(cuò)誤的分配大量系統(tǒng)資源,使主機(jī)處于掛起狀態(tài)甚至死機(jī)。</p><p> 圖2-4 DDoS攻擊體系圖</p><p> 文獻(xiàn)[6]中對(duì)一個(gè)比較完整的DDoS攻擊體系結(jié)構(gòu)作出了很清晰的示意,如圖2-4所示。其將整個(gè)攻擊分成四個(gè)部分,其中第二和第三部分最為重要,他們的作用分別是控制和實(shí)際發(fā)起攻擊。這里需要注意到的是控制機(jī)和攻擊機(jī)的區(qū)別。對(duì)于作為第四部分的受害者來(lái)說(shuō),DDoS的實(shí)
44、際攻擊是從第三部分也就是數(shù)量眾多的傀儡機(jī)上發(fā)出的,而第二部分的控制機(jī)只負(fù)責(zé)對(duì)第三部分的攻擊傀儡機(jī)發(fā)布攻擊命令而不會(huì)參與到實(shí)際的攻擊中去。對(duì)于第二和第三部分的計(jì)算機(jī),攻擊者,也就是第一部分的黑客具有控制權(quán)或者部分控制權(quán)。這里所說(shuō)的控制權(quán)必須具備的是將響應(yīng)的DDoS程序發(fā)送到本機(jī)平臺(tái)上的能力。而這些DDoS程序會(huì)與正常的程序一樣運(yùn)行并等待來(lái)自上一級(jí)或者攻擊者的指令。通常它還會(huì)利用各種手段想方設(shè)法隱藏自己存在的消除痕跡,以此確保自己不被別機(jī)主
45、發(fā)現(xiàn),達(dá)到黑客長(zhǎng)期控制和潛伏的目的。而在平時(shí),這些傀儡機(jī)并不會(huì)有什么異常,這就加大了機(jī)主發(fā)現(xiàn)的難度。但是一旦黑客連接到他們指示目標(biāo)信息并下達(dá)對(duì)目標(biāo)的攻擊指令時(shí),這些傀儡機(jī)就成為了攻擊者手上最有力的工具和力量了。</p><p> 由文獻(xiàn)[7]對(duì)DDoS攻擊和DoS攻擊所作的闡述得它們2者的比較如下表1所示。</p><p> 表2-1 DDoS攻擊和DoS攻擊比較</p>
46、<p> 2.3 泛洪攻擊簡(jiǎn)述</p><p> 泛洪攻擊,也稱(chēng)SYN Flooding攻擊。SYN Flooding攻擊時(shí)利用TCP/IP協(xié)議的固有漏洞,對(duì)網(wǎng)絡(luò)中的客戶(hù)機(jī)、服務(wù)器進(jìn)行的一種網(wǎng)絡(luò)攻擊形式[1]。其原理是通過(guò)偽造一個(gè)報(bào)文向服務(wù)器申請(qǐng)連接,而其源地址僅為偽造或者根本不存在的地址,當(dāng)服務(wù)器接收到報(bào)文發(fā)送的SYN報(bào)文應(yīng)答時(shí),由于攻擊報(bào)文的源地址的不可達(dá),導(dǎo)致等待不到報(bào)文,這樣便造成了一
47、個(gè)半開(kāi)的連接,但是在這個(gè)過(guò)程中服務(wù)器依舊處于應(yīng)答的狀態(tài),并沒(méi)有完全斷開(kāi),這就造成了服務(wù)器資源的一定占用。由此當(dāng)攻擊者發(fā)送大量報(bào)文時(shí),服務(wù)器會(huì)的大量系統(tǒng)資源會(huì)被消耗,導(dǎo)致其他正常訪問(wèn)服務(wù)器的用戶(hù)無(wú)法正常訪問(wèn)。</p><p><b> 2.4 C++</b></p><p> C++語(yǔ)言是一種面向?qū)ο蟮母呒?jí)編程語(yǔ)言。它從C語(yǔ)言發(fā)展而來(lái),并且兼容C語(yǔ)言的所有語(yǔ)法,在此
48、基礎(chǔ)上進(jìn)行發(fā)展和完善,是十分強(qiáng)大實(shí)用性很強(qiáng)的編程語(yǔ)言。</p><p> 2.4.1 C++的發(fā)展</p><p> C++這個(gè)詞在中國(guó)通常被讀做“C加加”,而西方的程序員通常讀做“C plus plus”,即“CPP”。 它是一種使用十分廣泛的計(jì)算機(jī)編程語(yǔ)言。C++是一種靜態(tài)數(shù)據(jù)類(lèi)型檢查的通用程序設(shè)計(jì)語(yǔ)言,支持多重編程范式。它具有支持過(guò)程化程序設(shè)計(jì)、數(shù)據(jù)抽象、面向?qū)ο蟪绦蛟O(shè)計(jì)、制作
49、圖標(biāo)等多種程序設(shè)計(jì)風(fēng)格的特點(diǎn)</p><p> C++語(yǔ)言發(fā)展大概可以分為三個(gè)階段: </p><p> 第一階段從80年代到1995年。這一時(shí)期C++語(yǔ)言基本上是傳統(tǒng)類(lèi)型上的面向?qū)ο笳Z(yǔ)言,并且憑借著接近C語(yǔ)言的效率,在工業(yè)界使用的開(kāi)發(fā)語(yǔ)言中被廣泛使用; </p><p> 第二階段從1995年到2000年,這一階段因?yàn)闃?biāo)準(zhǔn)模板庫(kù)(STL)和后來(lái)的Boost等
50、程序庫(kù)的出現(xiàn),泛型程序設(shè)計(jì)在C++中占據(jù)了越來(lái)越多的比重。同時(shí)由于Java、C#等新語(yǔ)言的出現(xiàn)以及硬件價(jià)格的大規(guī)模下降,C++受到了一定的沖擊; </p><p> 第三階段從2000年至今,由于以Loki、MPL等程序庫(kù)為代表的產(chǎn)生式編程和模板元編程的出現(xiàn),C++達(dá)到了其發(fā)展史上的又一個(gè)高峰,這些新技術(shù)的出現(xiàn)以及和原有技術(shù)的融合,使C++成為當(dāng)今主流程序設(shè)計(jì)語(yǔ)言中綜合而又復(fù)雜的語(yǔ)言。</p>&
51、lt;p> 3.4.2 C++的優(yōu)勢(shì)</p><p> ?。?)兼容性。C++是一種絕對(duì)不會(huì)試圖迎合某個(gè)模子的語(yǔ)言。它的形式可以變化多端,用以解決不同類(lèi)型的問(wèn)題。這主要反映在象Microsoft Visual C++和Borland C++ Builder那樣的工具身上。它們將庫(kù)、組件模型以及代碼生成工具等等合成到一起,以開(kāi)發(fā)可視化的用戶(hù)應(yīng)用。與C語(yǔ)言一樣具有高效且可移植等的特點(diǎn)。</p>
52、<p> (2)性?xún)r(jià)比高。傳統(tǒng)上認(rèn)為,C++相對(duì)于現(xiàn)在一些新興的語(yǔ)言,如Java、C#等,優(yōu)勢(shì)在于程序的運(yùn)行性能。但這種觀念并不完全正確。因?yàn)楸娝苤S著CPU性能的快速提升,性能問(wèn)題已不是問(wèn)題所在。而另一方面,一般認(rèn)為使用Java或C#的開(kāi)發(fā)成本比C++低。但是,如果能夠充分分析C++和這些語(yǔ)言的差別,就會(huì)發(fā)現(xiàn)這句話只有在特定條件下才成立。這個(gè)條件就是:軟件規(guī)模和復(fù)雜度都比較小。如果不超過(guò)3萬(wàn)行有效代碼(不包括生成器產(chǎn)生
53、的代碼),這句話基本上還能成立。反之,隨著代碼量和復(fù)雜度的增加,C++的優(yōu)勢(shì)將會(huì)越來(lái)越明顯。造成這種差別的就是C++的軟件工程性。在Java和C#大談軟件工程的時(shí)候,C++實(shí)際上已經(jīng)將軟件工程性提升到另一個(gè)高度。這一點(diǎn)被多數(shù)人忽視。</p><p> ?。?)面向?qū)ο?。C++作為一種面向?qū)ο蟮牡木幊陶Z(yǔ)言,使得其程序結(jié)構(gòu)更合理,無(wú)論在閱讀、理解或者擴(kuò)充上更方便。 </p><p> 2.5
54、 開(kāi)發(fā)環(huán)境VC簡(jiǎn)介</p><p> VC是Visual C++的縮寫(xiě),是一款由微軟發(fā)布基于Windows系統(tǒng)的C++開(kāi)發(fā)平臺(tái),有微軟可視化C加加的意思。開(kāi)發(fā)人員只需用 Basic 語(yǔ)言寫(xiě)出邏輯控制部分的程序代碼,而界面只需要用 Visual Basic 提供的工具繪制一下就可以了,不再需要像過(guò)去一樣要通過(guò)書(shū)寫(xiě)很復(fù)雜的代碼來(lái)實(shí)現(xiàn)。VC的源程序按C++語(yǔ)言的要求編寫(xiě),并加入了微軟提供的功能強(qiáng)大的MFC(Micr
55、osoft Foundation Class)類(lèi)庫(kù),充分體現(xiàn)了微軟公司的技術(shù)精華。配套有MFC等項(xiàng)目開(kāi)發(fā)工具,它和Borland C++一樣,都可以進(jìn)行C++語(yǔ)言的編譯。使用VC提供的高度可視化的應(yīng)用程序開(kāi)發(fā)工具和MFC類(lèi)庫(kù),可使應(yīng)用程序開(kāi)發(fā)變得更簡(jiǎn)單。MFC提供的類(lèi)庫(kù)是高度抽象的程序設(shè)計(jì),它使得程序員的精力不再在程序設(shè)計(jì)的具體細(xì)節(jié)實(shí)現(xiàn)上消耗太多,從而更好的在功能擴(kuò)展上面投入充足的精力。 </p><p><
56、;b> 3 設(shè)計(jì)與實(shí)現(xiàn)</b></p><p> 3.1 攻擊具體分析</p><p> 3.1.1 基于TCP協(xié)議泛洪的分析</p><p> 前文已經(jīng)提到SYNFlood攻擊是DoS攻擊的一種,它利用TCP/IP協(xié)議的漏洞完成攻擊。文獻(xiàn)[1]中提到通常一次TCP連接的建立包括3個(gè)步驟,客戶(hù)端發(fā)送SYN包給服務(wù)器端,服務(wù)器分配一定的
57、資源給這里連接并返回SYN/ACK包,并等待連接建立的最后的ACK包,最后客戶(hù)端發(fā)送ACK報(bào)文,這樣兩者之間的連接建立起來(lái),并可以通過(guò)連接傳送數(shù)據(jù)了。而攻擊的過(guò)程就是瘋狂發(fā)送SYN報(bào)文,而不返回ACK報(bào)文,服務(wù)器占用過(guò)多資源,而導(dǎo)致系統(tǒng)資源占用過(guò)多,沒(méi)有能力響應(yīng)別的操作,或者不能響應(yīng)正常的網(wǎng)絡(luò)請(qǐng)求。</p><p> 圖3-1 TCP三次握手</p><p> 如圖3-1所示,正是T
58、CP的三次握手,同時(shí)也是泛洪攻擊所要利用的協(xié)議漏洞所在。第一次握手:建立連接時(shí),客戶(hù)端發(fā)送請(qǐng)求包SYN(SEQ=k)到服務(wù)器,并進(jìn)入SYN—SEND狀態(tài),等待服務(wù)器確認(rèn),請(qǐng)求標(biāo)志syn=1;第二次握手:服務(wù)器收到請(qǐng)求包,必須確認(rèn)客戶(hù)的請(qǐng)求包(ACK=k+1),同時(shí)自己也發(fā)送一個(gè)應(yīng)答包(SEQ=q),即SYN十ACK包,此時(shí)服務(wù)器進(jìn)入SYN.RECV狀態(tài),應(yīng)答標(biāo)志ack=1;第三次握手:客戶(hù)端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)
59、包ACI((SEQ:q+1),此包發(fā)送完畢,客戶(hù)端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。而泛洪攻擊正是在第三次握手時(shí)將“手”握住不放,同時(shí)繼續(xù)申請(qǐng)握手,以此消耗受害者資源。</p><p> 這里提到的SYN (synchronize) 是TCP/IP建立連接時(shí)使用的握手信號(hào)。在客戶(hù)機(jī)和服務(wù)器之間建立正常的TCP網(wǎng)絡(luò)連接時(shí),客戶(hù)機(jī)首先發(fā)出的就是SYN消息,服務(wù)器使用SYN-ACK應(yīng)答表示接收到了
60、這個(gè)消息,最后客戶(hù)機(jī)再以ACK消息響應(yīng)。這樣在客戶(hù)機(jī)和服務(wù)器之間才能建立起可靠的TCP連接,數(shù)據(jù)才可以在客戶(hù)機(jī)和服務(wù)器之間傳遞。</p><p> ACK (ACKnowledge Character)也稱(chēng)確認(rèn)字符。在數(shù)據(jù)通信傳輸中,是位于TCP數(shù)據(jù)包首部中的確認(rèn)標(biāo)志。接收站發(fā)給發(fā)送站的一種傳輸控制字符。它表示確認(rèn)發(fā)來(lái)的數(shù)據(jù)已經(jīng)接受無(wú)誤。通常ACK信號(hào)有自己固定的格式,而長(zhǎng)度大小,由接受方回復(fù)給發(fā)送方。其格式取
61、決于采取的網(wǎng)絡(luò)協(xié)議。當(dāng)發(fā)送方接收到ACK信號(hào)時(shí),就可以發(fā)送下一個(gè)數(shù)據(jù)。如果發(fā)送方?jīng)]有收到信號(hào),那么發(fā)送方可能會(huì)重新發(fā)送當(dāng)前的數(shù)據(jù)包,也可能停止傳送數(shù)據(jù)。具體情況取決于所采用的網(wǎng)絡(luò)協(xié)議。ACK信號(hào)通常是一個(gè)ASCII字符,不同的協(xié)議中ACK信號(hào)都不一樣。</p><p> 3.1.2 IP偽造</p><p> 當(dāng)其實(shí)施攻擊的時(shí)候,涉及到了如偽造IP地址TCP序列號(hào)的猜測(cè)等多種相應(yīng)知識(shí)
62、。</p><p> IP地址的偽造很容易實(shí)現(xiàn),及其實(shí)現(xiàn)形式并不復(fù)雜。在文獻(xiàn)[5]中對(duì)如何進(jìn)行IP地址偽造進(jìn)行了簡(jiǎn)述。首先創(chuàng)建一個(gè)具有IP報(bào)文格式的結(jié)構(gòu),然后在該結(jié)構(gòu)中源地址一項(xiàng)上填寫(xiě)虛假的IP地址,最后將該報(bào)文寫(xiě)入輸出設(shè)備發(fā)向Intemet。攻擊者猜測(cè)目標(biāo)主機(jī)的TCP的32位的序列號(hào),攻擊者連接到目標(biāo)的一個(gè)TCP端口預(yù)先試探攻擊,完成三次握手,但是攻擊者會(huì)保存目標(biāo)主機(jī)發(fā)送過(guò)來(lái)的初始序列號(hào)ISN,攻擊者需要知道
63、目標(biāo)和它信任的主機(jī)問(wèn)的往返時(shí)間(R]_r,round—trip time),RTT是精確計(jì)算下一個(gè)初始序列號(hào)(ISN)所必需的,只要x猜測(cè)的初始序列號(hào)大于等于A實(shí)際的初始序列號(hào),連接就會(huì)被接受。攻擊者在攻擊過(guò)程中由于無(wú)法獲知被攻擊者的響應(yīng),因此只能通過(guò)猜測(cè)被攻擊者所處的狀態(tài)來(lái)控制住攻擊的節(jié)奏才能取得成功。猜測(cè)TCP序列號(hào)成功,則攻擊主機(jī)I可以偽裝成信任主機(jī)的IP與TCP序列號(hào)與目標(biāo)主機(jī)進(jìn)行通信或進(jìn)行攻擊。</p><
64、p> 3.1.3 DDoS攻擊步驟</p><p> DDoS攻擊不再是簡(jiǎn)單的一對(duì)一的入侵一臺(tái)主機(jī)那么簡(jiǎn)單,而是多對(duì)一或者多對(duì)多的“較量”。所以要成功的組織一次DDoS攻擊也并不容易。所以進(jìn)行DDoS攻擊時(shí)通常會(huì)經(jīng)過(guò)如下幾個(gè)步驟:</p><p> ?。?)搜集了解目標(biāo)的情況。說(shuō)穿了就是情報(bào),而且是會(huì)直接影響到攻擊效果的情報(bào)。這些情報(bào)通常包括:被攻擊目標(biāo)的主機(jī)數(shù)目、地址情況;目
65、標(biāo)主機(jī)的配置、性能;以及目標(biāo)的寬帶。舉例子說(shuō)就是,當(dāng)攻擊者要攻擊互聯(lián)網(wǎng)上的某個(gè)站點(diǎn),那么其情報(bào)的重點(diǎn)就是確定有多少臺(tái)主機(jī)在支持這個(gè)站點(diǎn),如果攻擊的只是一部分的主機(jī),那么攻擊效果也會(huì)大打折扣。于是乎這些主機(jī)的地址也成了必不可少的信息。只有找到所有地址,并讓這些IP地址所在的機(jī)器都癱瘓才可以說(shuō)進(jìn)行了一次成功的攻擊。</p><p> ?。?)占領(lǐng)傀儡機(jī)。排除主觀因素,一般的攻擊者或者說(shuō)黑客更喜歡侵入鏈路狀態(tài)較好,性能
66、較好,而安全管理水平較差的主機(jī)作為其傀儡機(jī)。攻擊者通過(guò)占領(lǐng)和控制被攻擊的主機(jī),取得最高的管理權(quán)限,或者得到至少一個(gè)足夠能夠完成其攻擊任務(wù)的權(quán)限。這種攻擊和占領(lǐng)在互聯(lián)網(wǎng)上的方式有很多,首先進(jìn)行掃描工作,然后有選擇的利用目標(biāo)漏洞,或者目標(biāo)安全措施不完備進(jìn)行入侵從而完成傀儡機(jī)的建立。</p><p> ?。?)“裝備”傀儡機(jī)。當(dāng)黑客占領(lǐng)一臺(tái)傀儡機(jī)時(shí),在抹去了入侵的痕跡后,會(huì)把DDoS攻擊所需要用到的程序上載過(guò)去。形象的
67、說(shuō)就像是給自己的“手下”配備上“武器彈藥”,為以后的攻擊做好準(zhǔn)備。</p><p> ?。?)發(fā)起攻擊。經(jīng)過(guò)之前幾步的精心準(zhǔn)備,攻擊者就可以對(duì)目標(biāo)進(jìn)行攻擊了。他會(huì)登陸到作為控制臺(tái)的傀儡機(jī),然后向其余的傀儡機(jī)或者說(shuō)攻擊機(jī)發(fā)出命令。這時(shí)候之前埋伏在攻擊機(jī)中的DDoS攻擊程序就會(huì)響應(yīng)控制臺(tái)的命令,一起開(kāi)始以高速向攻擊目標(biāo)發(fā)送大量數(shù)據(jù)包或者建立半連接,從而達(dá)到使目標(biāo)癱瘓的攻擊效果。</p><p>
68、; 如圖3-2所示,是DDoS攻擊的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖。很直觀的闡述了其基本構(gòu)建原理。其中Attacker是攻擊者所使用的計(jì)算機(jī),Master是主控機(jī),Daeman是傀儡機(jī)。</p><p> 圖3-2 網(wǎng)絡(luò)攻擊拓?fù)鋱D</p><p> 3.1.4 控制與協(xié)同傀儡機(jī)</p><p> 前文提到,要使DDoS攻擊真正具有強(qiáng)大的破壞力,那么攻擊者手上掌握的“力量”
69、,也就是傀儡機(jī)的數(shù)量和質(zhì)量將是很重要的一部分。</p><p> 首先對(duì)于傀儡機(jī)初步的控制主要有兩種途徑。其一是直接從黑客處購(gòu)買(mǎi)傀儡機(jī),因?yàn)楹笳咄莆罩罅靠軝C(jī),并以出賣(mài)傀儡機(jī)產(chǎn)生利益。其二是攻擊者自己占領(lǐng)傀儡機(jī)。而這樣的占領(lǐng)又具有多樣化的特點(diǎn)。一般的方法是在有一定瀏覽量的網(wǎng)站上植入與黑客軟件相關(guān)的木馬程序并使其再不被發(fā)現(xiàn)的情況下侵入目標(biāo):或者直接向目標(biāo)發(fā)送含木馬程序的郵件或其他文件并盡可能誘使目標(biāo)接收文件
70、。但是不管是什么方法,它的目的是很明確的,就是為了之后控制目標(biāo)主機(jī)作為傀儡機(jī)打開(kāi)一扇后門(mén)。當(dāng)目標(biāo)不知情的情況下被侵入后,攻擊者則開(kāi)始利用系統(tǒng)漏洞,或者“制造”漏洞來(lái)為之后的遠(yuǎn)程控制做好準(zhǔn)備。接著攻擊者通過(guò)清理日志,尤其是與自己相關(guān)的日志來(lái)抹除操作后的痕跡,達(dá)到隱藏自己的目的。</p><p> 當(dāng)真正需要發(fā)動(dòng)攻擊時(shí),攻擊者首先會(huì)啟動(dòng)遠(yuǎn)程控制工具,并通過(guò)之前從傀儡機(jī)處竊取的信息與植入在傀儡機(jī)的相關(guān)黑客軟件取得聯(lián)系
71、,并發(fā)送指令,激發(fā)需要進(jìn)行的操作。這樣傀儡機(jī)則會(huì)在用戶(hù)不知情的情況下按照來(lái)自上一級(jí)的控制傀儡機(jī)或者攻擊者所給出的攻擊信息,“偷偷”運(yùn)行攻擊程序,達(dá)到攻擊目的。</p><p> 在當(dāng)今這個(gè)信息爆炸的時(shí)代,網(wǎng)絡(luò)上不但有所有你想要的信息,同時(shí)也充斥著各種病毒和黑客工具。在遠(yuǎn)程竊取和控制方面有Radmin、灰鴿子、pcanywhere等多種常見(jiàn)的工具。Radimin是基于TCP/IP協(xié)議的,理論上利用它你可以控制世界
72、上任何一臺(tái)計(jì)算機(jī)。甚至于你可以利用它做任何想做的事,包括控制和被控制主機(jī)間數(shù)據(jù)的互相傳送,甚至遠(yuǎn)程控制其關(guān)機(jī)。而且其還支持對(duì)遠(yuǎn)程控制的窗口可視化?;银澴幼鳛橐豢钍种暮箝T(mén)程序,不但上手容易而且很擅長(zhǎng)竊取信息,其為了成功潛伏所做的各種手段讓它如一個(gè)隱形的賊一樣很難被發(fā)現(xiàn),令人防不勝防。pcanywhere也是一款十分實(shí)用強(qiáng)大的遠(yuǎn)程控制、操作軟件,它甚至可以進(jìn)行對(duì)被控制端的各項(xiàng)配置工作。即使如有防火墻或者路由器等阻擋在前,或者目標(biāo)沒(méi)有固
73、定或者公開(kāi)的IP地址,它依舊可以輕松的找到目標(biāo)所在。</p><p> 在進(jìn)行DDoS攻擊包括泛洪攻擊時(shí),利用以上這些軟件工具,可以很輕松地控制傀儡機(jī)。在一層接一層的金字塔型的傀儡機(jī)構(gòu)架中,通過(guò)階梯狀的指令的傳遞,可以有效的協(xié)同對(duì)受害者發(fā)起攻擊。</p><p><b> 3.2程序設(shè)計(jì)</b></p><p> 3.2.1 程序拓?fù)鋱D
74、</p><p> 程序的簡(jiǎn)單拓?fù)鋱D如下圖3-3所示。</p><p> 圖3-3 程序拓?fù)鋱D</p><p> 3.2.2 TCP/IP首部定義</p><p> 由于需要發(fā)送的是假的TCP連接包,因此,需要分別定義一個(gè)偽TCP首部和真正的TCP首部,如圖3-4所示:</p><p> 0
75、 15 16 31</p><p> 圖3-4 TCP首部定義</p><p> 由于報(bào)文是用IP協(xié)議發(fā)送的,因此,需要自己定義IP數(shù)據(jù)包的數(shù)據(jù)結(jié)構(gòu),這樣就可以任意修改IP數(shù)據(jù)包的內(nèi)容了。圖3-5為對(duì)IP的首部各項(xiàng)的定義示意圖。</p><
76、p> 0 15 16 31</p><p> 圖3-5 IP定義圖</p><p> 3.2.3 計(jì)算校驗(yàn)和</p><p> sourceIP和destIP可以被看做是A和B的IP。而最重要的就是check
77、sum,這個(gè)參數(shù)是一個(gè)驗(yàn)證碼,用于驗(yàn)證發(fā)送的IP數(shù)據(jù)包的正確性,而驗(yàn)證碼則稱(chēng)為校驗(yàn)和。IP數(shù)據(jù)包的校驗(yàn)和是根據(jù)IP首部計(jì)算出來(lái)的,而IP數(shù)據(jù)包中的數(shù)據(jù)部分則不用計(jì)算。為了計(jì)算作為校驗(yàn)和的數(shù),需要首先把校驗(yàn)和字段賦為0。然后,對(duì)首部中每個(gè)16位進(jìn)行二進(jìn)制反碼求和(將整個(gè)IP首部看成是由一組16位的字組成),將結(jié)果保存在校驗(yàn)和字段中。當(dāng)收到一份IP數(shù)據(jù)報(bào)后,同樣對(duì)首部中每個(gè)16位進(jìn)行二進(jìn)制反碼的求和。由于接收方在計(jì)算過(guò)程中包含了發(fā)送方存在首
78、部的校驗(yàn)和,因此,如果首部在傳輸過(guò)程中沒(méi)有發(fā)生任何差錯(cuò),那么接收方計(jì)算的結(jié)果應(yīng)該全是1.如果結(jié)果不全是1即校驗(yàn)和發(fā)生錯(cuò)誤。那么就把IP丟棄到收到的數(shù)據(jù)報(bào)。但不生成差錯(cuò)報(bào)文,由上層(如TCP協(xié)議)去發(fā)現(xiàn)丟失的數(shù)據(jù)報(bào)進(jìn)行重傳。計(jì)算它的函數(shù)如下:</p><p> USHORT checksum(USHORT *buffer, int size)</p><
79、p><b> {</b></p><p> unsigned long cksum=0; </p><p> while(size >1) </p><p><b> {</b></p><p> cksum+=*buffer+
80、+; </p><p> size -=sizeof(USHORT); </p><p><b> }</b></p><p> if(size ) </p><p><b> { </b></p><p>
81、 cksum += *(UCHAR*)buffer; </p><p><b> }</b></p><p> cksum = (cksum >> 16) + (cksum & 0xffff);</p><p>
82、; cksum += (cksum >>16); </p><p> return (USHORT)(cksum); </p><p><b> }</b></p><p> 3.2.4 SynFlooding主函數(shù)</p><p> 在
83、以上的準(zhǔn)備工作都完成后,是main函數(shù)中程序定義的部分,也是SynFlood主函數(shù)。</p><p> int main(int argc, char **argv) </p><p><b> { </b></p><p> int datasize,ErrorCode,counter,flag,FakeIpNet,FakeIpHost
84、; </p><p> int TimeOut=2000,SendSEQ=0; </p><p> char SendBuf[128]; </p><p> char DestIP[16];</p><p> memset(DestIP, 0, 4);</p><p> if(argc < 2)<
85、/p><p> strcpy(DestIP, SYN_DEST_IP);</p><p><b> else</b></p><p> strcpy(DestIP, argv[1]);</p><p> WSADATA wsaData; </p><p> SOCKET SockRaw=(S
86、OCKET)NULL; </p><p> struct sockaddr_in DestAddr; </p><p> IP_HEADER ip_header; </p><p> TCP_HEADER tcp_header;</p><p><b> }</b></p><p> /
87、/初始化SOCK_RAW </p><p> if((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0) </p><p><b> { </b></p><p> fprintf(stderr,"WSAStartup failed:
88、 %d\n",ErrorCode);</p><p> ExitProcess(STATUS_FAILED); </p><p><b> } </b></p><p> SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_
89、FLAG_OVERLAPPED); </p><p> if (SockRaw==INVALID_SOCKET) // 如果建立Socket錯(cuò)誤,輸出錯(cuò)誤信息</p><p><b> { </b></p><p> fprintf(stderr,"WSASocket
90、() failed: %d\n",WSAGetLastError()); </p><p> ExitProcess(STATUS_FAILED);</p><p><b> } </b></p><p> 填充剛才定義的那些數(shù)據(jù)結(jié)構(gòu)。</p><p> //設(shè)置
91、IP_HDRINCL以自己填充IP首部 </p><p> ErrorCode=setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));</p><p> if (ErrorCode==SOCKET_ERROR)printf("Set IP_HDRI
92、NCL Error!\n");</p><p><b> try{ </b></p><p><b> //設(shè)置發(fā)送超時(shí) </b></p><p> ErrorCode=setsockopt(SockRaw,SOL_SOCKET,SO_SNDTIMEO,(char*)&
93、TimeOut,sizeof(TimeOut));</p><p> if(ErrorCode==SOCKET_ERROR)</p><p><b> { </b></p><p> fprintf(stderr,"Failed to set send TimeOut:
94、;%d\n",WSAGetLastError()); </p><p><b> __leave; </b></p><p><b> } </b></p><p> memset(&DestAddr,0,sizeof(DestAddr));</p>&l
95、t;p> DestAddr.sin_family=AF_INET; </p><p> DestAddr.sin_addr.s_addr=inet_addr(DestIP); </p><p> FakeIpNet=inet_addr(FAKE_IP); </p><p> FakeIpHost=ntohl(FakeIpN
96、et); </p><p><b> //填充IP首部</b></p><p> ip_header.h_verlen=(4<<4 | sizeof(ip_header)/sizeof(unsigned long)); </p><p> ip_header.tot
97、al_len=htons(sizeof(IP_HEADER)+sizeof(TCP_HEADER)); ip_header.ident=1; </p><p> ip_header.frag_and_flags=0; </p><p> ip_header.ttl=128; </p><p&
98、gt; ip_header.proto=IPPROTO_TCP;</p><p> ip_header.checksum=0;</p><p> ip_header.sourceIP=htonl(FakeIpHost+SendSEQ);</p><p> 3.2.5 程序流程圖</p><p> 程序流程圖如下圖3-6所示。<
99、;/p><p><b> 3.3 攻擊測(cè)試</b></p><p> 下圖3-7所示,為攻擊運(yùn)行界面。當(dāng)運(yùn)行程序后出現(xiàn)的如下界面,127.0.0.1位設(shè)置的默認(rèn)IP,而其后每一個(gè)點(diǎn)則代表每發(fā)送了10000個(gè)報(bào)文。</p><p> 圖3-7 攻擊運(yùn)行界面</p><p> 圖3-8CPU已經(jīng)90%以上</p
100、><p> 圖3-8是我使用本機(jī)測(cè)試的結(jié)果,可以看到的是在程序運(yùn)行后CUP的使用迅速上升,達(dá)到90%以上。如果通過(guò)局域網(wǎng)攻擊其它的機(jī)器,CPU未必能達(dá)到100%,但至少也在50%以上,可以使目標(biāo)機(jī)器明顯變慢。</p><p> 4 淺談泛洪攻擊的防御</p><p> 4.1 DDoS攻擊防護(hù)機(jī)制</p><p> 由于泛洪攻擊即DD
101、oS攻擊的方法和特性所決定,一般認(rèn)為,在特定的站點(diǎn)上實(shí)現(xiàn)對(duì)其攻擊的有效防護(hù)是不太可能的,除非完全不用TCP/IP協(xié)議才有可能完全抵御。所以只能通過(guò)不斷的研究提出一些可行的決絕辦法來(lái)部分防御或者降低其威脅性。文獻(xiàn)[9]總結(jié)了一些比較常用的DDoS攻擊防護(hù)機(jī)制和方法,如圖4-1所示。</p><p> 圖4-1 DDoS攻擊防護(hù)機(jī)制分類(lèi)</p><p><b> 4.2 舉例
102、防御</b></p><p> 雖然DDoS攻擊的類(lèi)型很多,但是從其過(guò)程和效果來(lái)看,針對(duì)它的防御可以歸納為最初的攻擊檢測(cè)和防止受到攻擊主機(jī)的資源耗盡兩個(gè)方面。</p><p> 在時(shí)刻存在受到DDoS攻擊威脅的情況下,首先要做的是對(duì)其的攻擊檢測(cè)。攻擊檢測(cè)是為了在攻擊開(kāi)始的時(shí)候,對(duì)自身是否受到攻擊做出判斷,其檢測(cè)的準(zhǔn)確度會(huì)大大降低攻擊效果,變相達(dá)到防御目的。在文獻(xiàn)[1]中對(duì)泛
103、洪攻擊的檢測(cè)進(jìn)行了闡述,并列舉了基于防火墻的兩種檢測(cè)方法:</p><p> ?。?)半開(kāi)連接數(shù)檢測(cè)。根據(jù)SYN Flooding攻擊的原理,針對(duì)性的在防火墻上設(shè)置一個(gè)半開(kāi)連接的數(shù)值,用它和防火墻所記錄的所有客戶(hù)端向服務(wù)器發(fā)起半連接并能夠完成三次握手的正常連接數(shù)進(jìn)行比較,以此來(lái)判斷服務(wù)器是否正在都到泛洪攻擊。</p><p> ?。?)新建連接速率檢測(cè)。受到泛洪攻擊時(shí)必定會(huì)使服務(wù)器在短時(shí)間
104、內(nèi)增加大量的SYN報(bào)文。而該檢測(cè)正是利用這一點(diǎn)對(duì)新建的報(bào)文和后續(xù)的報(bào)文進(jìn)行比較以達(dá)到檢測(cè)的目的。</p><p> 在文獻(xiàn)[8]還提到一種名為同源SYN報(bào)文兩次接受法的檢測(cè)辦法:利用超時(shí)重傳機(jī)制,以收到客戶(hù)端第二次發(fā)送的SYN報(bào)文來(lái)判斷其是否為正常的連接請(qǐng)求。其原理如下圖4-2所示。</p><p> 圖4-2 同源SYN報(bào)文兩次接受法示意圖</p><p>
105、 在防御DDoS攻擊的道路上,類(lèi)似的攻擊檢測(cè)好比是對(duì)攻擊的先見(jiàn)之明,只有做到這樣的先見(jiàn)之明才能為接下來(lái)的防御加大勝算。</p><p> 對(duì)于泛洪攻擊的應(yīng)對(duì)策略還有有很多,包括基于防火墻、基于服務(wù)器、基于代理和基于路由器的防御策略等等。</p><p><b> 5 總結(jié)</b></p><p> 本文針對(duì)DDOS攻擊的一種,即泛洪攻
106、擊的攻擊特點(diǎn),分析了其基本的攻擊原理,模擬了基本攻擊流程。隨著現(xiàn)下網(wǎng)絡(luò)攻擊的越來(lái)越多元化,木馬,病毒等攻擊類(lèi)型的不斷變化和升級(jí),為有效的防御網(wǎng)絡(luò)侵襲,營(yíng)造良好的網(wǎng)絡(luò)環(huán)境增加了不小的難度。正因如此,基于網(wǎng)絡(luò)類(lèi)型的攻擊的研究也有了其相當(dāng)重要的研究?jī)r(jià)值。</p><p> 不可否認(rèn)對(duì)于DDoS攻擊的積極防御仍有很多缺陷,其抽象想法任未被廣泛的接受。,例如基于協(xié)議的維護(hù)效力取決于新協(xié)議的范圍和程度都很難把握。從另一面看
107、,主動(dòng)防御系統(tǒng)的許多功能都基于路由器,但是一個(gè)路由器的體系結(jié)構(gòu)和加密原則很容易被破解。因此,隨著DDoS攻擊的多樣化,制定針對(duì)其攻擊的技術(shù)更顯得必要。而防御技術(shù)的革新也將變相的促進(jìn)攻擊技術(shù)的出新,這也成了科學(xué)發(fā)展過(guò)程中必然出現(xiàn)的不會(huì)停止,可以說(shuō)永無(wú)止境的“堆疊”。同時(shí)也會(huì)促使更多的人進(jìn)行到這種對(duì)抗式的發(fā)展中去。</p><p><b> 參考文獻(xiàn)</b></p><p&
108、gt; [1] 趙開(kāi)新,李曉月.SYN Flooding網(wǎng)絡(luò)攻擊的原理、檢測(cè)及防御技術(shù)[J].2010.(3):45-46. </p><p> [2] 劉敏娜.DDdoS攻擊原理與防御 [J].2009.(14) :54-56. </p><p> [3] linxsong.網(wǎng)絡(luò)完全案例[EB/OL].http://baike.baidu.com/view/17495.html ,
109、2010.12.22.</p><p> [4] Haining Wang,Danlu Zhang.Defence against Distributed denial of service attacks[M]. The University of Michiigan ,2002-2.</p><p> [5] 黃貽望,萬(wàn) 良,李祥. 基于IP欺騙的SYN泛洪攻擊[J].2008.(
110、12):159-161.</p><p> [6] 暗黑游俠.大級(jí)別攻擊運(yùn)行原理[EB/OL].</p><p> http://baike.baidu.com/view/23271.html ,2010.12.23.</p><p> [7] 張靜,胡華平.剖析DDoS攻擊對(duì)抗技術(shù)[J].2010.(9):46-54. </p><p&g
111、t; [8] 見(jiàn)曉春,昊振強(qiáng),霍成義,張婕.同源SYN報(bào)文兩次接收法防御SYN Flood攻擊[J].2008(6):1440-1442.</p><p> [9] 吳國(guó)綱.DDoS攻擊與IP擁塞控制研究[J].2007.(3):614-616. </p><p> [10] 黃卓,君易昀.基于用戶(hù)自服務(wù)的DDoS攻擊防御方案分析與應(yīng)用[J].2010.(9):1-4. </p
112、><p> [11] Danlu Zhang,Kang G.Shin ,Detcting.SYN Flooding Attacks EECS Department,The University of Michigan Ann Arbor[J].2008.(5):2109-2122.</p><p> [12] Ejaz Ahmed, George Mohay, Alan Tickle1,
113、Sajal Bhatia1.Use of IP Addresses for High Rate Flooding Attack[M] Queensland University of Technology,2004.</p><p> [13] 李坤.基于主機(jī)擁塞量化的DDoS攻擊源端檢測(cè)[J].2010.(25):106.</p><p> [14] 谷紅恩,谷紅梅.淺談DDoS攻擊
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 泛洪攻擊設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- gps儀的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- linux shell的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告+文獻(xiàn)綜述.doc
- 在線判題系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 網(wǎng)絡(luò)考試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【開(kāi)題報(bào)告+文獻(xiàn)綜述+畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告+文獻(xiàn)綜述.doc
- 梵塔動(dòng)畫(huà)演示的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 圖片文字提取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 網(wǎng)上虛擬試衣系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 一個(gè)簡(jiǎn)單的泛洪攻擊系統(tǒng)【文獻(xiàn)綜述】
- 高校智能門(mén)禁系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- led燈設(shè)計(jì)與開(kāi)發(fā)【開(kāi)題報(bào)告+文獻(xiàn)綜述+畢業(yè)設(shè)計(jì)】
- 大學(xué)選課系統(tǒng)的分析、設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 盆花自動(dòng)澆水系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 校園軟件屋的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
- 運(yùn)動(dòng)器械設(shè)計(jì)【開(kāi)題報(bào)告+文獻(xiàn)綜述+畢業(yè)設(shè)計(jì)】
- 遮陽(yáng)雨棚設(shè)計(jì)【開(kāi)題報(bào)告+文獻(xiàn)綜述+畢業(yè)設(shè)計(jì)】
- 畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告和文獻(xiàn)綜述.doc
- 人體檢測(cè)方法研究與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)+開(kāi)題報(bào)告+文獻(xiàn)綜述】
評(píng)論
0/150
提交評(píng)論