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