成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

基于緩沖溢出漏洞的攻擊及其預(yù)防研究綜述

基于緩沖溢出漏洞的攻擊及其防衛(wèi)研究綜述彭斌(學(xué)號(hào):200610601022)摘 要:近十幾年來(lái), 利用操作系統(tǒng)緩沖區(qū)溢出漏洞發(fā)起的攻擊帶來(lái)了嚴(yán)重的網(wǎng)絡(luò)安全問(wèn)題, 其的安全危害級(jí)別相當(dāng)高. 如何有效地防

基于緩沖溢出漏洞的攻擊及其防衛(wèi)研究綜述

彭斌(學(xué)號(hào):200610601022)

摘 要:近十幾年來(lái), 利用操作系統(tǒng)緩沖區(qū)溢出漏洞發(fā)起的攻擊帶來(lái)了嚴(yán)重的網(wǎng)絡(luò)安全問(wèn)題, 其的安全危害級(jí)別相當(dāng)高. 如何有效地防止基于緩沖區(qū)溢出的攻擊, 可以消除一個(gè)相當(dāng)普遍的安全隱患. 本文針對(duì)緩沖區(qū)溢出漏洞的基本原理, 系統(tǒng)分析了攻擊過(guò)程. 最后介紹了現(xiàn)有的防止該攻擊的主要方法.

關(guān)鍵詞:緩沖區(qū)溢出 網(wǎng)絡(luò)攻擊 網(wǎng)絡(luò)安全 Stackguard

一、引言

緩沖區(qū)溢出是一種在各種操作系統(tǒng)、應(yīng)用軟件中廣泛存在普遍且危險(xiǎn)的漏洞,利用緩沖區(qū)溢出攻擊可以導(dǎo)致程序運(yùn)行失敗、系統(tǒng)崩潰等后果。更為嚴(yán)重的是,可以利用它執(zhí)行非授權(quán)指令,甚至可以取得系統(tǒng)特權(quán),進(jìn)而進(jìn)行各種非法操作。第一個(gè)緩沖區(qū)溢出攻擊--Morris 蠕蟲(chóng),發(fā)生在十年前,它曾造成了全世界6000多臺(tái)網(wǎng)絡(luò)服務(wù)器癱瘓,據(jù)統(tǒng)計(jì), 通過(guò)緩沖區(qū)溢出進(jìn)行的攻擊占所有系統(tǒng)攻擊總數(shù)的80以上。

二、緩沖區(qū)溢出的原理:

當(dāng)正常的使用者操作程序的時(shí)候,所進(jìn)行的操作一般不會(huì)超出程序的運(yùn)行范圍;而黑客卻利用緩沖長(zhǎng)度界限向程序中輸入超出其常規(guī)長(zhǎng)度的內(nèi)容,造成緩沖區(qū)的溢出從而破壞程序的堆棧,使程序運(yùn)行出現(xiàn)特殊的問(wèn)題轉(zhuǎn)而執(zhí)行其它指令,以達(dá)到攻擊的目的。造成緩沖區(qū)溢出的原因是程序中沒(méi)有仔細(xì)檢查用戶輸入的參數(shù),屬于程序開(kāi)發(fā)過(guò)程考慮不周到的結(jié)果。

當(dāng)然,隨便往緩沖區(qū)中填東西造成它溢出一般只會(huì)出現(xiàn)“分段錯(cuò)誤”

(Segmentation fault),而不能達(dá)到攻擊的目的。最常見(jiàn)的手段是通過(guò)制造緩沖區(qū)溢出使程序運(yùn)行一個(gè)用戶shell ,再通過(guò)shell 執(zhí)行其它命令。如果該程序?qū)儆趓oot 且有suid 權(quán)限的話,攻擊者就獲得了一個(gè)有root 權(quán)限的shell ,可以對(duì)系統(tǒng)進(jìn)行任意操作了。

緩沖區(qū)溢出攻擊之所以成為一種常見(jiàn)安全攻擊手段其原因在于緩沖區(qū)溢出漏洞普遍并且易于實(shí)現(xiàn)。而且緩沖區(qū)溢出成為遠(yuǎn)程攻擊的主要手段其原因在于緩沖區(qū)溢出漏洞給予了攻擊者他所想要的一切:植入并且執(zhí)行攻擊代碼。被植入的攻擊代碼以一定的權(quán)限運(yùn)行有緩沖區(qū)溢出漏洞的程序,從而得到被攻擊主機(jī)的控制權(quán)。

