2.軟件安全測試方法
盡管傳統軟件測試方法重點在軟件功能測試,但是通過組織合適的測試步驟和適當的測試用例,也能對軟件的安全質量進行測試,可以采用的測試方法包括常見的白盒測試、黑盒測試以及灰盒測試等方法。在傳統測試之外,模糊測試和滲透測試是常用的軟件安全性測試方法。
1)模糊測試
模糊測試,也稱Fuzz測試,由Baron Mille、Lars Fredriksen、Bryan SO首次提出,是一種通過提供非預期的輸入并監視異常結果來發現軟件故障的方法。
模糊測試本質上屬于黑盒測試,它不關心被測試目標的內部實現,而是利用構造畸形的輸入數據引發被測試目標產生異常,從而發現相應的安全漏洞。據資料分析,模糊測試是目前最有效的漏洞挖掘技術,已知漏洞大部分都是通過這種技術發現的。
模糊測試的主要步驟包括:
(1)生成大量的畸形數據作為測試用例;
(2)將這些測試用例作為輸入應用于被測對象;
(3)監測和記錄由輸入導致的任何崩潰或異常現象;
(4)查看測試日志,深入分析產生崩潰或異常的原因。
模糊測試是在軟件測試中強制軟件程序使用畸形數據,并觀察軟件運行情況的一種測試方法。不夠強壯的代碼在處理這些畸形數據時會運行不穩定,或導致崩潰,而經過良好編碼并具有足夠安全性的程序則不會崩潰。