現(xiàn)在很對緩沖溢出相當(dāng)普遍,很多系統(tǒng)被入侵獲得ROOT權(quán)限是利用本地或者遠(yuǎn)程的緩沖溢出來實(shí)現(xiàn)的,那能不能在系統(tǒng)上很好的防止部分堆棧溢出呢,下面就是一些關(guān)于限制這些緩沖溢出的一些解決方案……
現(xiàn)在很對緩沖溢出相當(dāng)普遍,很多系統(tǒng)被入侵獲得ROOT權(quán)限是利用本地或者遠(yuǎn)程的緩沖溢出來實(shí)現(xiàn)的,那能不能在系統(tǒng)上很好的防止部分堆棧溢出呢,下面就是一些關(guān)于限制這些緩沖溢出的一些解決方案,其中第一個(gè)是關(guān)于SOLARIS/SPARC的防止方法,第二是關(guān)于在X86結(jié)構(gòu)上的保護(hù)方法。
在SPARC結(jié)構(gòu)中,下面的操作可以幫助你防止一部分等級的緩沖溢出,就象一些RDIST-比較早的一個(gè)EXPLOIT程序。具體可以如下操作:
編輯這個(gè)/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的結(jié)構(gòu),我們建議使用STARCGUARD,這是一個(gè)能限制大量的緩沖溢出的攻擊,使用STARKGUARD編譯可以更安全的防止那些溢出代碼的攻擊,當(dāng)然這個(gè)程序的保護(hù)也不是絕對的,現(xiàn)在在PHRACK56中出了一篇繞過STARCGUARD保護(hù)的文章,大家可以看看,當(dāng)然WARNING3也翻譯了這篇文章。
其實(shí)最主要的還是保護(hù)自己系統(tǒng)的基礎(chǔ)安全,如密碼安全,文件權(quán)限安全等,以防止被輕易的進(jìn)入系統(tǒng)造成更嚴(yán)重的破壞。