張永恒
海南師范大學(xué)信息科學(xué)技術(shù)學(xué)院,海南 ???70100
?
軟件安全漏洞檢測(cè)技術(shù)研究
張永恒
海南師范大學(xué)信息科學(xué)技術(shù)學(xué)院,海南海口570100
摘要:隨著我國(guó)信息技術(shù)的快速發(fā)展,越來(lái)越多的軟件滲入到人們的日常生活中,所以軟件系統(tǒng)的安全就成為了軟件開(kāi)發(fā)中的重要工作內(nèi)容。而軟件安全漏洞是威脅軟件安全的主要原因,很多黑客正是利用這一漏洞,通過(guò)代碼入侵到各大網(wǎng)站或者軟件程序中的。因而軟件安全漏洞檢測(cè)技術(shù)的研究成為人們關(guān)注的焦點(diǎn)。
關(guān)鍵詞:軟件技術(shù);安全漏洞;技術(shù)
現(xiàn)代信息技術(shù)的高速發(fā)展給人們的生活提供了便利,但是同時(shí)也帶來(lái)一些弊端,如用戶信息泄露、破壞網(wǎng)站系統(tǒng)等,這些問(wèn)題不僅會(huì)給人們?cè)斐梢欢ǖ慕?jīng)濟(jì)損失還會(huì)給人們帶來(lái)一定的生活困擾,所以提高軟件安全系統(tǒng)是很必要的。而軟件安全漏洞檢測(cè)技術(shù)是預(yù)防和保證軟件安全的主要手段,因而其檢測(cè)技術(shù)也成為人們關(guān)注的焦點(diǎn),就此本文與讀者對(duì)軟件安全漏洞檢測(cè)技術(shù)進(jìn)行通過(guò)探究。
近年來(lái),各種各樣的生活軟件受到人們的歡迎。如支付寶、百度錢包等是人們生活中常用的支付軟件不僅涉及到人們的真實(shí)身份信息還涉及到人們的財(cái)產(chǎn)安全,所以加強(qiáng)軟件安全漏洞檢測(cè)技術(shù)是很有必要的。一般分為兩種檢測(cè)方法即靜態(tài)檢測(cè)和動(dòng)態(tài)檢測(cè)。
(一)靜態(tài)檢測(cè)技術(shù)
所謂靜態(tài)檢測(cè)技術(shù)是對(duì)軟件的源程序或代碼進(jìn)行掃描,從語(yǔ)法、語(yǔ)義等方面來(lái)理解、分析程序的行為,從而找出其中的錯(cuò)誤代碼或者異常行為。隨著近年來(lái)程序語(yǔ)言的革新,靜態(tài)檢測(cè)技術(shù)逐漸分為兩種一是靜態(tài)分析,二是程序檢驗(yàn)。靜態(tài)分析是對(duì)軟件程序的源代碼進(jìn)行掃描然后根據(jù)語(yǔ)法,了解代碼語(yǔ)言含義和程序行為是否匹配,再按照漏洞特點(diǎn)和檢測(cè)標(biāo)準(zhǔn)完成檢測(cè)任務(wù)。程序檢驗(yàn)是指對(duì)面向抽象系統(tǒng)里的程序代碼進(jìn)行檢測(cè),其重點(diǎn)檢測(cè)內(nèi)容是軟件程序是否符合實(shí)際需求,從而檢測(cè)出軟件是否存在安全漏洞。靜態(tài)檢測(cè)技術(shù)側(cè)重是軟件內(nèi)部程序,檢測(cè)的關(guān)鍵在于對(duì)程序語(yǔ)言的檢測(cè)。程序檢測(cè)的側(cè)重點(diǎn)在于程序模型,主要是通過(guò)對(duì)軟件程序的有向圖和狀態(tài)機(jī)建立模型,來(lái)檢測(cè)軟件系統(tǒng)安全漏洞。一般分為兩種方法,一是符號(hào)化檢驗(yàn),二是模型自動(dòng)化檢驗(yàn)。靜態(tài)檢測(cè)技術(shù)的不足之處在于只能檢測(cè)一些符合漏洞描述標(biāo)準(zhǔn)的軟件漏洞,而對(duì)那些未知漏洞無(wú)法進(jìn)行檢測(cè)。
(二)動(dòng)態(tài)檢測(cè)技術(shù)
動(dòng)態(tài)檢測(cè)技術(shù)分為四種,分別為內(nèi)存映射、非執(zhí)行棧、安全共享庫(kù)以及沙箱方法。內(nèi)存映射是指通過(guò)在代碼中實(shí)施映射,使攻擊方的字符串末尾“NULL”的字符序列對(duì)內(nèi)存作出全覆蓋的行為,從而使得跳轉(zhuǎn)到簡(jiǎn)易區(qū)域內(nèi)存中的控制無(wú)法繼續(xù)進(jìn)行。非執(zhí)行棧指的是通過(guò)更改棧內(nèi)的執(zhí)行代碼使攻擊方送入棧內(nèi)的惡意代碼無(wú)法執(zhí)行,從而降低攻擊的成功率。這是針對(duì)對(duì)棧進(jìn)行攻擊的破壞行為。安全共享庫(kù)是指如果計(jì)算機(jī)有且執(zhí)行了安全系數(shù)較低的共享庫(kù)產(chǎn)生了安全漏洞,就可以采用在程序執(zhí)行階段對(duì)危險(xiǎn)系數(shù)較高的函數(shù)運(yùn)用進(jìn)行攔截并進(jìn)行測(cè)驗(yàn)的方法。這是針對(duì)安全度較低的軟件進(jìn)行的檢測(cè)技術(shù)。沙箱法就是借助程序的訪問(wèn)來(lái)限制來(lái)實(shí)現(xiàn)預(yù)防損害性攻擊的方法。最著名的案例就是360隔離沙箱,隔離沙箱是創(chuàng)建一個(gè)有部分權(quán)限的系統(tǒng)環(huán)境的副本。其中所有的程序和操作都是修改到副本之中,對(duì)真實(shí)的系統(tǒng)本身并沒(méi)有改變。動(dòng)態(tài)檢測(cè)技術(shù)相比于靜態(tài)檢測(cè)技術(shù)更加先進(jìn)、方便。
(一)避免競(jìng)爭(zhēng)性漏洞
競(jìng)爭(zhēng)性漏洞是一種常見(jiàn)的安全漏洞模式,在這個(gè)模式中,非授權(quán)用戶能夠破壞系統(tǒng)的完整性和密封性。對(duì)于這類漏洞主要是采用原子化操作方法。比如某個(gè)進(jìn)程在寫文件,而同時(shí)又有另一個(gè)進(jìn)程從同一位置讀取數(shù)據(jù),那么后一個(gè)進(jìn)程讀到的數(shù)據(jù)有可能是新內(nèi)容或舊內(nèi)容,也有可能是新舊內(nèi)容的混合。在設(shè)計(jì)程序時(shí),如果不采用措施避免這個(gè)問(wèn)題,就會(huì)很容易造成安全漏洞。如攻擊者將會(huì)有權(quán)限讀取任意的文件。
(二)避免緩沖區(qū)漏洞
緩沖區(qū)溢出是一種常見(jiàn)的編程錯(cuò)誤。在軟件開(kāi)發(fā)過(guò)程中,工作人員經(jīng)常預(yù)留一部門特殊空間作為存放特殊信息的空間,如果沒(méi)有執(zhí)行對(duì)比存放數(shù)據(jù)大小和保存它空間大小的代碼,那么靠近分配空間的內(nèi)存就有會(huì)被攻擊覆蓋的危險(xiǎn)。比如一段代碼的執(zhí)行結(jié)果是打印html下某個(gè)HTML文件的內(nèi)容,把html作為Red Hat服務(wù)器上Apache的httpd服務(wù)程序默認(rèn)的文檔根目錄,當(dāng)這段代碼接受一個(gè)文件名,并把它作為參數(shù)傳給open函數(shù)時(shí),黑客就有可能把…/…/…/etc/shadow當(dāng)作參數(shù)輸入的話,就會(huì)顯示出/etc/shadow的內(nèi)容,并可能根據(jù)這些內(nèi)容破譯出root密碼。
(三)避免隨機(jī)性漏洞和字符串漏洞
對(duì)于隨機(jī)性漏洞,在預(yù)防是可以采用性能良好、自帶密碼算法的隨機(jī)發(fā)生設(shè)備。這樣在遭遇攻擊時(shí),就能夠確保數(shù)據(jù)流的安全。而對(duì)于字符串漏洞一般是采用格式常量使攻擊者無(wú)法創(chuàng)建格式串。
綜上所述,軟件安全漏洞檢測(cè)技術(shù)是保護(hù)計(jì)算機(jī)軟件系統(tǒng)安全的基本措施,所以工作人員應(yīng)該不斷學(xué)習(xí)和創(chuàng)新軟件安全漏洞檢測(cè)技術(shù),從而降低軟件安全攻擊率。
[參考文獻(xiàn)]
[1]李舟軍,張俊賢,廖湘科,馬金鑫.軟件安全漏洞檢測(cè)技術(shù)[J].計(jì)算機(jī)學(xué)報(bào),2015,04:717-732.
[2]鐘麗芳.計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)及其應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2013,12:59-60 +62.
[3]高妍.計(jì)算機(jī)軟件安全漏洞檢測(cè)技術(shù)與應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014,04:172-173.
中圖分類號(hào):TP309
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1006-0049-(2016)04-0213-01