亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

如何防范緩沖區溢出攻擊?
2007-09-29   網絡

防范緩沖區溢出攻擊,常見的有四種基本方法:強制要求編寫正確的代碼、非執行的緩沖區、數組邊界檢查和程序指針完整性檢查。

1.編寫正確的代碼

要求編寫正確的代碼是一件非常有意義但耗時的工作,例如C語言編程就非常容易出錯。盡管經過長期努力人們知道了如何編寫安全的代碼,具有安全漏洞的程序依然不斷出現。人們開發了一些工具和技術來幫助經驗不足的程序員編寫安全正確的程序,防范因為緩沖區溢出漏洞引起的攻擊。這些工具的目的在于通過人為隨機地產生—些緩沖區溢出來尋找代碼的安全漏洞。還有一些靜態分析工具用于偵測緩沖區溢出的存在。雖然這些工具可以幫助程序員開發更安全的程序,但是由于C語言的特點,它們不可能找出所有的緩沖區溢出漏洞。偵錯技術僅能用來減少緩沖區溢出的可能,并不能完全地消除它的存在。

2.非執行的緩沖區

通過操作系統控制,使得緩沖區不可執行,稱為非執行的緩沖區技術,這是另一種阻止攻擊者植入攻擊代碼的方法。例如可以設定堆棧數據段不可執行,這樣就可以最大限度地保證了程序的兼容性。Linux和Solaris系統都發布了有關這方面的內核補丁。因為幾乎沒有任何合法的程序會在堆棧中存放代碼,這種做法幾乎不產生任何兼容性問題。通過使被攻擊程序的數據段地址空間不可執行,使得攻擊者不可能執行植入到被攻擊程序輸入緩沖區的代碼,可以阻止很多緩沖區溢出攻擊的發生。但是這種方法仍然存在局限性,原因在于UNIX和Windows系統為了實現更好的性能和功能,往往允許在數據段中動態地放入可執行的代碼,為了保持程序的兼容性,不可能阻止所有程序的數據段都不可執行;另外,攻擊者也并不一定都要依靠植入攻擊代碼實現緩沖區溢出攻擊。

3.數組邊界檢查

通過利用編譯器進行數組邊界檢查的方法,使得緩沖區溢出不可能出現,從而完全消除緩沖區溢出的威脅,實現緩沖區的保護。攻擊者植入代碼引起緩沖區溢出是一種手段,擾亂程序的執行流程是另一種手段。與非執行的緩沖區保護策略不同,數組邊界檢查策略的關鍵在于只要保證數組不能被溢出,溢出攻擊也就無從談起。為了實現數組邊界檢查,則要確保所有對數組的讀寫操作都應當被檢查,以保證對數組的操作在正確范圍內進行。最直接的方法是檢查所有的數組操作,通??刹捎靡恍﹥灮夹g減少檢查的次數。

4.程序指針完整性檢查

通過對程序指針進行完整性檢查,也可以阻止多數緩沖區溢出攻擊。這種方法試圖在程序指針被引用之前檢測到它的改變。因此即便一個攻擊者成功地改變了程序的指針,由于系統事先檢測到了指針的改變,這個指針將不會被使用。與數組邊界檢查相比,這種方法雖然不能解決所有的緩沖區溢出問題,但是它在性能上有很大優勢,兼容性也很好。

由于最普通的緩沖區溢出攻擊手段是在堆棧中植入代碼,采用非執行的緩沖區策略,如非執行堆棧和堆棧保護的方法就可以有效防衛這種攻擊。非執行堆??梢苑佬l所有把代碼植入堆棧的攻擊方法,堆棧保護可以防衛所有改變活動記錄的方法。這兩種方法相互兼容,可以同時防衛多種可能的攻擊。剩下的攻擊手段基本上可以依靠指針保護的方法來防衛。


熱詞搜索:

上一篇:什么是緩沖區溢出攻擊?這種攻擊有哪些類型?
下一篇:什么是分布式拒絕服務(DDoS)攻擊?

分享到: 收藏