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