文/李曦琛
計算機軟件中安全漏洞檢測技術的應用
文/李曦琛
由于計算機軟件中存在著安全漏洞問題,這樣也就給信息系統產生出了安全隱患。因此,在實際中就要及時對計算機軟件進行分析,運用好安全漏洞檢測技術,保證信息的安全。下面我們主要就其檢測技術以及實踐進行簡要的分析。
計算機軟件 安全 檢測
軟件的安全與否決定了計算機能否穩定的運行,假如軟件當中存在一定的安全漏洞就會影響到計算機的安全。之所以會出現安全漏洞,通常情況下是由于軟件技術人員的失誤而導致的,要想確保計算機能夠安全的工作,進行安全檢測的人員就必須要制定相應的行之有效的防范措施。
1.1.1 靜態分析
所謂的靜態分析其實主要是掃描軟件系統內部的源代碼,然后按照其掃描結果來進行語法和關鍵句的查找。通常來講,我們在顯示中經常用到的靜態分析檢測技術能夠分為以下幾種:詞法檢測、推斷檢測以及評注計算機軟件程序等三種。詞法檢測在執行時要先進行分析,首先可以通過檢查語法方面的內容,將系統劃分為若干片段,然后參照數據庫來進行比較分析,檢測漏洞是否存在。然而這樣做的不足之處在于對數量上有限制,但是這種檢測工作缺點是檢測數量有限經常會出現漏檢或者是重檢的情況;所謂的推斷檢測其實就是對程序當中的一些變量和函數進行自動分析,然后再根據分析結果并參照他們規范化的類型和方式做出相應的分析,從而判斷其是否真的有安全漏洞的存在的一種措施。評注計算機軟件程序其實就是是指通過“tainted”來對計算機軟件的外部數據進行標記,隨后相關的技術人員對其做評注的過程中需要結合排查和分析的結果來進行。
1.1.2 程序檢測
主要借用一些抽象軟件當中的程序獲取一些形式化程序以及模型,再采用形式化的漏洞檢驗方法來對其展開檢測,最后使用正確檢測方法對電腦漏洞進行整體檢測。要想順利的完成模型檢測離不開電腦系統內部程序相關的有向圖以及狀態機。一般來講,檢測的方法可以分為兩種,即自動模型轉換和符號化。自動模型轉換需要將檢測程序進一步轉變成等價的自動機,在將這兩個自動機相互補充、替換,從而形成新的自動機,然后再將判定的系統轉變成能夠容納的語言形式進行檢測。而所謂的符號化其實就是用比較通俗易懂的公式來描述抽象模型,而結果是否合乎標準通過公式一看便知。
許多黑客經常使用“NULL”表現在尾部的字符串來對內存進行覆蓋,以此來實現攻擊目的。應用代碼存在頁面之中映射技術可以使黑客在使用“NULL”尾部字符串對內存進行覆蓋,這使得跳轉到相對簡單內存區域的相關操作顯得十分困難。要想徹底解決必須在保證不改變源代碼的基礎上來進行動態檢測,我們可以通過修改計算機運行環境的方法來進行安全漏洞的檢測,但是這樣做的缺點在于會對計算機的穩定工作造成一定的影響。盡管安全漏洞可以通過動態檢測的手段檢測出來,然而在檢測的時候通常還會產生新的問題,如此將會對計算機的整體安全再一次造成損害,要想徹底有效的防止安全漏洞的產生,最直接的方法就是對黑客的惡意代碼進行攔截。然而如此做的話,就需要對計算機的操作層進行修改設置,假如在操作的時候產生了一些問題,就會對計算機的整體性能造成嚴重的損害,不但解決不了問題,還會導致安全漏洞更加頻繁的發生。在對軟件的運行過程進行檢測的時候,少不了會占據一定的存儲空間,而軟件分配的區域為堆,在編程的初始階段,形成初始的數據段,堆以及數據不能夠執行代碼,對于黑客的入侵起到了很好的防范作用。還有就是能夠利用設計相關的C++等程序來檢測安全漏洞,然而這樣做的不足之處就是會留有一定的安全隱患,在運行C++程序的時候,會在一定程度上提高出現漏洞的機率,這樣的話要再想增強計算機的整體安全性,就必須要用到安全共享庫等相關技術,來阻隔函數的不安全行為,在一定程度上預防安全漏洞的產生。
對于競爭性的漏洞來講,可采取把相關編碼原子化的方式操作。原子化最為最小的編碼,往往不會有礙于程序的運行。利用原子化來鎖定程序,間接的調用文件系統名稱,從而對所用文件的名稱進行描述。
對隨機產生的安全問題進行預防和檢查的過程中,務必要選擇性能好的隨機發生設備。要想更好的保證隨機數流的安全性,就必須對隨機發生設備自身設置密碼算法,如此當軟件出現安全漏洞的時候,就能夠按照所掌握的算法的整體細節進行完整數據流的獲取,在受到攻擊的時候確保計算機能夠正常工作。
要想很好的對緩沖區的漏洞進行預防,就需要檢查軟件中危險系數高的函數。對于一些不安全的軟件版本進行及時的更新。例如,人們可以將原來 extern char strcat替換成 extern char strncat等。
Windows操作系統窗口的應用能夠進行數據的輸出,同時還可以降低計算機軟件漏洞對信息傳輸的威脅。一般來講,格式化字符串在不定參數的個數函數中產生的機率很高,所以,在應用該類函數的時候,不但要確保其均衡性還要保證其個數。
通過對計算機的運用,我們發現安全漏洞的出現會對其穩定運行造成一定的威脅,要想很好的解決這一問題就必須要采用相應的安全檢測技術來對其進行預防和解決。現階段,在計算機的操作過程中,依舊存在著一定的安全漏洞,因此我們必須要不斷的改進檢測技術,從而更好的防止和解決計算機軟件中存在的安全漏洞,在一定程度上確保計算機能夠安全穩定的運行,從而更好的服務于人民。
[1]李曉南.基于數據綜合分析的軟件安全漏洞靜態檢測平臺設計與實現[D].電子科技大學,2011.
[2]劉欣.Windows 2000操作系統的安全漏洞檢測方法及其安全對策的研究[D].中國電力科學研究院,2005.
[3]盧廣.網絡安全中入侵檢測系統的設計與實現[D].大慶石油學院,2003.
作者單位Case Western Reserve University
李曦琛(1994-),湖北 省武 漢市人。Macromolecular專業。