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