在1998年Lincoln 實(shí)驗(yàn)室用來(lái)評(píng)估入侵檢測(cè)的的5種遠(yuǎn)程攻擊中,有2種是緩沖區(qū)溢出。而在1998年CERT 的13份建議中,有9份是是與緩沖區(qū)溢出有關(guān)的,在1999年,至少有半數(shù)的建議是和緩沖區(qū)溢出有關(guān)的。在Bugtraq 的調(diào)查中,有2/3的被調(diào)查者認(rèn)為緩沖區(qū)溢出漏洞是一個(gè)很嚴(yán)重的安全問(wèn)題。

三、緩沖區(qū)溢出的漏洞和攻擊:

緩沖區(qū)溢出攻擊的目的在于擾亂具有某些特權(quán)運(yùn)行的程序的功能,這樣可以使得攻擊者取得程序的控制權(quán),如果該程序具有足夠的權(quán)限,那么整個(gè)主機(jī)就被控制了。它的具體實(shí)現(xiàn)過(guò)程是這樣的:首先攻擊者對(duì)ROOT 程序進(jìn)行試探性攻擊,然后執(zhí)行類似“exec(sh)”的執(zhí)行代碼來(lái)獲得具有root 權(quán)限的shell 。為了達(dá)到這個(gè)目的,攻擊者必須達(dá)到如下的兩個(gè)目標(biāo):

1、在程序的地址空間里安排適當(dāng)?shù)拇a;

,

2、通過(guò)適當(dāng)?shù)某跏蓟拇嫫骱蛢?nèi)存,讓程序跳轉(zhuǎn)到入侵者安排的地址空間執(zhí)行。

根據(jù)這兩個(gè)目標(biāo)來(lái)對(duì)緩沖區(qū)溢出攻擊進(jìn)行分類,緩沖區(qū)溢出攻擊分為代碼安排和控制程序執(zhí)行流程兩種方法:

1、在程序的地址空間里安排適當(dāng)?shù)拇a的方法:

(1)植入法:

攻擊者向被攻擊的程序輸入一個(gè)字符串,程序會(huì)把這個(gè)字符串放到緩沖區(qū)里。這個(gè)字符串包含的資料是可以在這個(gè)被攻擊的硬件平臺(tái)上運(yùn)行的指令序列。在這里,攻擊者用被攻擊程序的緩沖區(qū)來(lái)存放攻擊代碼。緩沖區(qū)可以設(shè)在任何地方:堆棧(stack ,自動(dòng)變量)、堆(heap ,動(dòng)態(tài)分配的內(nèi)存區(qū))和靜態(tài)資料區(qū)。

(2)利用已經(jīng)存在的代碼:

有時(shí)攻擊者想要的代碼已經(jīng)在被攻擊的程序中了,攻擊者所要做的只是對(duì)代碼傳遞一些參數(shù)。例如攻擊代碼要求執(zhí)行exec (“/bin/sh”),而在libc 庫(kù)中的代碼執(zhí)行exec (arg),其中arg 使一個(gè)指向一個(gè)字符串的指針參數(shù),那么攻擊者只要把傳入的參數(shù)指針改向指向/bin/sh。

2、控制程序轉(zhuǎn)移到攻擊代碼的方法:

所有的這些方法都是在尋求改變程序的執(zhí)行流程,使之跳轉(zhuǎn)到攻擊代碼。最基本的就是溢出一個(gè)沒(méi)有邊界檢查或者其它弱點(diǎn)的緩沖區(qū),這樣就擾亂了程序的正常的執(zhí)行順序。通過(guò)溢出一個(gè)緩沖區(qū),攻擊者可以用暴力的方法改寫(xiě)相鄰的程序空間而直接跳過(guò)了系統(tǒng)的檢查。

分類的基準(zhǔn)是攻擊者所尋求的緩沖區(qū)溢出的程序空間類型。原則上是可以任意的空間。實(shí)際上,許多的緩沖區(qū)溢出是用暴力的方法來(lái)尋求改變程序指針的。這類程序的不同之處就是程序空間的突破和內(nèi)存空間的定位不同。主要有以下三種: 1)、活動(dòng)紀(jì)錄(Activation Records):

