加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

新思科技憑借Coverity Scan幫助NGINX確保代碼質(zhì)量和安全

2021/07/12
490
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

新思科技(Synopsys)在Forrester Wave?發(fā)布的《2021年第一季度靜態(tài)應(yīng)用安全測試》報告中被評為領(lǐng)導者。在此次評估中,新思科技Coverity靜態(tài)分析解決方案在“現(xiàn)有產(chǎn)品”類別中獲得最高分,并且在“策略”類別中名列前三。多年來,全球許多企業(yè)和組織都采用Coverity,以降低安全風險、確保應(yīng)用程序靈活性,并迅速向市場提供新功能。NGINX是其中一家。

NGINX背景介紹
NGINX開源(發(fā)音為“engine x”)是全球最廣泛的Web服務(wù)器之一,為Netflix、Hulu、Pinterest和GitHub等站點提供支持,憑借其高性能、穩(wěn)定性、豐富的功能集、簡單的配置和資源消耗低等優(yōu)勢而廣受贊譽。 NGINX開源系列的其它成員包括NGINX JavaScript(njs),一個向NGINX添加JavaScript支持的模塊; NGINX Unit,動態(tài)應(yīng)用服務(wù)器,支持用Perl、Python、Ruby、Node. Js、Go、Java和PHP.njs編寫的應(yīng)用。

所有三個NGINX開源項目的開發(fā)人員都使用新思科技Coverity Scan?查找并修復其代碼中的缺陷。新思科技(Synopsys)提供免費在線服務(wù),并由與新思科技商業(yè)Coverity靜態(tài)分析工具使用的一樣的引擎提供支持,Scan可幫助開源開發(fā)人員識別代碼缺陷,以便快速、輕松地進行補救。

NGINX軟件編寫者兼聯(lián)合創(chuàng)始人Igor Sysoev在2014年的一次采訪中說:“我堅信開源的力量。NGINX是一個針對非常具體問題的實驗,即如何在單個現(xiàn)有服務(wù)器上處理更多客戶。原來這是一個普遍的問題。當意識到NGINX確實有助于提高Web性能時,我希望人們使用它,因此我將其設(shè)為開源?!?

NGINX開放源代碼版本還可以用作反向代理、負載平衡器、郵件代理和HTTP緩存的Web服務(wù)器,為超過4億個網(wǎng)站提供支持,其中包括Netflix、Hulu、Pinterest和GitHub等品牌。Igor Sysoev在2011年與合作伙伴共同創(chuàng)立了NGINX,以提供對NGINX 開源的正式支持,并提供商業(yè)版本NGINX Plus,該版本在NGINX 開源中增加了企業(yè)級功能。

2019年,NGINX被應(yīng)用安全和交付公司F5 Networks收購。如今,NGINX的開源項目家族包括njs(向NGINX添加JavaScript支持的模塊)和NGINX Unit(動態(tài)應(yīng)用服務(wù)器)。

挑戰(zhàn):確保開源代碼的質(zhì)量及安全
NGINX聯(lián)合創(chuàng)始人兼工程副總裁Maxim Konovalov介紹道:“在創(chuàng)立NGINX不久之后,我們就將Coverity Scan集成到了CI / CD流程中。自2012年以來,我們每天都在提交NGINX構(gòu)建工件。”

Maxim Konovalov繼續(xù)說:“在許多情況下,NGINX充當互聯(lián)網(wǎng)前端,其安全性和穩(wěn)定性對其用戶至關(guān)重要。我的團隊對提升代碼質(zhì)量孜孜不倦,并一直在尋找最佳實踐和工具以改進代碼質(zhì)量。諸如Coverity Scan之類的靜態(tài)代碼分析工具為我們提供了很大的幫助。”

NGINX將公司視為數(shù)百萬個應(yīng)用程序和網(wǎng)站的基礎(chǔ)技術(shù),并嚴格要求自己。代碼質(zhì)量和安全是NGINX企業(yè)精神的一部分。對于開發(fā)實踐來說,有效的工具必不可少。

解決方案:采用Coverity Scan進行靜態(tài)代碼分析
人們通常認為大多數(shù)軟件漏洞是因為惡意攻擊,但其實不然,這主要是由于代碼錯誤導致的。GitHub發(fā)布的2020年度安全報告“2020 State of the Octoverse”顯示,GitHub從2019年到2020年發(fā)送警報的漏洞中,有83%是由于編碼錯誤引起的,而不是惡意攻擊。

但是惡意攻擊確實會利用代碼中的缺陷,開發(fā)人員需要使用主動檢測工具來發(fā)現(xiàn)他們編寫的代碼中的錯誤。靜態(tài)分析根據(jù)一組編碼規(guī)則檢查源代碼,以發(fā)現(xiàn)常見的編碼錯誤。已在scan.coverity.com注冊項目的開源開發(fā)人員可以免費使用這項服務(wù),與新思科技的商業(yè)Coverity靜態(tài)分析工具所使用的引擎是相同的,該功能可幫助開源開發(fā)人員識別代碼缺陷,以便快速、輕松地進行補救。Linux Foundation在2020年的一份開源貢獻者的報告中指出,受訪者“絕大多數(shù)都引用Coverity Scan和Clang安全檢查器”作為主要靜態(tài)分析工具。

成效:掃描了658,000行代碼,缺陷密度為0.02%
2021年1月, Coverity Scan為NGINX分析了658,665行代碼,并發(fā)現(xiàn)了各種代碼缺陷,其中包括兩個CWE Top 25缺陷。由于F5 Networks定期使用Coverity Scan,NGINX項目的缺陷密度(每1,000行代碼的缺陷數(shù))僅為0.02%。

Maxim Konovalov贊賞道:“Coverity Scan為我們增加價值。我經(jīng)常推薦Coverity Scan及其在代碼提交中提供特定缺陷ID的功能。實際上,我是FreeBSD提交者小組的成員,我們也使用Coverity Scan進行FreeBSD的代碼分析?!?br /> ?

相關(guān)推薦

電子產(chǎn)業(yè)圖譜