◆楊滿倉(cāng) 許 磊
(洛陽(yáng)師范學(xué)院信息技術(shù)學(xué)院 河南 471934)
關(guān)于計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)與應(yīng)用
◆楊滿倉(cāng) 許 磊
(洛陽(yáng)師范學(xué)院信息技術(shù)學(xué)院 河南 471934)
在信息技術(shù)快速發(fā)展的同時(shí),信息技術(shù)在我國(guó)多個(gè)領(lǐng)域中都得到了普及應(yīng)用,使人們的生活方式發(fā)生了改變,為人們的日常生活和工作帶來(lái)了便利。但在軟件系統(tǒng)中,安全漏洞問(wèn)題對(duì)信息系統(tǒng)產(chǎn)生較大的威脅,會(huì)導(dǎo)致計(jì)算機(jī)軟件系統(tǒng)中重要信息的流失。為了確保計(jì)算機(jī)軟件系統(tǒng)的安全性,本文就對(duì)計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)及其應(yīng)用進(jìn)行分析。
計(jì)算機(jī)軟件;安全漏洞;檢測(cè)技術(shù);應(yīng)用
隨著現(xiàn)代科技水平的顯著提升,計(jì)算機(jī)信息技術(shù)在各個(gè)領(lǐng)域及各個(gè)行業(yè)中都得到了廣泛的應(yīng)用,同時(shí)推出了大量的計(jì)算機(jī)軟件,為工作帶來(lái)了極大的便利,也為各行各業(yè)的發(fā)展帶來(lái)一定的經(jīng)濟(jì)效益[1]。在計(jì)算機(jī)軟件開(kāi)發(fā)過(guò)程中,源代碼的數(shù)量增加,計(jì)算機(jī)軟件中存在漏洞問(wèn)題增多,為網(wǎng)絡(luò)黑客的侵入提供機(jī)會(huì),也為計(jì)算機(jī)軟件的使用者帶來(lái)信息安全的威脅。目前計(jì)算機(jī)軟件的更新速度較快,漏洞出現(xiàn)頻次呈不斷增長(zhǎng)的趨勢(shì),因此就需要提高計(jì)算機(jī)軟件安全漏洞的檢測(cè)水平。計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)是彌補(bǔ)漏洞問(wèn)題和尋找漏洞的重要方式,為計(jì)算機(jī)軟件運(yùn)行的安全性和穩(wěn)定性提供充足的保障。
動(dòng)態(tài)安全檢測(cè)技術(shù)主要包括三個(gè)方面:(1)內(nèi)存映射問(wèn)題,網(wǎng)絡(luò)黑客在侵入軟件并進(jìn)行破壞和攻擊時(shí),為了達(dá)到自身的目的,通常會(huì)用以“null”結(jié)尾的字符來(lái)對(duì)計(jì)算機(jī)本身內(nèi)存進(jìn)行覆蓋,并采用代碼頁(yè)映射技術(shù)來(lái)使內(nèi)存覆蓋難度增加,無(wú)法輕松地跳轉(zhuǎn)到內(nèi)存區(qū)操作[2]。但從另一方面來(lái)看,代碼頁(yè)的隨即內(nèi)存映射在一定程度上使通過(guò)猜測(cè)地址來(lái)對(duì)頁(yè)面展開(kāi)攻擊的情況減少。(2)非執(zhí)行棧。目前棧攻擊軟件的問(wèn)題較多,主要是由于系統(tǒng)中棧的執(zhí)行方面和寫方面存在較多的問(wèn)題,棧中包括有數(shù)組變量和內(nèi)部變量,因此攻擊者可以在棧里隨意寫惡意代碼,并執(zhí)行代碼,如將棧轉(zhuǎn)變成無(wú)法執(zhí)行代碼的形式可以預(yù)防攻擊。(3)安全共享庫(kù)。大部分軟件存在安全漏洞問(wèn)題都是由于共享庫(kù)不安全所導(dǎo)致的,因此采用安全共享庫(kù)可以預(yù)防人為的攻擊性。安全共享庫(kù)主要是在程序運(yùn)行過(guò)程中采用動(dòng)態(tài)鏈接來(lái)攔截不安全函數(shù),并對(duì)這些函數(shù)進(jìn)行檢測(cè),一般在windows里應(yīng)用較為廣泛。
靜態(tài)安全檢測(cè)是對(duì)系統(tǒng)內(nèi)部安全性進(jìn)行檢測(cè),與漏洞有著一些共同的特點(diǎn),且這些特點(diǎn)本身就具有一定的聯(lián)系性。計(jì)算機(jī)漏洞可以分為內(nèi)存性漏洞與安全性漏洞。其中安全性漏洞主要是由于數(shù)據(jù)流誤差所導(dǎo)致,從一定程度上主要是由于內(nèi)存形態(tài)錯(cuò)誤形成的[3]。內(nèi)存性漏洞則與數(shù)據(jù)類別及數(shù)據(jù)準(zhǔn)確性有關(guān)??傮w來(lái)看,靜態(tài)安全檢測(cè)技術(shù)可以分為靜態(tài)分析法和程序檢驗(yàn)法兩種,其中靜態(tài)分析法主要是將相關(guān)模型在存儲(chǔ)空間中進(jìn)行構(gòu)建,并對(duì)程序代碼進(jìn)行掃描,深入分析程序代碼所包含的關(guān)鍵句,結(jié)合設(shè)置的漏洞標(biāo)準(zhǔn)及漏洞特性來(lái)對(duì)軟件系統(tǒng)進(jìn)行全面檢測(cè)。這種方法最早是對(duì)語(yǔ)法進(jìn)行分析,對(duì)相應(yīng)的語(yǔ)法進(jìn)行檢查,將系統(tǒng)程序劃分成一些不同的語(yǔ)句,將其與數(shù)據(jù)庫(kù)進(jìn)行直接比較,一旦發(fā)現(xiàn)有疑問(wèn)則將其與自身進(jìn)行詳細(xì)的判斷與分析,并按照相應(yīng)的檢測(cè)標(biāo)準(zhǔn)進(jìn)行全過(guò)程檢測(cè)。這種檢測(cè)方法雖然可以發(fā)現(xiàn)其中的漏洞問(wèn)題,但檢測(cè)數(shù)量有限,且檢測(cè)出的漏洞往往是人們所知的,其使用價(jià)值有限。
而程序檢驗(yàn)法則是通過(guò)抽象的軟件系統(tǒng)程序來(lái)得出形式化模型和程序,并通過(guò)形式化檢測(cè)來(lái)對(duì)軟件系統(tǒng)中的漏洞情況進(jìn)行科學(xué)的檢測(cè)。在檢測(cè)過(guò)程中首先需要對(duì)模型進(jìn)行檢驗(yàn),對(duì)系統(tǒng)程序的狀態(tài)機(jī)和有向圖建立相關(guān)抽象模型,對(duì)系統(tǒng)特征進(jìn)行檢測(cè)。一般來(lái)說(shuō)模型檢測(cè)有模型自動(dòng)轉(zhuǎn)化檢驗(yàn)和符號(hào)化檢驗(yàn)兩種,其中符號(hào)化檢驗(yàn)是將抽象的系統(tǒng)模型轉(zhuǎn)變?yōu)檎Z(yǔ)法樹(shù)來(lái)對(duì)公式進(jìn)行描述,并對(duì)公式與需求是否相符進(jìn)行判斷[4]。而模型的自動(dòng)轉(zhuǎn)化檢驗(yàn)則是將程序轉(zhuǎn)換成等價(jià)的自動(dòng)機(jī),并將兩個(gè)自動(dòng)機(jī)補(bǔ)充替換成新的自動(dòng)機(jī),最終對(duì)系統(tǒng)可容納的語(yǔ)言形式進(jìn)行判定。在模型檢驗(yàn)中,一般是先將現(xiàn)實(shí)中可能存在的情況一一列舉出來(lái),由于軟件系統(tǒng)具有復(fù)雜性,從而決定了不能全部建模,因此只能針對(duì)部分程序和屬性來(lái)建立抽象模型。但近年來(lái)建模技術(shù)和新模型檢測(cè)技術(shù)水平得到提高,可以采用內(nèi)存建模的方式來(lái)對(duì)過(guò)去時(shí)序中存在的漏洞進(jìn)行檢驗(yàn),并通過(guò)定理來(lái)對(duì)檢測(cè)的漏洞進(jìn)行證明,相比較來(lái)說(shuō)更加具有嚴(yán)密性。
靜態(tài)檢測(cè)技術(shù)只能對(duì)現(xiàn)有的漏洞類別進(jìn)行檢驗(yàn),由于缺乏漏洞的描述標(biāo)準(zhǔn),不能對(duì)未知的漏洞進(jìn)行判定和描述,對(duì)現(xiàn)有的漏洞也缺乏全面覆蓋的方法,因此靜態(tài)檢測(cè)的性能上存在較大的缺陷,要想提高系統(tǒng)檢測(cè)的質(zhì)量就需要投入大量的資金支持[5]。
競(jìng)爭(zhēng)性漏洞是指因競(jìng)爭(zhēng)條件出現(xiàn)而導(dǎo)致漏洞產(chǎn)生,在對(duì)競(jìng)爭(zhēng)性漏洞進(jìn)行預(yù)防時(shí)應(yīng)將因競(jìng)爭(zhēng)所形成的編碼采用原子化的操作方法,并將其作為執(zhí)行單位中最小編碼,由于在軟件系統(tǒng)的執(zhí)行單位中編碼是最小的,可以確保在程序運(yùn)行中不會(huì)存在任何因素的干擾問(wèn)題[6]。其中原子化操作是通過(guò)鎖定手段指將疑似漏洞的問(wèn)題先進(jìn)行鎖定,并通過(guò)某種預(yù)防狀態(tài)來(lái)使漏洞問(wèn)題進(jìn)行改變,對(duì)應(yīng)用文件名系統(tǒng)進(jìn)行間接調(diào)用,對(duì)所用文件或句柄進(jìn)行直接描述。
為了避免緩沖區(qū)的漏洞溢出問(wèn)題,可以通過(guò)對(duì)軟件程序中的危險(xiǎn)函數(shù)進(jìn)行檢查來(lái)加以預(yù)防,并用安全軟件版本來(lái)替代原本可能會(huì)存在安全漏洞問(wèn)題的版本,如將 extern char*strncat 版本來(lái)替代 extern-char*strcat 版本等。
在對(duì)系統(tǒng)軟件的安全漏洞問(wèn)題進(jìn)行防治過(guò)程中,在隨機(jī)發(fā)生設(shè)備選擇中采用一些性能較好的設(shè)備,這些設(shè)備自帶密碼算法,可以有效地保障隨機(jī)數(shù)流可靠性與安全性,即便在軟件受到攻擊的情況下,準(zhǔn)確掌握了算法的細(xì)節(jié),也不能得到相應(yīng)數(shù)據(jù)流。
在采用 Windows操作系統(tǒng)時(shí),窗口主要是實(shí)現(xiàn)數(shù)據(jù)輸出工作,降低漏洞威脅,通過(guò)嚴(yán)謹(jǐn)?shù)姆乐未胧?,在?shù)碼中采用格式常量不為網(wǎng)絡(luò)黑客攻擊者來(lái)創(chuàng)建格式串的機(jī)會(huì),避免字符串的漏洞問(wèn)題出現(xiàn)[7]。在系統(tǒng)設(shè)置時(shí)不定參數(shù)的個(gè)數(shù)函數(shù)通常也會(huì)出現(xiàn)格式化字符串漏洞問(wèn)題,在這種函數(shù)的應(yīng)用過(guò)程中需要確保各個(gè)參數(shù)的個(gè)數(shù)可均衡性。
從我國(guó)當(dāng)前的情況而言,計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)在不斷發(fā)展,也已經(jīng)成為計(jì)算機(jī)通信技術(shù)及系統(tǒng)安全的重要檢測(cè)方法,對(duì)計(jì)算機(jī)軟件系統(tǒng)的安全性提供了保障,而對(duì)軟件系統(tǒng)的消除安全漏洞程序進(jìn)行編寫也是確保計(jì)算機(jī)軟件安全的基本措施。為了促進(jìn)計(jì)算機(jī)信息技術(shù)的更好發(fā)展,就需要重視計(jì)算機(jī)軟件的安全漏洞問(wèn)題,避免嚴(yán)重的信息安全問(wèn)題,為用戶的信息安全提供充足的保障,同時(shí)也要對(duì)安全漏洞檢測(cè)技術(shù)加以應(yīng)用并不斷完善,從多個(gè)方面來(lái)對(duì)計(jì)算機(jī)軟件系統(tǒng)進(jìn)行檢測(cè)。在檢測(cè)技術(shù)的應(yīng)用中需要從多個(gè)角度來(lái)進(jìn)行安全漏洞檢測(cè),并對(duì)漏洞檢測(cè)類型進(jìn)
一步明確,確保計(jì)算機(jī)的信息安全。
[1]羅宏偉.計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)及其應(yīng)用[J].硅谷,2012.
[2]謝劍.計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)的應(yīng)用分析[J].信息與電腦(理論版),2016.
[3]朱江.計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)及其應(yīng)用[J].通訊世界,2016.
[4]陳棟良.計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)及其應(yīng)用[J].軟件,2013.
[5]汪剛.淺析計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)[J].電子制作,2014.
[6]鮑彬,武云濤.計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)與應(yīng)用[J].中國(guó)新通信,2016.
[7]梁湘.淺析計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)與應(yīng)用[J].電腦迷,2017.
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2017年10期