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