周 云,馬江洪
(西南計算機有限責任公司,重慶 400060)
淺談計算機軟件中安全漏洞檢測技術及其應用
周 云,馬江洪
(西南計算機有限責任公司,重慶 400060)
21世紀是科技迅速發展的時代,計算機技術從初級研究階段步入大爆發時期,各種計算機軟件技術層出不窮,為人們的工作和生活帶來翻天覆地的改變。然而在應用計算機信息系統和軟件的過程中,人們也面臨著很多風險,尤其是計算機軟件和信息系統中的漏洞會帶來一系列危害,因此計算機軟件安全漏洞檢測技術水平亟待提高。主要分析了有利于避免漏洞危害的檢測技術及其應用,期望能促進計算機安全漏洞檢測技術的發展。
計算機軟件;安全漏洞;檢測技術;靜態檢測
計算機行業已經成為社會領先發展的行業之一,計算機信息系統也逐漸滲透到方方面面,成為促進各領域發展的關鍵技術。
處于信息化時代環境下,企業和個人的私密信息都存儲在各種計算機軟件系統中,如果計算機軟件遭到惡意攻擊或者受病毒侵襲,就容易導致信息泄露或者丟失的嚴重后果。所以,技術人員必須時刻掌握計算機軟件的運行情況,加強對代碼安全漏洞的檢測,保證計算機信息系統能夠安全運轉。
安全漏洞是指計算機軟件系統中因各種原因造成的缺陷,隨缺陷的產生和加重會生成系統弱項,容易被其他程序攻擊,甚至會主動對本省軟件系統進行攻擊。計算機軟件安全漏洞產生的主要原因有以下2個:①在開發與研制期間,受到科研人員操作失誤影響給軟件系統埋下隱患,使網絡系統遭到黑客攻擊,如圖1所示;②在軟件系統運行過程中,因為系統程序長時間運作而積累各種“雜質”,其中存在威脅因素引發軟件系統出現安全漏洞[1]。
一般來說,軟件系統安全漏洞主要體現在以下2個方面:①功能性方面的漏洞,主要涉及計算機軟件系統的功能運行,如果程序內部存在功能性漏洞,就會導致計算機軟件運行結果出錯、運行流程錯誤等;②安全性漏洞,主要涉及計算機軟件啟動運作,例如軟件無法正常工作、對命令無法執行等。安全性漏洞經常會被黑客利用,掌握計算機軟件系統的控制權,通過惡意代碼竊取計算機軟件系統內部信息和數據,因此安全性漏洞的危險性更高。所以,伴隨著計算機軟件系統研究的發展,計算機軟件安全漏洞檢測技術也為研究人員所重視,促使其根據計算機安全漏洞的性質不斷研發安全漏洞檢測軟件,阻止電腦被惡意代碼攻擊,提高計算機的安全應對能力。
靜態檢測是計算機軟件漏洞檢測技術的主要類型,是通過程序分析技術對計算機系統程序中的源代碼或二進制代碼進行逐一分析,查找在代碼中可能存在的錯誤根源。
2.1.1 詞法檢測技術
詞法檢測,別稱“語法測試”,顧名思義是利用程序代碼中的語言進行漏洞檢測。計算機軟件系統源代碼出現問題,表現在程序危險C語言方面,利用詞法檢測對危險C語言中的庫函數和系統調用進行檢測,將存在危險傾向的內容編輯成語言進行測試,如果檢測軟件出現反應,即可確定危險源[2]。利用c/c++等語言構造詞法分析程序,可構造為圖2.其中,d={0,1,2,3,4,5,6,7,8,9},f代表“±”。
2.1.2 模型安全功能檢測技術
基于模型的安全功能檢測技術建立在數學思想和方法上,主要是利用計算機生成模型,以軟件系統行為和結構為基地,建成測試模型,然后驅動軟件進行系統安全漏洞掃描和測試。目前,已知具備該檢測功能的軟件技術包括馬爾科夫鏈和有限狀態機等。
2.1.3 規則檢測技術
規則檢測技術主要是對軟件系統程序進行檢測。當操作人員出現操作不當或者疏忽意外情況時,軟件程序會自行產生系統漏洞,并不為人發現。因此,規則檢測技術就被用來解決系統程序漏洞,通過規則描述特定語法,經由規則處理器處理后被分析器接受,最后與程序行為比對進行檢測。

圖2 識別實數的狀態轉換圖
動態檢測技術也是計算機軟件安全漏洞檢測技術的主要類型,主要通過修改內容、環境變量的方式對計算機軟件系統進行更改,提高程序安全水平。如圖3為某公司電腦漏洞系統工作流程圖。動態檢測技術相比靜態檢測技術存在一些不足之處,在消滅既有漏洞的情況下,可能會促使其他漏洞問題產生,因此還需加強對動態檢測技術的研究[3]。

