軟件安全性是一個廣泛而復(fù)雜的主題,每一個新的軟件總可能有完全不符合所有已知模式的新型安全性缺陷出現(xiàn)。要避免因安全性缺陷問題受各種可能類型的攻擊是不切實際的。在軟件安全測試時,運用一組好的原則來避免不安全的軟件上市、避免不安全軟件受攻擊,就顯得十分重要。
一、軟件安全性測試基本概念
軟件安全性測試包括程序、網(wǎng)絡(luò)、數(shù)據(jù)庫安全性測試。根據(jù)系統(tǒng)安全指標(biāo)不同測試策略也不同。
1、用戶程序安全的測試要考慮問題包括:
?、?明確區(qū)分系統(tǒng)中不同用戶權(quán)限;
?、?系統(tǒng)中會不會出現(xiàn)用戶沖突;
?、?系統(tǒng)會不會因用戶的權(quán)限的改變造成混亂;
④ 用戶登陸密碼是否是可見、可復(fù)制;
⑤ 是否可以通過絕對途徑登陸系統(tǒng)(拷貝用戶登陸后的鏈接直接進入系統(tǒng));
?、?用戶推出系統(tǒng)后是否刪除了所有鑒權(quán)標(biāo)記,是否可以使用后退鍵而不通過輸入口令進入系統(tǒng)。
2、系統(tǒng)網(wǎng)絡(luò)安全的測試要考慮問題包括:
① 測試采取的防護措施是否正確裝配好,有關(guān)系統(tǒng)的補丁是否打上;
?、?模擬非授權(quán)攻擊,看防護系統(tǒng)是否堅固;
?、?采用成熟的網(wǎng)絡(luò)漏洞檢查工具檢查系統(tǒng)相關(guān)漏洞;
?、?采用各種木馬檢查工具檢查系統(tǒng)木馬情況;
?、?采用各種防外掛工具檢查系統(tǒng)各組程序的客外掛漏洞。
3、數(shù)據(jù)庫安全考慮問題:
?、?系統(tǒng)數(shù)據(jù)是否機密(比如對銀行系統(tǒng),這一點就特別重要,一般的網(wǎng)站就沒有太高要求);
?、?系統(tǒng)數(shù)據(jù)的完整性;
?、?系統(tǒng)數(shù)據(jù)可管理性;
?、?系統(tǒng)數(shù)據(jù)的獨立性;
?、?系統(tǒng)數(shù)據(jù)可備份和恢復(fù)能力(數(shù)據(jù)備份是否完整,可否恢復(fù),恢復(fù)是否可以完整)。
二、根據(jù)軟件安全測試需要考慮的問題
1、保護了最薄弱的環(huán)節(jié)
攻擊者往往設(shè)法攻擊最易攻擊的環(huán)節(jié),這對于您來說可能并不奇怪。即便他們在您系統(tǒng)各部分上花費相同的精力,他們也更可能在系統(tǒng)最需要改進的部分中發(fā)現(xiàn)問題。這一直覺是廣泛適用的,因此我們的安全性測試應(yīng)側(cè)重于測試最薄弱的部分。
如果執(zhí)行一個好的風(fēng)險分析,進行一次最薄弱環(huán)節(jié)的安全測試,標(biāo)識出您覺得是系統(tǒng)最薄弱的組件應(yīng)該非常容易,消除最嚴(yán)重的風(fēng)險,是軟件安全測試的重要環(huán)節(jié)。
2、是否具有縱深防御的能力
縱深防御背后的思想是:使用多重防御策略來測試軟件,以至少有一層防御將會阻止完全的黑客破壞。 “保護最薄弱環(huán)節(jié)”的原則適用于組件具有不重疊的安全性功能。當(dāng)涉及到冗余的安全性措施時,所提供的整體保護比任意單個組件提供的保護要強得多,縱深防御能力的測試是軟件安全測試應(yīng)遵循的原則。
3、是否有保護故障的措施
大量的例子出現(xiàn)在數(shù)字世界。經(jīng)常因為需要支持不安全的舊版軟件而出現(xiàn)問題。例如,比方說,該軟件的原始版本十分“天真”,完全沒有使用加密。現(xiàn)在該軟件想修正這一問題,但已建立了廣大的用戶基礎(chǔ)。此外,該軟件已部署了許多或許在長時間內(nèi)都不會升級的服務(wù)器。更新更聰明的客戶機和服務(wù)器需要同未使用新協(xié)議更新的較舊的客戶機進行互操作。該軟件希望強迫老用戶升級,沒有指望老用戶會占用戶基礎(chǔ)中如此大的一部分,以致于無論如何這將真的很麻煩。怎么辦呢?讓客戶機和服務(wù)器檢查它從對方收到的第一條消息,然后從中確定發(fā)生了什么事情。如果我們在同一段舊的軟件“交談”,那么我們就不執(zhí)行加密。
遺憾的是,老謀深算的黑客可以在數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)時,通過篡改數(shù)據(jù)來迫使兩臺新客戶機都認(rèn)為對方是舊客戶機。更糟的是,在有了支持完全(雙向)向后兼容性的同時仍無法消除該問題。
對這一問題的一種較好解決方案是從開始就采用強制升級方案進行設(shè)計;使客戶機檢測到服務(wù)器不再支持它。如果客戶機可以安全地檢索到補丁,它就升級。否則,它告訴用戶他們必須手工獲得一個新的副本。但是從一開始就應(yīng)準(zhǔn)備使用這一解決方案,就會得罪早期用戶。