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