1. 首頁
  2. 計算機軟體

淺談計算機軟體的安全檢測技術

淺談計算機軟體的安全檢測技術

現在,各種計算機軟體在各行各業中得到了普遍的利用,成為人們生活和工作中不可或缺的部分。由此帶來的計算機軟體安全問題也隨著它的發展越來越複雜的影響著計算機的安全,計算機軟體的安全檢測技術就顯得尤為重要。

一、計算機軟體安全檢測技術概述

計算機軟體安全檢測是計算機軟體開發過程中的一個重要環節,它的目的是為了發現軟體所存在的故障和安全漏洞,從而及時的對計算機軟體的潛在安全問題進行更改。當前的計算機軟體安全檢測技術主要包括動態檢測和靜態檢測兩種方法。計算機軟體安全檢測是確定計算機軟體的安全性是否達到軟體預期設計的目標的一個過程,一般包括功能測試、滲透測試與驗證過程三個階段。包括安全功能與安全漏洞兩個方面的檢測,軟體安全功能涉及的方面比較多,包括機密性、授權、訪問控制以及安全管理等;而計算機軟體安全漏洞檢測則是對軟體可能存在的缺陷的檢測。

二、計算機軟體安全檢測的注意事項

在進行計算機軟體安全檢測是,要注意幾下的幾個問題:

一是要預先制定出檢測方案。首先要對計算機軟體有一個全面的瞭解,在此基礎上作出分析然後選擇一個合適的檢測技術,設計出檢測方案;其次在檢測人員的選擇上,要進行多元化的人員配置,安全分析人員、軟體設計人員和操作者都應參與檢測的工作,這樣可以保證在檢測的過程中對軟體的不同效能的檢測都能得到專業技術人員的指導和分析,提高安全檢測的效率。

二是在進行計算機軟體的安全檢測時,對於系統級、程式碼級與需求級的檢測是必須的。如果軟體的規模比較大,還要對軟體的結構的設計進行分析。在具體的操作中要從實際工作的需要來選擇合理的分析技術。模擬環境和分析工具相結合是較為有效的計算機軟體的安全檢測技術。

三、計算機軟體安全檢測技術的方法

(一)計算機軟體安全檢測的流程

一般情況下,規模較大的 軟體是由一定數量的子系統來構成的,每個子系統又由若干的小模組來構成。計算機軟體的安全檢測一般按照以下的步驟進行:首先是進行模組的測試,測試的物件是軟體設計中的最小單位,對模組進行測試的目的是發現系統的各個模組中可能存在的問題。然後是對由模組按照程式設計的要求組裝的系統進行檢測,並對於其相關的體系機構進行檢測。其次是在前兩個檢測的基礎上進行軟體的有效性檢測,有效性檢測的目的是對軟體的功能和效能進行檢測,檢測其是否與所設計的使用者的需求相符合。最後進行的是系統的檢測,測試軟體在整體的環境下的執行安全情況。

(二)當前計算機軟體安全檢測的主要方法

一是形式化的安全檢測。形式化的安全檢測是確立軟體的數學模型,在透過形式規格的語言的支援提供形式化的規格說明。比較常見的形式規格語言有基於有限狀態的語言、基於模型的語言以及基於行為的語言。形式化的安全檢測有模型檢測和定量證明兩種形式的安全檢測方法。

二是基於模型的靜態安全檢測。模型安全檢測,既是透過軟體行為與結構建模的方式,形成一個測試的模型,此模型同時可滿足計算機對其的可讀性。模型安全檢測的方式與上述的形式安全檢測的方式相比較而言,並不側重於讓檢測的軟體系統與規格說明在所有的情況下都保持一致,而是從模型生出一組試用例,使用這組試用例來測試軟體系統,來說明軟體的安全性。比較常用的模型安全檢測方法包括有線狀態機檢測和馬爾科夫鏈的檢測。

三是語法檢測。語法檢測技術是根據語法對被檢測軟體的功能介面的語法生成軟體進行輸入的測試,測試軟體在不同的輸入條件下產生的不同的反應。一般語法檢測適用於檢測源程式中存在安全隱患的C語言函式和系統的呼叫,並透過軟體介面語言的識別、定義語言的語法以及以語法為基礎進行生產測試用例,同時進行安全檢測。

四是基於故障注入的軟體安全檢測。故障注入的安全檢測是應用故障分析樹與故障數的最小割集來檢測的。故障樹分析法透過將系統最不該發生的事件做為頂事件,再以此尋找導致事故發生的中間事件與低事件,再透過邏輯閘符號將頂事件、中間事件和低事件之間的關係進行連線,形成故障樹。故障樹檢測擁有較高的檢測自動化程度,是比較合理的計算機軟體安全檢測的方法。

五是模糊測試和基於屬性的測試。模糊測試一般是基於白盒的模糊測試,較傳統的模糊測試技術有所進步,白盒模糊檢測方法有效的結合了傳統的'模糊測試技術和動態測試用例檢測技術的優點。基於屬性的測試方法首先要確定計算機軟體的安全程式設計規則,以此來作為安全屬性來驗證軟體系統程式的程式碼是否遵守了這些規則。基於屬性的安全檢測法的優點是能夠較好的分析軟體安全漏洞的擴充套件性及安全性等。

六是混合檢測技術。混合檢測技術是指將計算機的靜態安全檢測技術和動態安全檢測技術相結合的一種檢測技術,它能有效的改善靜態技術和動態技術檢測存在的一些缺陷,從而更好的對計算機軟體的安全進行檢測。當前主要的檢測技術包括二進位制程式碼改編技術、測試庫技術、基於規範的檢測技術、基於異常的檢測技術等。混合檢測技術在一定程度上提高了軟體安全檢測的準確性,是較合理的檢測方式。

七是基於Web服務的檢測技術。近年來,隨著Web服務技術的發展和廣泛的應用,基於此的分散式軟體安全檢測技術也隨之產生和發展,它是一種基於識別內容的分散式Web伺服器技術。具有語言中立、互動操作性強等優點,能夠將複雜的安全檢測分解為子安全型別進行處理,以使其可以更有效的應對複雜的安全檢測的需要。分散式安全檢測還採用了故障注入機制來生成錯誤的soap訊息,來用於異常測試。此種檢測方法在實踐中具有高效、先進和靈活的特點,能夠對軟體的可靠性、容錯性和安全性的檢測到達較高的標準。

四、總結

計算機軟體的安全檢測技術是保證計算機和網際網路安全的基礎,必須不斷的加強檢測技術的創新,以保證計算機軟體的安全,促進計算機軟體的發展。