當前位置:編程學習大全網 - 源碼下載 - 華碩開機緩存區溢出

華碩開機緩存區溢出

存區溢出漏洞

相信大家看壹些安全方面的文章經常看到 “溢出”這個詞。新華字典上解釋是液體充滿而流出來。對!溢出就是這個意思。溢出是計算機的壹個可以補救的漏洞,全名:緩存區溢出漏洞。在計算機中,有壹個叫“緩存區”的地方,它是用來存儲用戶輸入的數據的,緩沖區的長度是被事先設定好的且容量不變,如果用戶輸入的數據超過了緩沖區的長度,那麽就會溢出,而這些溢出的數據就會覆蓋在合法的數據上。

這時我們也可以利用漏洞寫入惡意數據,這就是常說的溢出。我們也可以通過壹個比方來進行理解。很多的病毒也是通過溢出來傳播的,例如:“沖擊波”、“紅色代碼”等病毒都是通過緩存區溢出來傳播自己的。

案例

每年都有很多溢出的漏洞被黑客所利用,例如今年初的Microsoft Windows圖形渲染引擎WMF格式代碼漏洞(ms0601),就是壹個典型的溢出漏洞,該漏洞被利用的方法也非常之簡單,網上有專門的入侵工具如wmfexploit,該程序支持反向連接,更方便了黑客利用漏洞。黑客利用這個漏洞可以采用溢出攻擊,以得到最高權限,也可以利用漏洞制作壹個網頁木馬,將受害電腦變成自己的“肉雞”。

簡單的防範方法

溢出漏洞防範起來比其他漏洞困難。因為溢出漏洞各種各樣,有1433溢出攻擊、IDQ溢出攻擊、FreeBSD系統遠程溢出攻擊等等,甚至連QQ都可以溢出,涉及的系統軟件非常多。

以本文所提到的Microsoft Windows圖形渲染引擎WMF格式代碼漏洞(ms0601)為例,來看看解決的方法。由於該漏洞查看WMF文件才導致漏洞的觸發,在查看WMF文件時會使用Windows Picture。我們點擊“開始→運行”,輸入“regsvr32 -u %windir%/system32/shimgvw.dll”將Windows Picture反註冊就能防範圖形渲染引擎WMF格式代碼漏洞溢出了。還有壹種安全保險的方式,就是去微軟官方下載補丁。

防範溢出漏洞,我們需要有針對性的來防範,不同的漏洞有不同的防範方法。首先確保及時為自己的操作系統和應用程序更新安全補丁;其次應減少不必要的開放服務端口,因為妳開放的端口越少,黑客想入侵的難度也越大

解決的辦法是

/art/238/20020705/18671_1.html

堆棧溢出(又稱緩沖區溢出)攻擊是最常用的黑客技術之壹。這種攻擊之所以可能是由於某些編程語言,商業,系統,***享,開放源代碼程序的本質決定的。我們知道,Unix本身以及其上的許多應用程序都是用C語言編寫的,C語言不檢查緩沖區的邊界。在某些情況下,如果用戶輸入的數據長度超過應用程序給定的緩沖區,就會覆蓋其他數據區,包括用戶堆棧。這稱作“堆棧溢出或緩沖區溢出”。壹般情況下,覆蓋其他數據區的數據是沒有意義的,最多造成應用程序錯誤,但是,如果輸入的數據是經過“黑客”精心設計的,覆蓋堆棧的數據恰恰是黑客的入侵程序代碼,黑客就獲取了程序的控制權。如果該程序恰好是以root運行的,黑客就獲得了root權限,然後他就可以編譯黑客程序、留下入侵後門等,實施進壹步地攻擊。按照這種原理進行的黑客入侵就叫做“堆棧溢出攻擊”。

攻擊者通過尋找本身有這種弱點的包含setuid的程序實現堆棧溢出攻擊。這種程序可以由任何用戶運行,壹旦程序運行,就以root權限運行在系統中。攻擊者需要知道程序運行時保存的信息在系統中的位置,根據這些信息,攻擊者運行程序,輸入比系統能夠接受的更多的數據。例如,假設系統緩沖區只有20Byte,攻擊者輸入30byte,就像在桶中裝入太多的水,水會溢出流到地上壹樣,剩余的數據就會進入特定的系統空間。經過精心設計,攻擊者就可獲得root權限。這種弱點壹旦被發現並貼在Internet上供他人使用,這種攻擊方式就會壹直存在,而且適用於其他類似系統,直到弱點被消除。這種攻擊依賴於系統軟件的弱點,而且數據溢出後必須進入堆棧的同壹位置。80年代著名的“蠕蟲”病毒就是利用Unix的login程序的弱點,使用“堆棧溢出”發起攻擊的。

從上面“堆棧溢出攻擊”的原理可以看出,我們可以通過以下方法防止此類攻擊:

1)開放程序時仔細檢查溢出情況,不允許數據溢出緩沖區。由於編程和編程語言的原因,這非常困難,而且不適合大量已經在使用的程序;

2)或者使用檢查堆棧溢出的編譯器或者在程序中加入某些記號,以便程序運行時確認禁止黑客有意造成的溢出,問題是無法針對已存程序,對新程序來將,有需要修改編譯器;

3)或者不停地打補丁。系統管理員要花費大量精力跟蹤Internet新聞組上公布的系統弱點,在系統彌補弱點的補丁發布之後趕緊安裝。但是系統管理員總要比攻擊者慢壹步,而且要花費大量時間,而不能把這些時間花在提高系統性能,響應客戶請求等方面。

這些辦法都無法在現實的業務系統中使用,冠群金辰的eTrust Access Control則提供了另壹種切實可行、易於實施的防止“堆棧溢出攻擊”的方法。eTrust AccessControl中包含STOP(STack Overflow Protection,堆棧溢出保護)技術,可以阻止這種入侵,防止用戶或程序獲得root權限。如上所述,這種攻擊必須要求數據溢出後覆蓋已知的特定位置。程序運行時,DSX截獲運行代碼,STOP重新定位系統棧,這樣攻擊者溢出的數據就不能覆蓋他想要覆蓋的內容,攻擊就不能成功。

  • 上一篇:我電腦桌面上的標簽都反了。我該如何解決這個問題?
  • 下一篇:用java編寫壹個2013全年日歷
  • copyright 2024編程學習大全網