3.安全測試思路
許多軟件安全測試經驗告訴我們,做好軟件安全性測試的必要條件是:一是充分了解軟件安全漏洞,而是評估軟件安全風險,三是擁有高效的軟件安全測試技術和工具。
1)充分了解軟件安全漏洞
評估一個軟件系統(tǒng)的安全程度,需要從設計、實現和部署三個環(huán)節(jié)同時著手。例如CC 標準對軟件安全性的評估方式,首先確定軟件產品對應的保護策略(Protec,tion Profile,PP)。 一個PP定義了一類軟件產品的安全特性模板,例如數據庫的PP、防火墻的PP等。然后根據PP 再提出具體的安全功能需求,如用戶的身份認證實現。最后,確定安全對象以及是如何滿足對應的安全功能需求的。因此,一個安全軟件的三個環(huán)節(jié),哪個出問題都不行。我們要對這三個環(huán)節(jié)可能產生的安全漏洞有深刻的認識。
2)評估軟件安全風險
當做完安全性測試后,軟件是否能夠達到預期的安全程度呢?這是安全性測試人員最關心的問題,因此需要建立對測試后的安全性評估機制。一般從以下兩個方面進行評估。
一是安全性缺陷數據評估。如果發(fā)現軟件的安全性缺陷和漏洞越多,可能遺留的缺陷也越多。進行這類評估時,必須建立基線數據作為參照,否則評估起來沒有依據就無法得到正確的結論。
二是采用漏洞植入法來進行評估。采用漏洞植入法時,先讓不參加安全測試的特定人員在軟件中預先植入一定數量的漏洞,最后測試完后看有多少植入的漏洞被發(fā)現,以此來評估軟件的安全性測試做得是否充分。
3)采用安全測試技術和工具
可使用專業(yè)的具有特定功能的安全掃描軟件來尋找潛在的漏洞,將已經發(fā)現的缺陷納入缺陷庫,然后通過自動化測試方法來使用自動化缺陷庫進行測試。
安全測試是用來驗證集成在軟件內的保護機制是否能夠在實際中保護系統(tǒng)免受非法的侵入。一句通俗的話說:軟件系統(tǒng)的安全當然必須能夠經受住正面的攻擊,但是也必須臺邑夠經受住側面的和背后的攻擊。