黃 岷 李 強 劉銀蓮 李端肅
甘肅銀光化學(xué)工業(yè)集團(tuán)有限公司 甘肅 白銀 730900
隨著第四屆互聯(lián)網(wǎng)大會—烏鎮(zhèn)峰會的完美謝幕,“發(fā)展數(shù)字經(jīng)濟(jì)促進(jìn)開放共享—攜手共建網(wǎng)絡(luò)空間命運共同體”的主題得到升華。而會議提到的四大板塊“數(shù)字經(jīng)濟(jì)”、“前沿技術(shù)”、“互聯(lián)網(wǎng)與社會”、“網(wǎng)絡(luò)空間治理”以及“網(wǎng)絡(luò)安全閉門會”無不強調(diào)“網(wǎng)絡(luò)安全”的重要性,DoS攻擊作為網(wǎng)絡(luò)攻擊最常見的攻擊類型,其技術(shù)含量雖然不高,但是其攻擊有效性是有目共睹的,而面對當(dāng)前計算機(jī)CPU性能的提升,內(nèi)存容量大幅提升情況,其變種型DDoS攻擊更讓人頭疼。說到底DoS攻擊才是它的本源,故本文主要對DoS常見的攻擊類型做一個簡單的介紹。
所謂“DoS”并不是“磁盤操作系統(tǒng)”而是“Denial of Service”的縮寫,即拒絕服務(wù)。它是一種常見的網(wǎng)絡(luò)攻擊手段,大致思想是:用數(shù)據(jù)包淹沒你的系統(tǒng),以干擾或嚴(yán)重地使您的互聯(lián)網(wǎng)連接降級,捆綁本地服務(wù)以導(dǎo)致合法的請求反而不能被響應(yīng),或者更嚴(yán)重地,使目標(biāo)系統(tǒng)服務(wù)系統(tǒng)停止響應(yīng)甚至崩潰,也就是出現(xiàn)“宕機(jī)”。簡單地說,就是利用網(wǎng)絡(luò)協(xié)議的缺陷,發(fā)送大量看似合理的請求數(shù)據(jù)包耗盡目標(biāo)系統(tǒng)的資源,這些資源可以是“網(wǎng)絡(luò)帶寬,文件系統(tǒng)空間容量,開放的進(jìn)程或者允許的連接”,爾后,由于系統(tǒng)資源被迅速耗盡直至真正合法的請求得不到響應(yīng),造成了拒絕服務(wù)的后果。攻擊者慣用的幾種DoS攻擊,包括以下幾個方面:
俗稱“SYN洪水”攻擊。攻擊者通過發(fā)送大量的半連接請求,即只完成到TCP連接的第二次握手,而第三階段的握手,永不發(fā)生,這樣由于大量的SYN攻擊,而只要打開了TCP服務(wù)的系統(tǒng),卡在了第二次握手階段,進(jìn)入SYN-RECV狀態(tài),而服務(wù)器未收到客戶端的確認(rèn)包時,重發(fā)請求,會直至超時,才將此條目從未連接隊列刪除。問題在于,攻擊者的連接請求到來的時間遠(yuǎn)遠(yuǎn)短于TCP超時釋放資源的時間。而更可惡的是,攻擊不僅僅是純粹地不發(fā)送ACK確認(rèn)包,而是結(jié)合IP地址欺騙,在客戶端偽造出大量不存在的源地址,聰明的攻擊者會在源地址過濾掉的合法分類中偽造IP地址,這樣不僅能夠避開防火墻,還能隱藏自己真實的IP地址。結(jié)合IP地址欺騙的攻擊,會使目標(biāo)系統(tǒng)不斷地向不存在客戶端發(fā)送超時連接請求,從而使未連接隊列被急劇地占用,而無法響應(yīng)正常的SYN請求。從而導(dǎo)致網(wǎng)絡(luò)堵塞甚至目標(biāo)系統(tǒng)癱瘓,宕機(jī)。
俗稱“死亡之ping”我們知道在TCP/IP的RFC官方文檔中對各類數(shù)據(jù)包都攻擊者發(fā)送更多簡單的ping包,但是這種ping包極其地大,從而淹沒數(shù)據(jù)連接,使被攻擊主機(jī)的帶寬接近崩潰,從而阻止其他合法流量達(dá)到受害者主機(jī)。這個我們提供了另外一個思路,即所有的攻擊并不是嘗試闖入我們的計算機(jī),而是僅僅來破壞您的系統(tǒng),它的目標(biāo)不是竊取您系統(tǒng)隱私數(shù)據(jù),而是讓您的計算機(jī)不能承受之重,直至崩潰。
我們知道不同的鏈路類型能夠支持的最大傳輸單元值(MTU:Maxitum Transmission Unit)主要是由相關(guān)RFC文檔規(guī)定的,常見的以太網(wǎng)鏈路的MTU值為1500,如果超出該值,則在轉(zhuǎn)發(fā)該報文之前,需要將其分片,分為多個適合于該鏈路類型傳輸?shù)膱笪?這些分片報文在到達(dá)接收方的時候,由接收方完成重組。而在合理的分片里,第一個分片會包含UDP或TCP報頭中通常的源端口號和目的端口號,而后續(xù)的分片則不包含。當(dāng)數(shù)據(jù)被分片時,中間路由器不會重組這些數(shù)據(jù)包,而是把任務(wù)留給目的主機(jī)或者其鄰近的路由器。
緩沖區(qū)溢出是指當(dāng)計算機(jī)程序向緩沖區(qū)內(nèi)填充的數(shù)據(jù)位數(shù)超過了緩沖區(qū)本身的容量。溢出的數(shù)據(jù)覆蓋在合法數(shù)據(jù)上。理想情況是,程序檢查數(shù)據(jù)長度并且不允許輸入超過緩沖區(qū)長度的字符串。但是絕大多數(shù)程序都會假設(shè)數(shù)據(jù)長度總是與所分配的存儲空間相匹配,這就為緩沖區(qū)溢出埋下隱患。而其一個致命的使用就是讓程序執(zhí)行它本來不愿意執(zhí)行的函數(shù),讓其成為攻擊代碼。
從以上的DoS攻擊類型來看,拒絕服務(wù)的攻擊可以被大致理解為:一是利用網(wǎng)絡(luò)協(xié)議存在的缺陷進(jìn)行攻擊,二是直接暴力攻擊。其目的無非是使網(wǎng)絡(luò)中的系統(tǒng)資源被耗盡,這些資源可以是“內(nèi)存”,“網(wǎng)絡(luò)帶寬”,“開放的連接”等。其使用的攻擊手段可以是自身產(chǎn)生大量的垃圾數(shù)據(jù)包,也可以是利用“僵尸電腦”,俗稱“肉雞”去發(fā)送垃圾數(shù)據(jù)包造成受害者網(wǎng)絡(luò)帶寬擁塞,而是合法流量無法進(jìn)入。當(dāng)然另外一種是對網(wǎng)絡(luò)連通性攻擊,可以通過洪泛的無用連接請求,沖擊受害主機(jī),使得被攻擊者無暇去顧及正常合法的請求。