每當(dāng)一個(gè)函數(shù)調(diào)用發(fā)生時(shí),調(diào)用者會(huì)在堆棧中留下一個(gè)活動(dòng)紀(jì)錄,它包含了函數(shù)結(jié)束時(shí)返回的地址。攻擊者通過(guò)溢出堆棧中的自動(dòng)變量,使返回地址指向攻擊代碼。通過(guò)改變程序的返回地址,當(dāng)函數(shù)調(diào)用結(jié)束時(shí),程序就跳轉(zhuǎn)到攻擊者設(shè)定的地址,而不是原先的地址。這類的緩沖區(qū)溢出被稱為堆棧溢出攻擊(Stack Smashing Attack),是目前最常用的緩沖區(qū)溢出攻擊方式。

2)、函數(shù)指針(Function Pointers):

函數(shù)指針可以用來(lái)定位任何地址空間。例如:“void (* foo)()”聲明了一個(gè)返回值為void 的函數(shù)指針變量foo 。所以攻擊者只需在任何空間內(nèi)的函數(shù)指針附近找到一個(gè)能夠溢出的緩沖區(qū),然后溢出這個(gè)緩沖區(qū)來(lái)改變函數(shù)指針。在某一時(shí)刻,當(dāng)程序通過(guò)函數(shù)指針調(diào)用函數(shù)時(shí),程序的流程就按攻擊者的意圖實(shí)現(xiàn)了。它的一個(gè)攻擊范例就是在Linux 系統(tǒng)下的superprobe 程序。

3)、長(zhǎng)跳轉(zhuǎn)緩沖區(qū)(Longjmp buffers):

在C 語(yǔ)言中包含了一個(gè)簡(jiǎn)單的檢驗(yàn)/恢復(fù)系統(tǒng),稱為setjmp/longjmp。意思是在檢驗(yàn)點(diǎn)設(shè)定“setjmp(buffer)”,用“l(fā)ongjmp(buffer)”來(lái)恢復(fù)檢驗(yàn)點(diǎn)。然而,如果攻擊者能夠進(jìn)入緩沖區(qū)的空間,那么“l(fā)ongjmp(buffer)”實(shí)際上是跳轉(zhuǎn)到攻擊者的代碼。象函數(shù)指針一樣,longjmp 緩沖區(qū)能夠指向任何地方,所以攻擊者所要做的就是找到一個(gè)可供溢出的緩沖區(qū)。一個(gè)典型的例子就是Perl 5.003的緩沖區(qū)溢出漏洞;攻擊者首先進(jìn)入用來(lái)恢復(fù)緩沖區(qū)溢出的的longjmp 緩沖區(qū),然后誘導(dǎo)進(jìn)入恢復(fù)模式,這樣就使Perl 的解釋器跳轉(zhuǎn)到攻擊代碼上了。

3、代碼植入和流程控制技術(shù)的綜合分析:

,

最簡(jiǎn)單和常見(jiàn)的緩沖區(qū)溢出攻擊類型就是在一個(gè)字符串里綜合了代碼植入和活動(dòng)紀(jì)錄技術(shù)。攻擊者定位一個(gè)可供溢出的自動(dòng)變量,然后向程序傳遞一個(gè)很大的字符串,在引發(fā)緩沖區(qū)溢出,改變活動(dòng)紀(jì)錄的同時(shí)植入了代碼。這個(gè)是由Levy 指出的攻擊的模板。因?yàn)镃 在習(xí)慣上只為用戶和參數(shù)開(kāi)辟很小的緩沖區(qū),因此這種漏洞攻擊的實(shí)例十分常見(jiàn)。

代碼植入和緩沖區(qū)溢出不一定要在在一次動(dòng)作內(nèi)完成。攻擊者可以在一個(gè)緩沖區(qū)內(nèi)放置代碼,這是不能溢出的緩沖區(qū)。然后,攻擊者通過(guò)溢出另外一個(gè)緩沖區(qū)來(lái)轉(zhuǎn)移程序的指針。這種方法一般用來(lái)解決可供溢出的緩沖區(qū)不夠大(不能放下全部的代碼)的情況。

