開原始碼:如何在快速開發的同時保持安全

zktq2021發表於2022-01-27

開源改變了軟體世界,透過實現跨產品和行業的廣泛重用,極大地降低了引入新技術的成本。但是,從開源中提取程式碼就會發現,它們來源非常分散。

當組織沒有考慮對其所依賴的開源庫的長期支援問題時,最壞的情況下很可能影響其軟體的安全問題。2021年底一系列log4j漏洞就是一個很好的例子。組織應該在利用開源便捷的同時,花時間仔細考慮他們的供應鏈安全問題,為未來潛在的安全事件做好準備。

開源並非完全免費

來自多個來源的程式碼帶來了安全挑戰,組織並不總是能夠處理甚至意識到這些挑戰。供應鏈可能非常複雜,由一個巨大的開源依賴樹組成,所有依賴都定期更新。當上遊開源軟體更新或更改時,IT 團隊通常不會稽核系統中的每一行程式碼。由於依賴關係網路、不斷變化以及 IT 團隊缺乏深入評估,外部安全威脅應該是一個非常值得關注的問題。

不管最初誰應該為這些漏洞負責,企業在釋出包含漏洞開原始碼的軟體時都面臨著責任。如果沒有適當的流程來審查開源元件的包含和更新,組織將繼續陷入使用開源元件的陷阱,而不瞭解他們所承擔的風險。此外,隨著軟體世界的不斷髮展,容器化等新技術將使安全態勢更加遙不可及。

一旦公開開源專案中的漏洞,組織可能需要在緊迫的時間裡審計相關軟體的安全性。這很可能拉低開發效率,因為要麼稽核成千上萬行程式碼,要麼進行最新版本升級。

保持開源安全

建議IT領導在專案開始之前建立安全措施,重點關注威脅及風險的緩解。確保對新的開源依賴項進行安全審查,如使用SCA工具等在開發期間即可進行,並定期更新這些依賴項以降低未來發生安全風險的機率。及時檢測及定期維護非常重要,因為你無法修復不知道的漏洞和問題,並且儘快修復比查詢歷史缺陷更容易。

DevSecOps 發揮作用的地方正是在這裡,在軟體開發期間解決安全問題,不但可以降低成本,而且有助於打破部門之間的障礙。

首先,團隊需要理解在他們的環境中部署了什麼軟體,假設他們從一開始就沒有為材料清單編制文件。這可能很困難,因為現代軟體堆疊中有許多依賴層。例如,大多數容器漏洞掃描器都僅限於透過作業系統包管理器安裝的包(例如apt或yum)。在設計上,這遺漏了許多依賴項,比如靜態連結的二進位制檔案、手動安裝的包、程式語言依賴項等等。

其次,團隊需要使依賴項保持最新。雖然這可能會對開發人員的時間和資源造成壓力,但這種持續關注安全事項的成本肯定比團隊在意外破壞時所需的成本要低得多。部分企業當前已經在使用 靜態應用安全測試工具SAST或開源元件成分分析等協助發現安全問題。

當團隊採取適當的措施來評估和指導開源依賴性的安全問題時,可以顯著降低軟體供應鏈風險,對安全隱患的關注和審查可以提前避免風險,同時提高開發人員安全意識。


文章來源:

https://www.helpnetsecurity.com/2022/01/26/code-open-source/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2854203/,如需轉載,請註明出處,否則將追究法律責任。

相關文章