緩沖區(qū)溢出攻擊是屬于系統(tǒng)攻擊的手段,通過(guò)往程序的緩沖區(qū)寫(xiě)超出其長(zhǎng)度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。當(dāng)然,隨便往緩沖區(qū)中填東西并不能達(dá)到攻擊的目的。最常見(jiàn)的手段是通過(guò)制造緩沖區(qū)溢出使程序運(yùn)行一個(gè)用戶shell,再通過(guò)shell執(zhí)行其它命令。如果該程序具有root權(quán)限的話,攻擊者就可以對(duì)系統(tǒng)進(jìn)行任意操作了。
緩沖區(qū)溢出對(duì)網(wǎng)絡(luò)系統(tǒng)帶來(lái)了巨大的危害,要有效地防止這種攻擊,應(yīng)該做到以下幾點(diǎn):
(1)程序指針完整性檢查 在程序指針被引用之前檢測(cè)它是否改變。即便一個(gè)攻擊者成功地改變了程序的指針,由于系統(tǒng)事先檢測(cè)到了指針的改變,因此這個(gè)指針將不會(huì)被使用。
(2)堆棧的保護(hù) 這是一種提供程序指針完整性檢查的編譯器技術(shù),通過(guò)檢查函數(shù)活動(dòng)記錄中的返回地址來(lái)實(shí)現(xiàn)。在堆棧中函數(shù)返回地址后面加了一些附加的字節(jié),而在函數(shù)返回時(shí),首先檢查這個(gè)附加的字節(jié)是否被改動(dòng)過(guò)。如果發(fā)生過(guò)緩沖區(qū)溢出的攻擊,那么這種攻擊很容易在函數(shù)返回前被檢測(cè)到。但是,如果攻擊者預(yù)見(jiàn)到這些附加字節(jié)的存在,并且能在溢出過(guò)程中同樣地制造他們,那么他就能成功地跳過(guò)堆棧保護(hù)的檢測(cè)。
(3)數(shù)組邊界檢查 所有的對(duì)數(shù)組的讀寫(xiě)操作都應(yīng)當(dāng)被檢查以確保對(duì)數(shù)組的操作在正確的范圍內(nèi)進(jìn)行。最直接的方法是檢查所有的數(shù)組操作,通?梢圆捎靡恍﹥(yōu)化技術(shù)來(lái)減少檢查次數(shù)。目前主要有這幾種檢查方法:Compaq C編譯器、Jones & Kelly C數(shù)組邊界檢查、Purify存儲(chǔ)器存取檢查等。
更多詳情咨詢 億恩科技億恩科技服務(wù)器租用托管專(zhuān)員 億恩天使 QQ530997 0371-63322213
本文出自:億恩科技【mszdt.com】
本文出自:億恩科技【mszdt.com】 -->
服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|