軟件安全性是指在非正常條件下不發(fā)生安全事故的能力,一般分為應(yīng)用程序級別的安全性和系統(tǒng)級別的安全性。應(yīng)用程序級別的安全性包括對數(shù)據(jù)或業(yè)務(wù)功能的訪問,確保在預(yù)期的安全情況下操作者按照所屬用戶類型授權(quán)訪問相應(yīng)的功能和數(shù)據(jù)。操作系統(tǒng)級別的安全性包括系統(tǒng)登錄或遠(yuǎn)程訪問,確保操作者按照已授權(quán)的訪問權(quán)限訪問系統(tǒng)和應(yīng)用程序。
安全測試的基本類型:①安全功能測試?;谲浖陌踩δ苄枨笳f明,測試軟件的功能實現(xiàn)是否與安全需求一致、實現(xiàn)是否完備。主要的安全功能需求包括數(shù)據(jù)機(jī)密性、完整性、可用性、不可否認(rèn)性、身份認(rèn)證、授權(quán)、訪問控制、審計跟蹤、委托、隱私保護(hù)、安全管理等。②安全漏洞測試。從攻擊者的角度檢測軟件是否存在安全漏洞。安全漏洞是指軟件在設(shè)計、實現(xiàn)、操作、管理上存在的可被利用的缺陷或弱點(diǎn)。
安全測試的主要方法:①安全漏洞掃描。通過對程序源代碼進(jìn)行掃描,將程序數(shù)據(jù)流、控制流等信息與軟件安全規(guī)則庫進(jìn)行匹配,檢測代碼中潛藏的安全漏洞。該方法通常借助特定的漏洞掃描器完成,漏洞掃描器是一種能自動檢測遠(yuǎn)程或本地主機(jī)安全性弱點(diǎn)的程序。安全漏洞掃描可以在編碼階段找出可能存在安全風(fēng)險的程序代碼,幫助開發(fā)人員及早解決潛在的安全問題。②安全功能驗證。采用黑盒測試技術(shù)對涉及安全的軟件功能(如用戶管理模塊、權(quán)限管理模塊、加密系統(tǒng)、認(rèn)證系統(tǒng)等)進(jìn)行測試,主要是驗證相關(guān)的安全功能是否有效。③動態(tài)滲透測試。使用自動化工具或者人工的方法模擬黑客的輸入,對應(yīng)用程序進(jìn)行攻擊性測試,找出運(yùn)行時刻存在的安全漏洞。常見的攻擊方法包括冒充、重演、消息篡改、服務(wù)拒絕、內(nèi)部攻擊、外部攻擊、陷阱門等。該方法較為有效,但模擬的測試數(shù)據(jù)只能到達(dá)有限的測試點(diǎn)、覆蓋率較低。