魏南強(qiáng)
摘 要:隨著信息全球化的進(jìn)程不斷加速,計(jì)算機(jī)技術(shù)已經(jīng)廣泛深入到人們生活的方方面面。網(wǎng)絡(luò)中的黑客攻擊事件不斷發(fā)生,病毒入侵不斷泛濫,人們對(duì)于信息安全的保護(hù)顯得愈發(fā)重要。計(jì)算機(jī)軟件自身的安全漏洞給惡意分子帶來了可乘之機(jī),因此計(jì)算機(jī)軟件的安全也日益?zhèn)涫苤匾?。如何有效的檢測計(jì)算機(jī)軟件中的各種漏洞便成為一個(gè)備受關(guān)注的話題。只有軟件自身的安全等到保證,才能更加有效地保護(hù)用戶的信息安全。本文的主要目的是研究計(jì)算機(jī)軟件中安全漏洞的檢測,首先說明了計(jì)算機(jī)軟件中可能出現(xiàn)的漏洞,然后分析了當(dāng)前主要的兩大類檢測方法,靜態(tài)分析與動(dòng)態(tài)檢測兩大類,并介紹了它們在實(shí)際中的相關(guān)應(yīng)用。
關(guān)鍵詞:計(jì)算機(jī)軟件;安全漏洞;靜態(tài)分析;動(dòng)態(tài)檢測
1 概述
1.1 技術(shù)背景
計(jì)算機(jī)技術(shù)的發(fā)展促進(jìn)了信息全球化的進(jìn)程,提高了計(jì)算機(jī)的普及,人類的各個(gè)領(lǐng)域都已離不開計(jì)算機(jī)應(yīng)用。然而,計(jì)算機(jī)軟件的安全漏洞對(duì)人類的生產(chǎn)生活是一個(gè)巨大的隱患。即使是防火墻的設(shè)置,入侵檢測技術(shù)和殺毒軟件也不能避免計(jì)算機(jī)軟件自身漏洞帶來的威脅。因此,我們要盡量減少計(jì)算機(jī)軟件中的安全漏洞,并及時(shí)檢測已有的漏洞。[1]
1.2 安全漏洞
安全漏洞是指軟件、硬件的組件或協(xié)議的實(shí)現(xiàn)上存在的不受保護(hù)的缺陷,導(dǎo)致惡意攻擊者的利用,在未授權(quán)的情況下入侵系統(tǒng),從而威脅的系統(tǒng)的信息安全。
當(dāng)今社會(huì)有五類最容易被人們忽視的安全漏洞,分別是Zlib、Net-snmp、Geronimo2.0、jboss應(yīng)用服務(wù)器和Libtiff開源軟件庫。一般情況下計(jì)算機(jī)軟件的安全所面臨的威脅主要有軟件跟蹤、軟件自身質(zhì)量問題、非法復(fù)制等都會(huì)給用戶帶來一定程度的困擾。
2 計(jì)算機(jī)軟件中安全漏洞的檢測技術(shù)
如今計(jì)算機(jī)安全漏洞的檢測技術(shù)有了一定程度的發(fā)展,目前社會(huì)上主要有兩大檢測方法:靜態(tài)分析和動(dòng)態(tài)檢測。
2.1 靜態(tài)分析技術(shù)
靜態(tài)分析技術(shù)主要是關(guān)注程序的代碼,通過程序分析技術(shù)來分析應(yīng)用程序的二進(jìn)制代碼或源代碼。靜態(tài)分析技術(shù)掃描程序代碼,檢測程序的關(guān)鍵語法,解釋程序行為,從而檢測漏洞。靜態(tài)分析的優(yōu)點(diǎn)是程序不需要運(yùn)行,不需要對(duì)目標(biāo)程序代碼或操作系統(tǒng)做任何修改,檢測比較方便。缺點(diǎn)是存在大量的誤報(bào),無法完美地確定程序的任何重要屬性。下面介紹幾種主要的靜態(tài)分析技術(shù)。
⑴詞法檢測技術(shù):檢測程序源代碼中的系統(tǒng)調(diào)用與庫函數(shù),將待檢測軟件的語法作為輸入,檢測其在不同輸入條件下的反應(yīng)。這種方法速度很快,但后續(xù)需要一定的人工核實(shí)。⑵程序評(píng)注技術(shù):在程序源代碼中以注釋的形式人為的添加一些評(píng)注信息,這種方法的檢測結(jié)果會(huì)更加精確。[2]⑶類型推斷技術(shù):對(duì)編譯器進(jìn)行相應(yīng)的安全分析,比如在某些特殊數(shù)據(jù)類型上添加類型修飾來加強(qiáng)安全約束,以強(qiáng)制程序員進(jìn)行安全編程。⑷約束解算器技術(shù):對(duì)目標(biāo)程序源代碼的特定屬性進(jìn)行約束。⑸元編譯技術(shù):編程人員自身對(duì)安全屬性的要求被作為輕級(jí)編譯器進(jìn)行一定的安全檢測。每個(gè)擴(kuò)展的檢測器只能檢測一個(gè)小缺陷。⑹變異語言技術(shù):在實(shí)際應(yīng)用中使用變異的編程語言等安全編程技巧。⑺二進(jìn)制代碼的類型檢查:建立內(nèi)存的狀態(tài)描述,存儲(chǔ)記錄不信任程序的內(nèi)存值。通過檢測內(nèi)存的類型信息來推斷威脅安全的行為。
靜態(tài)分析技術(shù)能夠檢測出更多的弱點(diǎn)和缺陷,但是由于其誤報(bào)率較高,后續(xù)需花費(fèi)更大的人力進(jìn)行校驗(yàn)核實(shí),效率上就會(huì)有損失。
2.2 動(dòng)態(tài)檢測技術(shù)
動(dòng)態(tài)檢測技術(shù)是指在程序運(yùn)行的情況下,通過分析內(nèi)存、堆棧等運(yùn)行環(huán)境的變量,來檢測軟件中隱含的技術(shù)漏洞。動(dòng)態(tài)檢測技術(shù)的優(yōu)點(diǎn)是提高了程序的保密性,不需要修改應(yīng)用程序的二進(jìn)制代碼或源代碼。下面介紹幾種常見的動(dòng)態(tài)檢測方法。
⑴非執(zhí)行棧技術(shù):使棧中的代碼不能執(zhí)行。需要在操作系統(tǒng)中將棧頁標(biāo)記為不可執(zhí)行。⑵非執(zhí)行堆與數(shù)據(jù)技術(shù):使堆與數(shù)據(jù)段不可執(zhí)行。與非執(zhí)行棧技術(shù)結(jié)合使用能更好的維護(hù)軟件安全。⑶內(nèi)存映射技術(shù):通過使用映射代碼頁,避免攻擊者以NULL字符結(jié)尾來覆蓋內(nèi)存。⑷安全的共享庫技術(shù):通過動(dòng)態(tài)鏈接來檢測程序運(yùn)行過程中對(duì)不安全函數(shù)的調(diào)用。這種方法有較強(qiáng)的開發(fā)性,易配置。⑸沙箱技術(shù):在攻擊之前限制某些進(jìn)程所訪問的資源,從而在一定程度上避免某些攻擊。該技術(shù)目前主要應(yīng)用于系統(tǒng)調(diào)用方面。⑹程序解釋技術(shù):監(jiān)視程序的運(yùn)行及其行為,并通過解釋程序的執(zhí)行強(qiáng)制進(jìn)行安全監(jiān)測。[3]
動(dòng)態(tài)檢測技術(shù)在檢測到攻擊時(shí)會(huì)立即制止程序運(yùn)行,因此能方法漏洞惡意攻擊,但不能修補(bǔ)漏洞,因此無法徹底避免漏攻擊。
3 計(jì)算機(jī)軟件中安全漏洞檢測技術(shù)的應(yīng)用
目前,計(jì)算機(jī)軟件安全漏洞檢測技術(shù)主要應(yīng)用在以下幾個(gè)方面:競爭條件漏洞的預(yù)防,緩沖區(qū)溢出漏洞的預(yù)防,隨機(jī)數(shù)漏洞的預(yù)防以及格式化字符串漏洞的防范??傊S著互聯(lián)網(wǎng)技術(shù)的發(fā)展,計(jì)算機(jī)應(yīng)用的不斷深化,我們應(yīng)該投入更多的精力研究計(jì)算機(jī)軟件安全漏洞的檢測。
[參考文獻(xiàn)]
[1]陳楷.計(jì)算機(jī)軟件中安全漏洞監(jiān)測技術(shù)的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用.2010(07).
[2]徐巖柏.計(jì)算機(jī)軟件中安全漏洞監(jiān)測方法研究[D].北京郵電大學(xué).2006.
[3]江濤.計(jì)算機(jī)軟件安全漏洞檢測之分析探討[J].電子信息與計(jì)算機(jī)科學(xué).2013(11).