圖3 某公司電腦漏洞系統工作流程圖
2.2.1 非執行棧
動態檢測技術能夠在系統運行過程時直接查找漏洞,主要方式包括非執行棧技術、非執行堆技術等。非執行棧技術可以及時發現黑客利用惡意代碼進行棧攻擊,主動停止系統棧的運作程序,減少因漏洞形成泄露信息和數據。執行這一操作需要注意的是,在操作層中要適當修改參數數據,對棧漏洞查找的同時需要防止其他問題的出現。
2.2.2 非執行堆
非執行堆技術內容主要是在計算機軟件程序編造時,直接設置數據段初始化,使軟件程序數據和信息得到鞏固,不會因黑客攻擊而使數據段被執行。這種檢測技術可以與非執行棧技術結合利用,使用效果更加明顯,可以預防程序運作過程中的漏洞危害,但是當前的技術水平還不足以完善非執行堆技術,所需要付出的代價是非常高的。
2.2.3 內存映射
內存映射技術是企業計算機軟件系統安全漏洞檢測技術的主要應用方法,利用內存映射可以實現程序代碼隨機映射,這樣就可以為系統重要文件提供安全保障。當有黑客對系統程序中的重要代碼進行惡意攻擊時,內存映射會隨機將被選中的代碼映射到其他幾個地址中,迷惑黑客,以此為技術人員破解攻擊拖延時間。
2.2.4 安全共享庫
安全共享庫技術解決的漏洞問題主要源于系統C++程序的設計,在程序設計和安裝階段,經常會因各種遺留問題造成軟件系統漏洞,比如危險函數、不安全程序等。通過安全共享庫,利用動態鏈接技術組織程序調用危險函數,然后對程序中有關危險函數的數據進行分析與檢查,可以迅速查找程序漏洞所在。
隨著信息化技術影響范圍的擴大,各行各業均開始進行計算機安全漏洞檢查技術的升級和應用,用以應對可能出現的影響計算機軟件系統正常運行的情況。
計算機軟件系統運行過程中會出現由競爭條件引發而成的漏洞,因而可以將相應的安全漏洞檢測技術應用于其中,尋找競爭條件產生漏洞的關鍵處。方法是在競爭條件出現的邊碼處進行原子化操作,改變編碼形式,將編碼狀態脫離競爭條件狀態,保持安全狀態。編碼是計算機軟件系統中的基本單位,如表1所示,利用原子化操作可以準確捕捉編碼狀態,通過鎖定計算機軟件系統編碼,鏟除干擾因素,能夠對使用的句柄或者文件進行準確描述[4]。

表1 計算機編制與編碼
隨機產生的漏洞情形是所有計算機軟件系統都會存在的問題,對軟件系統運作的危害很大。對于這樣的漏洞問題,采用的檢測技術依靠的是專業設備,現階段已經根據隨機漏洞產生特性研發出隨機發生設備,能夠通過自帶密碼的算法,提前捕捉軟件系統中的隨機數流。當漏洞出現存在被惡意攻擊情況時,隨即發生設備會及時阻止,使其獲取的數據流不完整,達到保護系統的目的[5]。
緩沖區出現漏洞,說明計算機軟件系統的安全漏洞檢測軟件可能無法檢測系統安全狀況。對此,可以根據軟件規格安裝新版本安全檢測技術軟件;與此同時,還可以在安全檢測軟件中加入具備危險函數檢測的功能,以此提高對漏洞的分析能力,預防緩沖區再次出現漏洞。
為了應對格式化字符串導致的漏洞問題,在實踐中會在軟件系統代碼上直接應用格式常量,直接杜絕格式串形成的源頭。此外,應用Windows操作系統下屬的窗口進行數據輸出工作,也能降低漏洞威脅率。
新時期,計算機技術勢必會被廣泛應用,成為人們工作和學習的助手,因此對計算機軟件系統安全漏洞檢測技術的探索是十分必要的。若想不斷鞏固計算機軟件系統的安全性,避免黑客的幕后攻擊,相關技術人員就要不斷掌握計算機軟件漏洞變化情況,根據實際持續提高漏洞安全檢測技術水平,創新安全漏洞檢測技術,保障計算機系統的安全。
[1]梁湘.淺析計算機軟件中安全漏洞檢測技術與應用[J].電腦迷,2017(02):61.
[2]謝劍.計算機軟件安全漏洞檢測技術的應用分析[J].信息與電腦(理論版),2016(03):201-202,205.
[3]朱力根.探析計算機軟件中安全漏洞檢測技術及其應用[J].信息通信,2015(04):124.
[4]王琰.關于計算機軟件中安全漏洞檢測技術的應用研究[J].電子制作,2015(01):233.
[5]臺飛,高凌燕.安全漏洞檢測技術在計算機軟件中的應用分析[J].電子制作,2013(14):75.
〔編輯:劉曉芳〕
TP393.08
A
10.15913/j.cnki.kjycx.2017.17.152
2095-6835(2017)17-0152-04