軟件安全測試介紹 網站安全測試
軟件安全在當今互聯網應用普及的今天,軟件的安全性是越來越被重視。如何保證軟件應用的安全性,在軟件測試過程中的安全性測試就尤為顯得重要了。那么什么是軟件安全呢?軟件安全總是與被保護的信息和服務、攻擊者的技術和資源、潛在的保證安全方法的開銷有關系。 安全是風險管理的一個鍛煉,風險分析,尤其是在設計層面的風險分析可以幫助我們只別潛在的安全問題和他們的影響。 通過識別和鎖定軟件風險,可以幫助和指導軟件安全測試。 軟件可能被攻擊的弱點都存在哪里呢?軟件安全的弱點是有很多種類型,安全弱點在軟件系統中分布在從軟件的本地實現錯誤,至交互過程接口錯誤,到更高層的設計層面錯誤。軟件弱點大致分布在兩個范疇——在實現層的bug和設計層面的缺點。
風險管理和安全測試: 軟件安全工人員執行很多不同的任務去管理軟件安全風險,包括:
● 創建安全的abuse/misuse 用例
● 列出正常的安全需求
● 執行架構風險分析
● 建立基于風險的安全測試計劃
● 運用靜態分析工具
● 執行安全測試
● 執行滲透測試在最終環境
● 清理安全破壞后的環境
其中架構風險分析 基于風險的安全測試計劃和安全測試 是尤其緊密相關聯的三個部分。
如何執行安全測試: 誰去做安全測試,因為安全測試包括兩種方法,誰去做這個問題有兩種答案。標準測試組織用上寫方法能夠執行功能安全測試。例如確認訪問控制方法是否正常工作的測試就是一類功能安全測試。 另一個方面,傳統QA人員去執行基于風險的安全測試是很困難的,問題是安全測試是一個專門知識。首先安全測試的困難是測試設計者必須用一個攻擊者的思維去思考。第二,安全測試不經常導致直接的安全業績和顯示出被發掘的問題。所以說基于風險的安全測試依賴于更多專門的知識和更多的經驗。
怎么去做安全測試:把自己想象一個攻擊者,按攻擊者的思路去設計測試。白盒,黑盒測試和分析方法兩者都是去理解軟件,但是他們用不同的方法依區別是否分析人員和測試者已經訪問源代碼。白盒測試分析包括分析和理解源代碼和設計。他是非常典型和有效的發現程序錯誤的方法(bug-自動掃描代碼,缺點-做風險分析)。黑盒分析是通過輸入不同輸入值,來分析到正在運行的程序。這種測試只需要運行程序,不需要分析源代碼在安全范例中,惡意的輸入是一個有效的方法去破壞程序。如果程序真的被破壞了,那么我們可能真的發現了一個安全問題。只要測試人員能提供可能的輸入并且能觀察到測試效果,那么黑盒測試就可行。
常見的安全測試技術:
1. 網絡掃描:
2. 弱點掃描
3. 密碼破解
4. 日志檢查
5. 文件完整性檢查
6. 病毒探測
7. 無線網絡測試
8. 滲透測試
9. 事后測試
原文轉自:http://www.anti-gravitydesign.com