軟件安全測試知識分享
一、軟件安全測試是什么
軟件安全測試主要是對軟件產(chǎn)品進行安全問題上的測試,找到系統(tǒng)中可能存在的安全隱患和面對非法入侵時的防范能力。
二、為什么要進行軟件安全測試
進行軟件安全測試歸根結(jié)底就是為了提升軟件產(chǎn)品的安全質(zhì)量,通過測試的過程盡量在軟件上線前找到安全問題并修復(fù)以降低成本,以及驗證系統(tǒng)中的保護機制在遇到實際問題時能否對系統(tǒng)進行保護,使之不受干擾和非法入侵。
三 軟件安全測試怎么做
一個完整的軟件安全測試,應(yīng)當(dāng)包括以下步驟:
1、部署與基礎(chǔ)結(jié)構(gòu)
部署有沒有包括內(nèi)部防火墻,網(wǎng)絡(luò)是否安全,目標(biāo)環(huán)境支持怎樣的信任級別,基礎(chǔ)結(jié)構(gòu)安全性需求的限制是什么。
2、輸入驗證
如何驗證輸入,是否驗證web頁輸入,是否對傳遞到組件或web服務(wù)的參數(shù)進行驗證,是否驗證從數(shù)據(jù)庫中檢索的數(shù)據(jù),是否依賴客戶端的驗證,應(yīng)用程序是否易受sql注入攻擊,應(yīng)用程序是否易受xss攻擊,如何處理輸入。
3、身份驗證
是否區(qū)分受限訪問和公共訪問,如何驗證數(shù)據(jù)庫身份。
4、授權(quán)
如何在數(shù)據(jù)庫中授權(quán)應(yīng)用程序,如何向最終用戶授權(quán),如何將訪問限定于系統(tǒng)級資源。
5、配置管理
是否保證配置存儲的安全
6、敏感數(shù)據(jù)
是否存儲機密信息,如何存儲敏感數(shù)據(jù),是否在網(wǎng)絡(luò)中傳遞敏感數(shù)據(jù),是否記錄敏感數(shù)據(jù)。
7、會話管理
是否限制會話生存期,如何確保會話存儲狀態(tài)的安全。
8、加密
如何確保加密密鑰的安全性。
9、參數(shù)操作
是否在參數(shù)過程中傳遞敏感數(shù)據(jù),是否驗證所有的輸入?yún)?shù),是否為了安全問題而使用http頭數(shù)據(jù)。
10、異常管理
是否使用結(jié)構(gòu)化的異常處理,是否向客戶端公開了太多的信息。