【摘 要】本文概述了計算機軟件安全漏洞檢測技術(shù)中的靜態(tài)檢測技術(shù)和動態(tài)檢測技術(shù),總結(jié)了安全漏洞檢測技術(shù)的應(yīng)用。
【關(guān)鍵詞】計算機軟件;安全漏洞;檢測技術(shù);應(yīng)用
當今的時代是信息時代,計算機軟件的作用顯得非常重要,各種各樣的源代碼增加速度突飛猛進。很多黑客針對軟件中存在的源代碼漏洞開展了攻擊行為,使系統(tǒng)遭到破壞,信息數(shù)據(jù)被竊取,嚴重危害了用戶的安全。相關(guān)統(tǒng)計數(shù)據(jù)表明,計算機軟件安全漏洞問題變得越來越嚴重,黑客攻擊趨于巨大的經(jīng)濟利益。所以,務(wù)必要加強安全漏洞檢測,確保計算機軟件安全運行。
一、檢測技術(shù)概述
(一)靜態(tài)檢測技術(shù)
一開始采用靜態(tài)分析的方法對軟件安全漏洞進行靜態(tài)檢測,但是,由于檢驗的方法只是表面的形式,隨著不斷的發(fā)展,靜態(tài)分析與程序檢驗成為靜態(tài)檢測的主要內(nèi)容。
1.靜態(tài)分析。主要是掃描系統(tǒng)程序的源代碼,同時找到語法和關(guān)鍵句,對含義進行解讀,然后分析程序,嚴格依據(jù)漏洞的性質(zhì)與系統(tǒng)安全要求完成檢測。靜態(tài)分析的第一步是分析語法和關(guān)鍵句,對系統(tǒng)軟件的語法方面進行嚴格的檢查。將系統(tǒng)程序分解成片段,把這些片段和有疑惑的數(shù)據(jù)庫進行分析對比,一旦有漏洞存在或有疑問存在,就開始工作判定和評估。因此,可以說,盡管可以檢測到漏洞存在,但是只能對有限的漏洞數(shù)量進行檢測,同時所檢測到的漏洞很多已經(jīng)存在,有些漏洞可能被漏報;第二步是依據(jù)檢測標準進行認真檢測。通常來說系統(tǒng)程序可以穩(wěn)定運行就符合安全標準。此時就要采用規(guī)則處理的方法進行檢測,依據(jù)這個標準描述語法的模式,然后使用規(guī)則處理器進行接收變換成內(nèi)部的一種表達方式,然后,對系統(tǒng)程序進行全面的檢測。
2.程序檢驗。主要是使用抽象系統(tǒng)程序?qū)⒛P秃统绦蛐问交?,然后開展形式化的檢測分析,采用科學檢驗方法對系統(tǒng)漏洞的問題進行檢測。重要的是建立檢驗的模型,對系統(tǒng)程序狀態(tài)機與有向圖等構(gòu)建成抽象的模型,對系統(tǒng)的特征進行檢測。一般采用2種方法開展檢驗,即模型自動轉(zhuǎn)化和符號化檢驗。模型自動轉(zhuǎn)化檢驗是將程序變?yōu)榈葍r自動機,然后將2個自動機互相替換補充成新的自動機,可以容納的形式語言成為了最終判定系統(tǒng),模型檢驗一般是把現(xiàn)實存在的可能情況先列舉出來,由于軟件系統(tǒng)具有非常的復雜性,導致難以建全部的模型,因此只能針對部分程序與屬性進行抽象建模。符號化檢驗是把抽象模型轉(zhuǎn)變成語法樹進行公式的描述,然后判斷公式是否和需求相符。最近幾年新模型檢測技術(shù)得到了一定的發(fā)展,采用內(nèi)存建模的方式對時序漏洞進行檢驗過,然后再采用定理對檢測漏洞進行證明,具有更強的嚴密性。靜態(tài)檢測對漏洞的類別進行檢驗,由于不存在漏洞描述的要求標準,不能對未知漏洞進行描述和判定,不能對現(xiàn)有漏洞進行全面的覆蓋,所以靜態(tài)檢測具有較大的性能缺陷,只有投入較多的資金才能提高檢測質(zhì)量。
(二)動態(tài)檢測技術(shù)
1.非執(zhí)行棧。當前有很多棧對軟件進行攻擊的問題,主要是由于系統(tǒng)內(nèi)棧的執(zhí)行方面及讀寫方面出現(xiàn)了一些問題。數(shù)組變量和內(nèi)部變量是棧主要包括的2個變量,因此攻擊者能夠在棧里任意的寫入惡意代碼,采用其他方法運行代碼。所以說將棧變換成不能執(zhí)行的代碼形式就可以對攻擊進行有效預防。
2.內(nèi)存映射。很多攻擊者大都采用以NULL作為結(jié)尾的字符串覆蓋內(nèi)存完成對軟件安全的攻擊。采用內(nèi)存映射技術(shù)可以增加覆蓋內(nèi)存的難度,不能直接跳轉(zhuǎn)到內(nèi)存區(qū)操作。從另一方面講,因為代碼頁內(nèi)存映射比較隨機,在某些情況上可以減少需要對地址進行猜測而進行頁面攻擊。
3.沙箱。經(jīng)過限制程序訪問資源來避免惡意的攻擊。比如,C語言方面的調(diào)動函數(shù)沒有真正的存在軟件當中,一旦在軟件運行過程中有相似的調(diào)動函數(shù)存在,說明已經(jīng)被攻擊。所以,采用沙箱方法能夠在被攻擊前對惡意攻擊進行限定,在被攻擊后也沒有損害。
4.安全共享庫。很多軟件安全漏洞的產(chǎn)生基本是由于共享庫存在不安全問題。采用安全共享庫能夠防止人為的攻擊。安全共享庫指在程序運行時使用動態(tài)鏈接對不安全函數(shù)進行攔截,并對其檢測。一般較廣的應(yīng)用在UNIX與windows操作系統(tǒng)。
二、檢測技術(shù)應(yīng)用
(一)對競爭性漏洞進行預防
對于競爭性漏洞,應(yīng)采用原子化操作形式對其進行預防。在程序運行的過程中,編碼不會被任何問題所干擾。原子化操作形式主要指的是先限制,然后通過預防特定狀態(tài)因為改變而導致的問題,間接對應(yīng)用文件名進行調(diào)用,然后描述句柄或文件。
(二)對隨機性漏洞進行預防
對于隨機性漏洞,可通過使用性能比較好的設(shè)備進行預防。因為設(shè)備的密碼算法是自帶的密碼,可以保證安全的隨機數(shù)流,軟件即便遇到了惡意的攻擊,算法的細節(jié)被掌握,也不能獲取數(shù)據(jù)流。
(三)對緩沖區(qū)漏洞進行預防
對于緩沖區(qū)漏洞,要對軟件程序內(nèi)的不安全函數(shù)進行檢查來進行預防,將高版本的安全軟件取代有安全問題的軟件。
(四)對字符串漏洞進行預防
對于字符串漏洞的預防,可以在數(shù)碼內(nèi)采用直接的格式常量,避免攻擊者創(chuàng)建新的格式串。一般情況下,個數(shù)函數(shù)假如不定參數(shù),都會有字符串漏洞,所以采用這種函數(shù)能夠保證每個參數(shù)的均衡性和個數(shù)達標。
三、結(jié)束語
對軟件程序進行重新的設(shè)計和編寫,是預防安全漏洞,確保軟件安全的主要手段。所以,計算機技術(shù)人員要不斷努力,強化安全漏洞檢測技術(shù),保障計算機軟件運行安全穩(wěn)定。
參考文獻:
[1] 齊燕.淺談計算機軟件中安全漏洞檢測技術(shù)的應(yīng)用[J].信息與電腦(理論版).2010(10)
[2] 陳楷.計算機軟件中安全漏洞檢測技術(shù)的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用.2010(07)
[3] 薛磊磊.談計算機安全漏洞動態(tài)檢測的原理方法與實踐[J].科技促進發(fā)展(應(yīng)用版).2010(10)
[4] 李永華,竇春軼.談計算機安全漏洞動態(tài)檢測的原理方法與實踐[J].數(shù)字技術(shù)與應(yīng)用.2010(07)
[5] 臺飛,高凌燕.安全漏洞檢測技術(shù)在計算機軟件中的應(yīng)用分析[J].電子制作.2013(14)
[6] 閆云鋒.計算機軟件安全漏洞檢測技術(shù)探究[J].民營科技.2012(11)
作者簡介:
樊世斌,男,漢族,1985年8月生(320721198508042414),2008年7月畢業(yè)于西北大學,信息與計算科學本科,現(xiàn)從事信息管理工作,研究方向:醫(yī)療軟件的實用性及安全性分析。