軟件從簡單的家用冰箱到工業生產工業生產的各個方面。
過去,軟件中的問題只是重啟機器的一件小事,但現在軟件在大型行業中發揮了越來越大的作用。
軟件安全和質量的隱患可能會威脅到人身安全和環境。
在互聯網高度發達的當下,智能化的軟件成為商業決策、推廣等不可缺少的利器,很多軟件涉及了客戶商業上重要的信息資料,因此企業都很關心軟件的安全性。
目前有許多種的測試手段可以進行安全性測試,安全測試方法分主要為三種:
①靜態的代碼安全測試:
主要通過對源代碼進行安全掃描,根據程序中數據流、控制流、語義等信息與其特有軟件安全規則庫進行匹對,從中找出代碼中潛在的安 全漏洞。
靜態的源代碼安全測試是非常有用的方法,它可以在編碼階段找出所有可能存在安全風險的代碼,這樣開發人員可以在早期解決潛在的安全問題。
而正因為如此,靜態代碼測試比較適用于早期的代碼開發階段,而不是測試階段。
②動態的滲透測試:
滲透測試也是常用的安全測試方法。
是使用自動化工具或者人工的方法模擬黑客的輸入,對應用系統進行攻擊性測試,從中找出運行時刻所存在的安全漏洞。
這種測試的特點是真實有效,一般找出來的問題都是正確的,也是較為嚴重的。
但滲透測試一個致命的缺點是模擬的測試數據只能到達有限的測試點,覆蓋率很低。
③程序數據掃描。
一個有高安全性需求的軟件, 在運行過程中數據是不能遭到破壞的,否則會導致緩沖區溢出類型的攻擊。
數據掃描的手段通常是進行內存測試,內存測試可以發現許多諸如緩沖區溢出之類的漏洞,而這類漏洞使用除此之外的測試手段都難以發現。
例如,對軟件運行時的內存信息進行掃描,看是否存在一些導致隱患的信息,當然這需要專門的工具來進行驗證。