現(xiàn)在,軟件產(chǎn)品迭代地越來越快,代碼量越來越大,向外暴露的接口越來越多,為漏洞攻擊者留下了更多利用漏洞的機(jī)會。開發(fā)和安全團(tuán)隊(duì)需要借助可靠的自動化工具,盡量在軟件開發(fā)生命周期 (SDLC) 的早期解決安全問題和質(zhì)量缺陷,才能構(gòu)建可信軟件。
Visuality Systems Ltd. 總部位于以色列約克尼穆,是全球領(lǐng)先的服務(wù)器消息塊 (SMB) 協(xié)議解決方案開發(fā)商和供應(yīng)商。該解決方案是一種數(shù)據(jù)和打印機(jī)通信協(xié)議,可跨網(wǎng)絡(luò)節(jié)點(diǎn)提供對文件和打印機(jī)的共享訪問。 Visuality Systems 擁有超過 150 家客戶,提供最全面的 Microsoft SMB 客戶端和 SMB 服務(wù)器解決方案,用于各種嵌入式產(chǎn)品、基于 Java 的應(yīng)用程序和存儲系統(tǒng)。
挑戰(zhàn):代碼質(zhì)量和安全測試愈加嚴(yán)格
Visuality Systems自動化經(jīng)理Limor Segal-Shevah表示:“軟件安全是我們客戶的優(yōu)先事項(xiàng),他們期望Visuality Systems等合作伙伴可以提供可信軟件。Visuality Systems希望清楚地證明,我們的解決方案經(jīng)過了嚴(yán)格的測試,以保護(hù)客戶的產(chǎn)品和應(yīng)用。”
Visuality Systems致力于開發(fā) SMB 客戶端和基于服務(wù)器的解決方案,主要客戶包括消費(fèi)設(shè)備、航空航天和國防、汽車以及工業(yè)和醫(yī)療設(shè)備領(lǐng)域的行業(yè)領(lǐng)導(dǎo)者。 Visuality Systems的 NQ 產(chǎn)品線是當(dāng)今世界上最常用的商業(yè) SMB 解決方案。
Limor Segal-Shevah指出:“無論是打印機(jī)、家用電器、Java應(yīng)用程序、醫(yī)療設(shè)備還是汽車娛樂系統(tǒng),我們的客戶創(chuàng)建了運(yùn)行在不同硬件和軟件上的各種軟件應(yīng)用,并且每個應(yīng)用都有特定的要求。”
Limor Segal-Shevah 補(bǔ)充道:“所有設(shè)備都需要網(wǎng)絡(luò)連接,因?yàn)樵诋?dāng)今世界,設(shè)備和應(yīng)用程序不能單獨(dú)運(yùn)作。許多應(yīng)用程序和嵌入式設(shè)備通過服務(wù)器消息塊或SMB協(xié)議(Windows系統(tǒng)的默認(rèn)標(biāo)準(zhǔn))與后端Windows系統(tǒng)進(jìn)行通信。網(wǎng)絡(luò)漏洞可以讓黑客有機(jī)會獲得機(jī)密信息或使用系統(tǒng)進(jìn)行攻擊。”
她說:“軟件漏洞通常是編碼錯誤的結(jié)果,惡意攻擊會利用代碼中的漏洞。Visuality Systems開發(fā)人員需要主動的檢測工具來發(fā)現(xiàn)他們編寫的代碼中的漏洞,以降低風(fēng)險。”
解決方案:新思科技Coverity 靜態(tài)應(yīng)用安全測試
Visuality Systems已經(jīng)在使用新思科技(Synopsys)的Defensics®模糊測試來識別運(yùn)行代碼中的漏洞,并在2019年添加了 Coverity®靜態(tài)應(yīng)用安全測試(SAST),以幫助其開發(fā)團(tuán)隊(duì)在軟件開發(fā)生命周期的早期解決編碼漏洞。Coverity是一個快速、準(zhǔn)確和高度可擴(kuò)展的靜態(tài)分析解決方案,幫助開發(fā)和安全團(tuán)隊(duì)處理安全和質(zhì)量漏洞,確保符合安全和編碼標(biāo)準(zhǔn)。
憑借Coverity 靜態(tài)應(yīng)用安全測試,Visuality Systems開發(fā)人員可以在不中斷正常工作流程的情況下掃描代碼,以查找安全漏洞和質(zhì)量缺陷。 開發(fā)人員可以通過選擇Coverity的快速桌面、增量或完整分析模式,來確定分析的速度和深度??焖僮烂娣治龊驮隽糠治隹梢詭椭_發(fā)人員在編碼時發(fā)現(xiàn)漏洞,這些漏洞最容易發(fā)現(xiàn),也最容易修復(fù)。Coverity的完整分析模式與構(gòu)建/CI工具集成,如果缺陷違反了安全或質(zhì)量規(guī)定,則構(gòu)建失敗。DevOps團(tuán)隊(duì)可以根據(jù)不斷變化的需求來調(diào)整和管理代碼分析。
Coverity已集成到Visuality Systems的CI/CD流程中。公司使用Bitbucket和Jira Cloud為軟件團(tuán)隊(duì)管理他們的工作流程,并動態(tài)顯示在pull-request構(gòu)建中發(fā)現(xiàn)的新問題的信息。Coverity 通過 Python 和 Jenkins CI 集成到構(gòu)建流程中。 編寫的每一段代碼都由 Coverity 檢查,并且在 Coverity 通過之前不能合并到開發(fā)的主分支中。 當(dāng)?shù)谝淮螜z測到漏洞時,負(fù)責(zé)的開發(fā)人員會在 Slack bot 中收到失敗通知,修復(fù)問題,然后將代碼推送到云端,從而觸發(fā)新的pull-request構(gòu)建。 循環(huán)往復(fù),直到成功編寫出安全、優(yōu)質(zhì)的代碼。
Limor Segal-Shevah贊賞道:“新思科技的Coverity 是一個強(qiáng)大的工具,可以幫助 Visuality Systems 不斷改進(jìn)產(chǎn)品,并最終編寫出更優(yōu)質(zhì)、更安全的代碼。”
成效:更健壯的代碼,更高的客戶滿意度
Visuality Systems的代碼質(zhì)量和穩(wěn)定性都有所提高。Visuality Systems在軟件發(fā)布之前就已經(jīng)解決了代碼缺陷和漏洞問題。而不是等到客戶發(fā)現(xiàn)了問題,反饋至公司,然后來來回回進(jìn)行修復(fù)。在編碼開發(fā)過程中解決安全和質(zhì)量缺陷,可以為客戶交付更健壯的代碼。
Limor Segal-Shevah表示:“在我看來,Coverity最出色的地方在于能提供全面的信息,并擁有過濾這些信息的能力,例如識別優(yōu)先級、風(fēng)險和單個開發(fā)人員所有者等。我可以只看最新版本中發(fā)現(xiàn)的新問題;可以過濾掉我不需要的信息,只設(shè)置我想要的信息。非常便利。我們經(jīng)常使用過濾功能,每當(dāng)數(shù)據(jù)庫發(fā)生變化時,也會使用通知功能。”