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