如果攻擊者試圖使用已經(jīng)常駐的代碼而不是從外部植入代碼,他們通常必須把代碼作為參數(shù)調(diào)用。舉例來(lái)說(shuō),在libc (幾乎所有的C 程序都要它來(lái)連接)中的部分代碼段會(huì)執(zhí)行“exec(something)”,其中somthing 就是參數(shù)。攻擊者然后使用緩沖區(qū)溢出改變程序的參數(shù),然后利用另一個(gè)緩沖區(qū)溢出使程序指針指向libc 中的特定的代碼段。

四、緩沖區(qū)溢出攻擊的實(shí)驗(yàn)分析:

2000年1月,Cerberus 安全小組發(fā)布了微軟的IIS 4/5存在的一個(gè)緩沖區(qū)溢出漏洞。攻擊該漏洞可以使Web 服務(wù)器崩潰,甚至獲取超級(jí)權(quán)限執(zhí)行任意的代碼。目前微軟的IIS 4/5 是一種主流的Web 服務(wù)器程序;因而該緩沖區(qū)溢出漏洞對(duì)于網(wǎng)站的安全構(gòu)成了極大的威脅;它的描述如下:

瀏覽器向IIS 提出一個(gè)HTTP 請(qǐng)求,在域名(或IP 地址)后,加上一個(gè)文件名,該文件名以“.htr”做后綴。于是IIS 認(rèn)為客戶端正在請(qǐng)求一個(gè)“.htr”文件,“.htr”擴(kuò)展文件被映像成ISAPI (Internet Service API)應(yīng)用程序,IIS 會(huì)復(fù)位向所有針對(duì)“.htr”資源的請(qǐng)求到 ISM.DLL 程序 ,ISM.DLL 打開(kāi)這個(gè)文件并執(zhí)行之。 瀏覽器提交的請(qǐng)求中包含的文件名存儲(chǔ)在局部變量緩沖區(qū)中,若它很長(zhǎng)(超過(guò)600個(gè)字符時(shí)),會(huì)導(dǎo)致局部變量緩沖區(qū)溢出,覆蓋返回地址空間使IIS 崩潰。更進(jìn)一步在2K 緩沖區(qū)中植入一段精心設(shè)計(jì)的代碼,可以使之以系統(tǒng)超級(jí)權(quán)限運(yùn)行。

五、緩沖區(qū)溢出攻擊的防范方法:

緩沖區(qū)溢出漏洞和攻擊有很多種形式,相應(yīng)地防衛(wèi)手段也隨者攻擊方法的不同而不同。 1.緩沖區(qū)溢出攻擊分類

◆棧溢出(stack smashing)

未檢查輸入緩沖區(qū)長(zhǎng)度,導(dǎo)致數(shù)組越界,覆蓋棧中局部變量空間之上的棧楨指針?p以及函數(shù)返回地址retaddr, 當(dāng)函數(shù)返回執(zhí)行,ret 指令時(shí),retaddr 從棧中彈出,作為下一條指令的地址賦給eip寄存器,繼而改變?cè)绦虻膱?zhí)行流程指向我們的shellcode.

◆堆溢出(malloc/free heap corruption)

一種是和傳統(tǒng)的棧溢出一樣, 當(dāng)輸入超出malloc()預(yù)先分配的空間大小,就會(huì)覆蓋掉這段空間之后的一段存儲(chǔ)區(qū)域,如果該存儲(chǔ)區(qū)域有一個(gè)重要的變量比如euid ,那么我就可以用它來(lái)攻擊。另一種是典型的double-free 堆腐敗,在內(nèi)存回收操作中,合并相鄰空閑塊重新插入雙向鏈表時(shí)會(huì)有一個(gè)寫(xiě)4字節(jié)內(nèi)存的操作,如果弱點(diǎn)程序由于編程錯(cuò)誤free()一個(gè)不存在的塊,我們就可以精心偽造這個(gè)塊,從而覆蓋任何我們想要的值:函數(shù)的返回地址、庫(kù)函數(shù)的.plt 地址等 ◆格式化字符串漏洞(format string vulnerability)

,

如果格式竄由用戶定制,攻擊者就可以任意偽造格式竄,利用*printf()系列函數(shù)的特性就可以窺探堆棧空間的內(nèi)容,超常輸入可以引發(fā)傳統(tǒng)的緩沖區(qū)溢出,或是用”n”覆蓋指針、返回地址等。

