文/JFrog大中華區(qū)總經(jīng)理 董任遠(yuǎn)
業(yè)務(wù)成功的關(guān)鍵驅(qū)動力在于企業(yè)開發(fā)和交付軟件的速度。團隊任務(wù)是不斷尋找盡可能高效的工作新方法,通常會借助開源庫和組件來加快交付速度。事實上,有研究表明市場上多達 97% 的應(yīng)用程序都使用開源軟件。
雖然開源倉庫有助于節(jié)省時間,但也成為了網(wǎng)絡(luò)罪犯的主要目標(biāo)。因為只需破壞開源庫中的一個軟件包,這些惡意攻擊者就能獲得多家企業(yè)的后門訪問權(quán)限,給全球數(shù)百萬開發(fā)者的工作帶來安全隱患。
在“生產(chǎn)競賽”中,速度絕不能以犧牲安全為代價。以下三大實用步驟能夠最大限度地降低軟件供應(yīng)鏈中的風(fēng)險:
1. 確保正在使用的開源庫得到正確掃描
2022 年,全球 1700 家企業(yè)遭受到軟件供應(yīng)鏈攻擊,超 1000 萬人受到影響,其中幾乎所有攻擊都包含一些錯誤或惡意的開源代碼。正如下文中的數(shù)字所示一般。
相關(guān)行業(yè)研究顯示,僅僅在 1 月份,NPM 就新增了 95,000 個軟件包。除此之外,75 萬個新版本的現(xiàn)有軟件包也被更新到庫中。雖然這些庫毫無疑問希望確保代碼合法,但開源的本質(zhì)意味著幾乎不可能進行驗證。因此,企業(yè)有責(zé)任確保這些軟件包可以安全地添加到其開發(fā)供應(yīng)鏈中。業(yè)界曾用維基百科來比喻開源關(guān)系:雖然維基百科是很棒的免費資源,但使用它的個人有責(zé)任核實信息的準(zhǔn)確性。
企業(yè)可以用可擴展的方式實現(xiàn)這種程度的審查,通過連接到開源倉庫并掃描與軟件包或更新版本相關(guān)的元數(shù)據(jù),以了解其上下文,如它們是否與惡意攻擊或漏洞相關(guān)聯(lián),或它們是何時創(chuàng)建的。通過回答此類問題,開發(fā)者可以在自己的生態(tài)系統(tǒng)中將代碼推進到下一階段的開發(fā),并增強對代碼安全性的信心。
2. 開發(fā)一種“超越”左移的方法
左移模式對企業(yè)來說非常有幫助,因為可以盡可能地在入口點附近對開源組件進行檢查。相較于軟件開發(fā)的早期“狂野西部”時代(只有在最后階段才會對代碼進行檢查,一旦發(fā)現(xiàn)問題就不得不再次從頭開始),這一方法頗受歡迎。
隨著軟件開發(fā)不斷成熟,最重視軟件安全的企業(yè)將尋求一種超越左移的方法。
為此,可以在將組件引入集成開發(fā)環(huán)境之前檢查組件是否存在漏洞。具體而言,可以通過創(chuàng)建一個氣隙環(huán)境,根據(jù)企業(yè)特定需求定制的策略來檢查輸入的開源代碼,并在進入環(huán)境前便可過濾掉不符合標(biāo)準(zhǔn)的代碼。
3. 將安全措施集中于單一平臺
上述兩種方法將有助于以更具成本效益的方式管理軟件供應(yīng)鏈中的潛在安全問題。 此外,使用專門針對這些領(lǐng)域的解決方案,能夠幫助把握可能在軟件開發(fā)周期后期出現(xiàn)的安全問題。
眾所周知,開源數(shù)據(jù)庫的流動性非常高,并且一直處于不斷變化之中。即使一個軟件包通過掃描和左移前的安全措施,仍無法百分之百保證其安全性。我們可以采用能夠理解此生命周期每個階段的解決方案,一旦發(fā)現(xiàn)惡意內(nèi)容,企業(yè)可以在整個開發(fā)過程中的任何時間點采取適當(dāng)?shù)难a救措施。
以安全為重的軟件供應(yīng)鏈平臺可通過上述最佳實踐,幫助實現(xiàn)整個軟件構(gòu)建與發(fā)布流程的自動化并確保其安全,從而助力開發(fā)者加快軟件交付速度,同時強化企業(yè)的安全態(tài)勢。
優(yōu)先考慮軟件供應(yīng)鏈安全
大多數(shù)軟件開發(fā)所依賴的開源生態(tài)系統(tǒng)將持續(xù)存在。這些庫的便利性和速度無與倫比,是現(xiàn)代開發(fā)團隊的必備資源。然而,由于一些環(huán)境的性質(zhì),使用它們的個人和企業(yè)有責(zé)任確保其安全可靠。
采用上述三大步驟,能夠持續(xù)推動開發(fā)工作流的創(chuàng)新和效率,并在企業(yè)中應(yīng)用頂級安全實踐操作。