現在很對緩沖溢出相當普遍,很多系統被入侵獲得ROOT權限是利用本地或者遠程的緩沖溢出來實現的,那能不能在系統上很好的防止部分堆棧溢出呢,下面就是一些關於限制這些緩沖溢出的一些解決方案……
現在很對緩沖溢出相當普遍,很多系統被入侵獲得ROOT權限是利用本地或者遠程的緩沖溢出來實現的,那能不能在系統上很好的防止部分堆棧溢出呢,下面就是一些關於限制這些緩沖溢出的一些解決方案,其中第一個是關於SOLARIS/SPARC的防止方法,第二是關於在X86結構上的保護方法。
在SPARC結構中,下面的操作可以幫助你防止一部分等級的緩沖溢出,就象一些RDIST-比較早的一個EXPLOIT程序。具體可以如下操作:
編輯這個/etc/system文件,並增加下面的兩行代碼:
ident"@(#)system 1.18
97/06/27 SMI" /* SVR4 1.5 */
*
* SYSTEM SPECIFICATION FILE
*
* The following two lines under solaris will map the the system stack
* RW (as opposed to RWX mandated by SPARC V8 API.) This is supposing that
* you have a SPARC 4u (ultrasparc), 4d or 4m system. SPARC V8 API conformant
* programs may break, although I have not experienced any difficulties
* up till now. The second parameter enables the logging of the buffer overrun
* attempt to syslog.
set noexec_user_stack = 1
set noexec_user_stack_log = 1
對於X86的結構,我們建議使用STARCGUARD,這是一個能限制大量的緩沖溢出的攻擊,使用STARKGUARD編譯可以更安全的防止那些溢出代碼的攻擊,當然這個程序的保護也不是絕對的,現在在PHRACK56中出了一篇繞過STARCGUARD保護的文章,大家可以看看,當然WARNING3也翻譯了這篇文章。
其實最主要的還是保護自己系統的基礎安全,如密碼安全,文件權限安全等,以防止被輕易的進入系統造成更嚴重的破壞。