◆整形變量溢出(integer variable overflow)

利用整數(shù)的范圍、符號(hào)等問(wèn)題觸發(fā)安全漏洞,大多數(shù)整形溢出不能直接利用,但如果該整形變量決定內(nèi)存分配等操作,我們就有可能間接利用該漏洞。 ◆其他的攻擊手法(others )

只能算是手法,不能算是一種單獨(dú)的類別。利用ELF 文件格式的特性如:覆蓋.plt (過(guò)程連接表)、.dtor (析構(gòu)函數(shù)指針)、.got (全局偏移表)、return-to-libc (返回庫(kù)函數(shù))等的方式進(jìn)行攻擊。 2.防范方法

1)、編譯保護(hù)技術(shù)

◆Stackguard

因?yàn)榫彌_區(qū)溢出的通常都會(huì)改寫(xiě)函數(shù)返回地址,stackguard 是個(gè)編譯器補(bǔ)丁,它產(chǎn)生一個(gè)"canary "值(一個(gè)單字) 放到返回地址的前面,如果當(dāng)函數(shù)返回時(shí),發(fā)現(xiàn)這個(gè)canary 的值被改變了,就證明可能有人正在試圖進(jìn)行緩沖區(qū)溢出攻擊,程序會(huì)立刻響應(yīng),發(fā)送一條入侵警告消息給syslogd, 然后終止進(jìn)程。"canary "包含:NULL (0x00), CR (0x0d ), LF (0x0a ) 和 EOF (0xff )四個(gè)字 符,它們應(yīng)該可以阻止大部分的字符串操作,使溢出攻擊無(wú)效。一 個(gè)隨機(jī)數(shù)canary 在程序執(zhí)行的時(shí)候被產(chǎn)生。所以攻擊者不能通過(guò)搜索程序的二進(jìn)制文件得到"canary "值。如果/dev/urandom存在,隨機(jī)數(shù)就從那里取得。否則,就從通過(guò)對(duì)當(dāng)前時(shí)間進(jìn)行編碼得到。其隨機(jī)性足以阻止絕大部分的預(yù)測(cè)攻擊。Immunix 系統(tǒng)為采用stackguard 編譯的Red Hat Linux,但stackguard 所提供的保護(hù)并非絕對(duì)安全,滿足一些條件就可以突破限制:如覆蓋一個(gè)函數(shù)指針、可能存在的exit()或_exit()系統(tǒng)調(diào)用地址、GOT 等。

◆Stackshield

StackShield 使用了另外一種不同的技術(shù)。它的做法是創(chuàng)建一個(gè)特別的堆棧用來(lái)儲(chǔ)存函數(shù)返回地址的一份拷貝。

它在受保護(hù)的函數(shù)的開(kāi)頭和結(jié)尾分別增加一段代碼,開(kāi)頭處的代碼用來(lái)將函數(shù)返回地址拷貝到一個(gè)特殊的表中,而結(jié)尾處的代碼用來(lái)將返回地址從表中拷貝回堆棧。因此函數(shù)執(zhí)行流程不會(huì)改變,將總是正確返回到主調(diào)函數(shù)中。在新的版本中已經(jīng)增加了一些新的保護(hù)措施,當(dāng)調(diào)用一個(gè)地址在非文本段內(nèi)的函數(shù)指針時(shí),將終止函數(shù)的執(zhí)行。

Stackshield 無(wú)法防御只覆蓋?p的單字節(jié)溢出,同樣,我們也可以通過(guò)覆蓋其他的ELF 結(jié)構(gòu)來(lái)繞過(guò)限制。

2)、庫(kù)函數(shù)鏈接保護(hù)

例如:

◆Formatguard

Formatguard 是個(gè)Glibc 的補(bǔ)丁,遵循GPL ,它使用特殊的CPP (gcc 預(yù)編譯程序)宏取代原有的*printf()的參數(shù)統(tǒng)計(jì)方式,它會(huì)比較傳遞給*printf的參數(shù)的個(gè)數(shù)和格式竄的個(gè)數(shù),如果格式竄的個(gè)數(shù)大于實(shí)際參數(shù)的個(gè)數(shù),就判定為攻擊行為,向syslogd 發(fā)送消息并終止進(jìn)程。如果弱點(diǎn)程序調(diào)用Glibc 以外的庫(kù),formatguard 就無(wú)法保護(hù)。

