隨著網絡安全在全球范圍內的興起,企業對安全的細致程度也在不斷增加。就目前最火熱的Web在線應用來說,能在網絡層對其起到防護作用的產品就有很多種。
比如NIPS網絡入侵防御系統、Web應用防火墻、USG/UTM安全網關、NGFW下一代防火墻……
部署環境通常是這樣:
通過在數據中心和DMZ的Web應用服務器前端部署Web應用防火墻/IPS入侵防御系統之類的設備,將威脅消滅在國門之外。
但是,對于那些要求更高的單位來說,外部防御固然很重要,但內部的Web程序安全性和穩定性更是必不可少。
通常,對于Web程序的審計會有測試工程師來做,那些測試人員會在精心準備的測試中發現漏洞和bug,并且將其遞交到開發人員那里,進行新一輪的除錯。如圖所示。
這樣做的優點是誤報率較低,但缺點也很明顯——不是每個人都能在長時間集中注意力找到所有bug和漏洞的。而現在高昂的人力成本,更是讓安全工程師的招聘成為難題。
于是,市面上慢慢出現了一些自動化的代碼測試工具。這些工具的誕生,讓程序員稍微松了口氣。將所有的功能實現后,再用代碼測試工具檢查一下。有錯誤馬上修改,沒有發現錯誤即可馬上打包上線。
通常,由于是自動化測試工具,誤報肯定是不能避免,但對于完全用人工來說,卻是大大的提高了效率,節約了成本。
以Coverity公司的自動測試工具為例,這樣的工具可以在開發階段就介入測試,從分析缺陷、修復缺陷到管理缺陷。最快速度的推進產品上線。
目前,很多大型軟件/互聯網公司都會將這類工具和有經驗的安全審計人員配合起來工作,以達到最佳效果。加上之前在網絡層部署的防御,雙管齊下,讓Web應用安心上線。
附:
Coverity Prevent的優勢:
1、完全靜態測試,完全智能化,不需要寫測試用例就能找出程序中的關鍵Bug,包括程序動態運行時發生的錯誤(如指針越界、溢出、數組越界等),并且能夠準確定位程序出錯的位置;
2、分析速度快,工作效率高,10萬行代碼大約只需10分鐘左右;
3、分析Bug準確度高,誤報率很低,官方統計的識誤報率低于15%,客戶實際反饋大都低于10%;
4、測試可達100%的路徑覆蓋;
5、即可測試嵌入式程序,也可測試桌面程序,支持大代碼量(幾十萬行,甚至幾百萬行)分析;
6、支持多種語言:C,C++,C#和Java;
7、極大縮短產品上市時間,大大降低測試成本。