劉露平, 方勇, 劉亮, 龍剛
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
基于動態(tài)插樁的緩沖區(qū)溢出漏洞檢測技術(shù)研究
劉露平, 方勇, 劉亮, 龍剛
(四川大學(xué) 電子信息學(xué)院,四川 成都 610065)
緩沖區(qū)溢出漏洞是一類常見的軟件漏洞,其對計算機(jī)系統(tǒng)造成的危害非常大。本文針對這類漏洞提出一種基于二進(jìn)制文件動態(tài)插樁并根據(jù)程序運(yùn)行狀態(tài)來判定緩沖區(qū)溢出的檢測方法,并實(shí)現(xiàn)了基于該方法的檢測系統(tǒng)。通過分析緩沖區(qū)溢出的原理以及常見攻擊方法的特點(diǎn),提出了基于覆蓋返回地址、虛函數(shù)表、異常處理鏈表以及溢出后執(zhí)行特定API的緩沖區(qū)溢出檢測方法。實(shí)驗(yàn)表明該系統(tǒng)能有效檢測到緩沖區(qū)溢出并定位溢出點(diǎn)從而輔助對漏洞原理進(jìn)行分析。
緩沖區(qū)溢出;動態(tài)檢測;二進(jìn)制插樁;程序狀態(tài)
緩沖區(qū)溢出漏洞是一類常見的軟件安全性漏洞,廣泛存在于各種操作系統(tǒng)、應(yīng)用軟件中,利用緩沖區(qū)漏洞進(jìn)行攻擊給網(wǎng)絡(luò)安全帶來了極大的威脅,由于其具有非常大的危害性,許多研究人員對此進(jìn)行了深入的研究,并提出了各種針對緩沖區(qū)溢出的檢測方法。
現(xiàn)有針對緩沖區(qū)溢出的檢測和預(yù)警中,主要有以下幾種方法:
1)基于編譯器的運(yùn)行時檢查。如微軟在其編譯器VS7.0及以后版本中增加了GS編譯選項(xiàng),通過在堆棧中加一個cookie,當(dāng)函數(shù)返回時檢測該cookie值是否被改變從而判斷是否發(fā)生溢出。gcc編譯器的StackGuard插件則通過在棧上放探針來實(shí)現(xiàn)檢測[1]。
2)系統(tǒng)/硬件級別的檢測保護(hù)。……