緩衝區溢位攻擊是什麼意思?防禦措施有哪些?

老男孩IT教育機構發表於2023-02-20

  緩衝區溢位攻擊是利用緩衝區溢位漏洞所進行的攻擊行為,是一種非常普遍、非常危險的漏洞,也是最常見的網路攻擊手段,該攻擊雖然簡單但危害性極大。那麼緩衝區溢位攻擊是什麼?如何防禦?本文詳細介紹一下。

  緩衝區溢位攻擊是什麼?

  緩衝區溢位攻擊是利用緩衝區溢位漏洞所進行的攻擊行動。緩衝區溢位是一種非常普遍、非常危險的漏洞,在各種作業系統、應用軟體中廣泛存在。利用緩衝區溢位攻擊,可以導致程式執行失敗、系統關機、重新啟動等後果。

  緩衝區溢位是指當計算機向緩衝區內填充資料位數時超過了緩衝區本身的容量,溢位的資料覆蓋在合法資料上。理想的情況是:程式會檢查資料長度,而且並不允許輸入超過緩衝區長度的字元。但是絕大多數程式都會假設資料長度總是與所分配的儲存空間相匹配,這就是為緩衝區溢位埋下隱患。作業系統所使用的緩衝區,又被稱為堆疊,在各個操作程式之間,指令會被臨時儲存在堆疊當中,堆疊也會出現緩衝區溢位。

  緩衝區溢位攻擊如何防禦?

  1、嚴格編寫程式程式碼

  眾所周知,編寫正確嚴格的程式碼是一件非常耗時耗力的工作,雖然軟體的發展經歷了半個世紀的時間,但是依舊存在著漏洞程式,所以人們開發了一些工具和技術來幫助經驗不足的程式設計師來編寫安全的程式。比如說高階查錯工具,如fault injection等,這些工具的目的就是在於透過人為隨機的產生一些緩衝區溢位來尋找程式碼的安全漏洞,可是由於C語言的本身特點,這些工具不能找出所有的緩衝區溢位漏洞,因此偵錯技術只是被用來減少緩衝區溢位漏洞,並不能完全消滅,想要完全消滅這類漏洞,就需要程式設計師嚴格編寫程式碼。

  2、禁止執行堆疊資料段

  在進行系統操作時資料地址空間不可執行,從而禁止攻擊者執行被植入的攻擊程式碼,這種措施在一定的程度上也對緩衝區溢位攻擊起到了防範作用。但是攻擊者不一定非要透過植入攻擊程式碼來實現緩衝區溢位攻擊,所以這種方法並不能徹底解決緩衝區溢位攻擊。

  3、利用程式編譯器的邊界檢查

  植入攻擊程式碼時引起緩衝區溢位攻擊的一個方面,改變程式執行的流程則是另一個方面,而利用程式編譯器的邊界檢查則使得緩衝區溢位攻擊不可能實現,從而完全消除了緩衝區溢位攻擊的威脅。

  4、指標完全性檢查

  程式指標完整性檢查和邊界檢查略有不同,程式指標完整性檢查在程式指標被改變之前檢測,因此即使攻擊者成功改變了程式的指標,也會因為先前檢測到指標的變化而失效,這樣雖然不能完全解決問題,但是他確實阻止了大多數的緩衝區溢位攻擊,並且這種方法在效能方面有很大優勢,相容性特別優良。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2936003/,如需轉載,請註明出處,否則將追究法律責任。

相關文章