immunix.org

,

◆Libsafe

Libsafe 是一個(gè)動(dòng)態(tài)鏈接庫(kù),在標(biāo)準(zhǔn)的C 庫(kù)之前被加載,主要加固了gets(),strcpy(),strcat(),sprintf()……等容易發(fā)生安全問(wèn)題的C 函數(shù),它設(shè)計(jì)為只針對(duì)stack smashing && format string類型的攻擊。

3)、棧不可執(zhí)行

通過(guò)減小代碼段的虛擬地址來(lái)區(qū)分?jǐn)?shù)據(jù)段和代碼段,程序執(zhí)行流返回

0xC0000000以下一段用戶堆??臻g的操作都被認(rèn)為是緩沖區(qū)溢出攻擊行為,隨即產(chǎn)生一個(gè)通用保護(hù)異常而終止進(jìn)程。這樣把shellcode 安置在buffer 或環(huán)境變量(都位于堆棧段)的exploit 都會(huì)失效。當(dāng)然其安全也不是絕對(duì)的,利用PLT 返回庫(kù)函數(shù)的文章里詳細(xì)描述了突破該補(bǔ)丁的攻擊方法。

在Solaris/SPARC下可以通過(guò)去掉堆棧的執(zhí)行權(quán)限來(lái)禁止堆棧段執(zhí)行,方法如下,在/etc/system中加入兩條語(yǔ)句:

Set noexec_user_stack = 1

Set noexec_user_stack_log = 1

第一條禁止堆棧執(zhí)行,第二條記錄所有嘗試在堆棧段運(yùn)行代碼的活動(dòng)。Reboot 之后才會(huì)生效。

所有只讓棧不可執(zhí)行的保護(hù)是有限的。Return-to-libc 、fake frame之類的技術(shù)都可以突破限制,不過(guò)棧不可執(zhí)行的保護(hù)已經(jīng)極大了提升了攻擊難度。

4)、數(shù)據(jù)段不可執(zhí)行

數(shù)據(jù)段的頁(yè)不可執(zhí)行,撤銷共享內(nèi)存,加強(qiáng)對(duì)一些系統(tǒng)調(diào)用的限制。

5)、增強(qiáng)的緩沖區(qū)溢出保護(hù)及內(nèi)核MAC

例如:*使用strlcpy()和strlcat()函數(shù)替換原有的危險(xiǎn)函數(shù)

*內(nèi)存保護(hù):W^X、只讀數(shù)據(jù)段、頁(yè)保護(hù)、mmap()隨機(jī)映射、malloc()隨機(jī)映射、atexit()及stdio 保護(hù)、

*特權(quán)分離

*特權(quán)回收

*其他的很多特性

6)、硬件級(jí)別的保護(hù)

X86 CPU上采用4GB 平坦模式,數(shù)據(jù)段和代碼段的線性地址是重疊的,頁(yè)面只要可讀就可以執(zhí)行,所以上面提到的諸多內(nèi)核補(bǔ)丁才會(huì)費(fèi)盡心機(jī)設(shè)計(jì)了各種方法來(lái)使數(shù)據(jù)段不可執(zhí)行?,F(xiàn)在Alpha 、PPC 、PA-RISC 、SPARC 、SPARC64、AMD64、IA64都提供了頁(yè)執(zhí)行bit 位。Intel 及AMD 新增加的頁(yè)執(zhí)行比特位稱為NX 安全技術(shù),Windows XP SP2及Linux Kernel 2.6都支持NX ,雖然這種硬件級(jí)的頁(yè)保護(hù)不如PaX 那樣強(qiáng),但硬件級(jí)別的支持無(wú)疑大大增加了軟件和操作系統(tǒng)的兼容性,能夠使緩沖區(qū)溢出的防護(hù)得到普及。

六、結(jié)束語(yǔ)

正因?yàn)榫彌_區(qū)溢出漏洞和攻擊形式的多樣性,相應(yīng)地防衛(wèi)手段也必須隨攻擊方法的不同而不同。每一種防衛(wèi)方法有其自身的優(yōu)缺點(diǎn),只有綜合運(yùn)用這些防衛(wèi)技術(shù)才能更有效的抵御緩沖溢出攻擊。

標(biāo)簽: