自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件安全知識(shí)之漏洞類別

安全 漏洞
C和C++語言規(guī)范未定義具有內(nèi)存管理漏洞的程序的行為。因此,觀察到的具有漏洞的程序的行為將取決于語言的實(shí)際實(shí)現(xiàn)。從安全的角度來看,內(nèi)存管理漏洞尤其危險(xiǎn),因?yàn)樵谠S多實(shí)現(xiàn)中,分配給程序的可變內(nèi)存單元是存儲(chǔ)已編譯程序代碼和運(yùn)行時(shí)元數(shù)據(jù)(如調(diào)用堆棧)的相同內(nèi)存地址空間。

漏洞類別

如簡(jiǎn)介中所述,我們使用術(shù)語實(shí)現(xiàn)漏洞(有時(shí)也稱為安全漏洞)來表示使攻擊者可能違反安全目標(biāo)的錯(cuò)誤,以及支持特定攻擊技術(shù)的bug類。

實(shí)施漏洞在網(wǎng)絡(luò)安全中發(fā)揮著重要作用,并且有多種形式。常見漏洞和披露(CVE)是一個(gè)公開的條目列表,采用標(biāo)準(zhǔn)化形式,描述廣泛使用的軟件組件中的漏洞,以及在撰寫本文時(shí),它列出了近十萬個(gè)此類漏洞。實(shí)現(xiàn)漏洞通常是由不安全的編程實(shí)踐引起的,并受開發(fā)人員使用的編程語言或API的影響。第一個(gè)主題涵蓋了可歸因于此類不安全編程實(shí)踐的重要實(shí)現(xiàn)漏洞類別。

現(xiàn)有的脆弱性分類,如共同弱點(diǎn)枚舉(CWE),一個(gè)社區(qū)制定的脆弱性類別列表,可作為脆弱性識(shí)別、緩解和預(yù)防的基線,但沒有一個(gè)現(xiàn)有的分類已經(jīng)成功地提出了一個(gè)完整的分類法。因此,第一個(gè)主題中討論的類別應(yīng)被視為重要類別的脆弱性示例,而不是詳盡無遺的清單。選擇它們的目的是涵蓋最常見的實(shí)現(xiàn)漏洞,但這種選擇至少在某種程度上是主觀的。

特定類別的實(shí)現(xiàn)漏洞通??梢悦枋鰹檫`反軟件系統(tǒng)某些子組件的(正式或非正式)規(guī)范。這樣的規(guī)范采用合同的形式,明確子組件的期望,并提供給其客戶。在違反此類合同時(shí),軟件系統(tǒng)進(jìn)入錯(cuò)誤狀態(tài),軟件系統(tǒng)的進(jìn)一步行為通常是系統(tǒng)開發(fā)人員未考慮的行為,并且依賴于系統(tǒng)實(shí)現(xiàn)詳細(xì)信息。系統(tǒng)的攻擊者可以研究實(shí)現(xiàn)細(xì)節(jié)并利用它們使系統(tǒng)以攻擊者所需的方式運(yùn)行。

內(nèi)存管理漏洞

命令式編程語言支持可變狀態(tài),即這些語言具有用于分配存儲(chǔ)單元的構(gòu)造,這些存儲(chǔ)單元隨后可以分配給程序或由程序讀取,然后再次釋放。編程語言定義指定如何正確使用這些構(gòu)造:例如,分配n存儲(chǔ)單元將返回對(duì)單元數(shù)組的引用,然后可以使用索引0到訪問該數(shù)組n1直到再次釋放(釋放)引用。此規(guī)范可以看作是內(nèi)存管理子組件的協(xié)定。某些編程語言實(shí)現(xiàn)此協(xié)定防守和將扔一例外如果a客戶程序訪問記憶錯(cuò)誤。其他編程語言(最特別是C和C++)離開這責(zé)任為正確分配,訪問和解除分配記憶在這手之這程序員和說錯(cuò)誤地訪問或管理內(nèi)存的程序的行為是定義.這種語言有時(shí)被稱為內(nèi)存不安全與內(nèi)存管理相關(guān)的語言和錯(cuò)誤(內(nèi)存管理漏洞)是這些安全漏洞的臭名昭著的來源語言。

? 空間漏洞是指程序索引到有效的連續(xù)存儲(chǔ)單元范圍,但索引超出范圍的錯(cuò)誤。典型的示例是緩沖區(qū)溢出漏洞,程序訪問具有越界索引的數(shù)組(緩沖區(qū))。

? 臨時(shí)漏洞是程序訪問曾經(jīng)分配給程序但后來已解除分配的內(nèi)存的錯(cuò)誤。一個(gè)典型的例子是取消引用懸空指針。

C和C++語言規(guī)范未定義具有內(nèi)存管理漏洞的程序的行為。因此,觀察到的具有漏洞的程序的行為將取決于語言的實(shí)際實(shí)現(xiàn)。從安全的角度來看,內(nèi)存管理漏洞尤其危險(xiǎn),因?yàn)樵谠S多實(shí)現(xiàn)中,分配給程序的可變內(nèi)存單元是存儲(chǔ)已編譯程序代碼和運(yùn)行時(shí)元數(shù)據(jù)(如調(diào)用堆棧)的相同內(nèi)存地址空間。在此類實(shí)現(xiàn)中,違反內(nèi)存管理協(xié)定的程序訪問可能會(huì)導(dǎo)致對(duì)已編譯的程序代碼或運(yùn)行時(shí)元數(shù)據(jù)的訪問,并且因此可能導(dǎo)致程序代碼、程序控制流和程序數(shù)據(jù)損壞。存在各種強(qiáng)大的攻擊技術(shù)來利用內(nèi)存管理漏洞[3]。

攻擊包括向程序提供輸入以觸發(fā)漏洞,從而使程序違反內(nèi)存管理協(xié)定。攻擊者選擇輸入,以便程序訪問攻擊者感興趣的存儲(chǔ)單元:

? 在代碼損壞攻擊中,無效的內(nèi)存訪問將編譯的程序代碼修改為攻擊者指定的代碼。

? 在控制流劫持攻擊中,無效內(nèi)存訪問修改代碼指針(例如,堆棧上的返回地址或函數(shù)指針),以使處理器執(zhí)行攻擊者提供的代碼(直接代碼注入攻擊),或使處理器重用程序的現(xiàn)有代碼以意外的方式(代碼重用攻擊,也稱為間接代碼注入攻擊,例如返回libc攻擊或面向返回的編程攻擊)。

? 在僅數(shù)據(jù)攻擊中,無效的內(nèi)存訪問會(huì)修改程序的其他數(shù)據(jù)變量,從而可能導(dǎo)致攻擊者的權(quán)限增加。

? 在信息泄漏攻擊中,無效內(nèi)存訪問是讀取訪問,可能導(dǎo)致信息泄露,無論是應(yīng)用程序機(jī)密(如加密密鑰)還是運(yùn)行時(shí)元數(shù)據(jù)(如有助于預(yù)測(cè)的地址)的確切內(nèi)存布局,因此可能會(huì)啟用其他攻擊。

由于這些類別的攻擊具有實(shí)際重要性,因此已經(jīng)開發(fā)了應(yīng)對(duì)特定攻擊技術(shù)的緩解技術(shù),我們將在主題4中討論這些技術(shù)。

責(zé)任編輯:武曉燕 來源: 河南等級(jí)保護(hù)測(cè)評(píng)
相關(guān)推薦

2023-05-13 00:06:33

2023-05-26 00:04:02

軟件安全漏洞

2023-05-15 07:41:50

2023-06-04 00:06:27

2021-12-31 06:58:25

網(wǎng)絡(luò)勒索軟件

2021-12-06 05:42:15

間諜軟件網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2021-11-29 09:51:39

防病毒軟件網(wǎng)絡(luò)安全惡意軟件

2023-08-29 00:12:59

2013-06-26 09:43:36

2013-09-29 10:05:24

2010-04-20 09:44:24

2021-12-14 00:09:35

軟件病毒安全

2010-08-30 13:07:31

2009-11-25 10:57:17

2015-03-18 11:35:39

2021-12-02 07:50:30

加密網(wǎng)絡(luò)安全

2023-04-27 10:13:54

2022-01-04 00:07:18

隱藏軟件文件

2022-01-13 00:03:46

網(wǎng)絡(luò)安全在線

2013-01-28 16:44:50

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)