Coverity推出新的開源代碼分析
代碼的靜態(tài)分析不能夠找出所有的問題,有些時(shí)候漏洞存在于建構(gòu)過程中。
軟件開發(fā)的過程具有多個(gè)層次。在最基本的層面是程序員寫的代碼,這些代碼接下來會(huì)被建構(gòu)系統(tǒng)編譯,建構(gòu)系統(tǒng)將這些代碼集中在一起以備部署。代碼分析廠商Coverity現(xiàn)在正在擴(kuò)大其分析能力,期望超越靜態(tài)分析的層次以找出被構(gòu)建系統(tǒng)忽視的漏洞。
新的分析模式有助于減少應(yīng)用程序中的軟件缺陷。Coverity的新系統(tǒng)首先會(huì)提供給自己的商業(yè)客戶但是也會(huì)放到已經(jīng)從開源軟件中減少了8500個(gè)軟件缺陷的開源掃描中。
Coverity的首席技術(shù)官Ben Chelf稱,建構(gòu)系統(tǒng)本質(zhì)上是代碼的裝配線,它將寫好的代碼集中到一起。通過分析建構(gòu)系統(tǒng),我們會(huì)找到不同于以往分析代碼本身的一些東西。
他還解釋稱,建構(gòu)分析軟件會(huì)監(jiān)視軟件的建構(gòu)過程,而不是分析分析實(shí)際建立配置文件本身。
Coverity所做的是讓每一個(gè)建構(gòu)系統(tǒng)都具備的監(jiān)視功能向操作系統(tǒng)發(fā)出調(diào)用,并執(zhí)行該操作,這樣所有的信息都會(huì)處于監(jiān)視之中。所以 Coverity擁有超過80個(gè)不同的系統(tǒng)調(diào)用來獲取建構(gòu)信息,然后只需讓一個(gè)包裝腳本監(jiān)視就可以了。這樣以來,就可以建立可靠的圖表了。
開源掃描
Coverity從2006年開始就為軟件缺陷進(jìn)行開源代碼的掃描。起初,Coverity Scan 是由美國國土安全部支持的,但是現(xiàn)在=這項(xiàng)工作由Coverity自己運(yùn)行并提供資金上的支持。Coverity Scan著眼于幾百個(gè)開源項(xiàng)目,旨在幫助我們尋找并修復(fù)軟件瑕疵。
Chelf指出該計(jì)劃旨在盡快向開源掃描添加建構(gòu)分析儀,盡管他并未告知具體的實(shí)施時(shí)間。Chelf說:“這想計(jì)劃一直在我們的開源掃描的路線圖之中,實(shí)施只是時(shí)間安排上的問題。Chelf認(rèn)為Coverity建構(gòu)分析系統(tǒng)是在代碼分析市場(chǎng)中將占據(jù)一席之地。
在這之外,Coverity的競(jìng)爭(zhēng)對(duì)手Klocwork聲稱他們現(xiàn)在也可以建立類似的建構(gòu)分析系統(tǒng)。“現(xiàn)在,我們的大多數(shù)建構(gòu)分析技術(shù)都用來為客戶的建構(gòu)系統(tǒng)提供自動(dòng)化的查找服務(wù)以便能有效而準(zhǔn)確地分析代碼。”Klocwork的營(yíng)銷總監(jiān)Brendan Harrison說,“對(duì)于代碼深度分析來說,這是一項(xiàng)必不可少的功能。此外,我們過去曾合作的許多用戶都使用我們的分析功能并通過結(jié)構(gòu)化的代碼清理來優(yōu)化自己的建構(gòu)過程。”
防止開源攻擊
Coverity建構(gòu)系統(tǒng)也能讓開發(fā)人員確保自己編寫的代碼沒有在無意中為攻擊大開方便之門。
Chelf解釋稱,在與Palamida的軟件合作過程中,一個(gè)程序員可以檢查整個(gè)建構(gòu)過程以識(shí)別是否在開源代碼中存在可以被攻擊的缺陷。Palamida保存了更新的開源數(shù)據(jù)庫和應(yīng)用程序,并且如果有舊的,具有潛在威脅的開源代碼被使用時(shí),它會(huì)監(jiān)測(cè)出來。
來自Coverity的新型代碼分析由新的Coverity整合中心執(zhí)行,該中心旨在將各種代碼分析的片段聯(lián)系起來,為開發(fā)人員提供全新的認(rèn)識(shí)。作為 Coverity防護(hù)代碼分析(用來進(jìn)行靜態(tài)代碼分析和新的建構(gòu)分析)的伙伴,整合中心也可以實(shí)現(xiàn)今年早些時(shí)候推出的架構(gòu)分析。
“有多種不同的分析軟件的系統(tǒng),從架構(gòu)角度,從建構(gòu)角度已經(jīng)從代碼角度,”Chelf說,“我們可以選擇任何喜歡的方式。所有這些不同的角度都能幫助我們以不同的方式找到軟件中的漏洞。”
【編輯推薦】