恰當地管理開源,讓軟體更加安全
越來越多的公司意識到,要想比對手率先開發出高質量具有創造性的軟體,關鍵在於積極使用開源項目。軟體版本更迭要求市場推廣速度足夠快,成本足夠低,而僅僅使用商業源代碼已經無法滿足這些需求了。如果不能選擇最合適的開源軟體集成到自己的項目里,一些令人稱道的點子怕是永無出頭之日了。
然而,使用開源軟體也要面對新的挑戰。一方面,你的團隊從開源軟體中汲取力量變得更快更靈活,另一方面,開源代碼在傳播過程中是否經歷了不可控修改、安全性該如何保障的問題也日益凸顯了出來。
OpenSSL Heartbleed 漏洞已經證實。如果你不了解你的應用程序或者已發布的產品中到底運行著什麼代碼,那你就可能面臨需要大量時間才能解決的潛在安全威脅。相反,如果對項目里什麼地方使用了什麼版本的開源組件都了如指掌,一旦遇到漏洞,響應速度和解決速度都會是千金不換的。
安全性藏在代碼內部
Heartbleed bug 讓開發人員和企業知道了軟體安全性有多重要。專利軟體和開源軟體哪個更安全?這場廣泛受到關注的討論並沒有一個簡單的結論。現實情況是,不論是專利軟體還是開源軟體,它們絕大部分都有缺陷,其中一些缺陷還威脅到軟體的安全性。
如果開源軟體被內部代碼、專利代碼引用了,那開發人員將不得不面對更複雜的安全性挑戰。要是管理授權許可的手段再不恰當,那想追溯一段代碼的來源和引用就得把相關人員全都牽連進來,難度必然急劇增加。
要想切實了解你軟體的潛在漏洞,首先你得理解以下三件事兒:
- 你的產品和應用程序里現在跑著什麼代碼?
- 那些開發前期使用的代碼,開發人員是從哪兒弄來的?
- 開發後期使用了哪些組件,這些組件有哪些地方要在部署之前充分測試?
現狀怎麼樣
所有企業都應該對比常見漏洞資料庫——比如美國國家標準與技術學會的國家漏洞資料庫(NVD)——來檢查他們的代碼。NVD 等組織追蹤並收集了各種安全漏洞的信息以及排名,這些數據可以協助企業確保代碼及時更新,規避安全風險。
如果你從沒對照漏洞資料庫檢查過你的代碼,那你可有的忙了。好在我們有個可以利用這些資料庫定期自動識別開源安全漏洞的工具,這個工具還可以警示和追蹤項目中使用的受影響的開源組件並提供必要的解決方案。
持續監控你的代碼庫能保證及時發現未知代碼、了解代碼來源、授權信息不會過時、安全漏洞一旦出現就能第一時間掌握並尋求解決方案。如果你的公司有詳細的代碼清單,你就能輕而易舉地找到漏洞所在並及時修復,確保你的業務和客戶不會面臨危險。
預防未來的問題
相當多開發人員青睞開源軟體是因為開源軟體易於獲得且免費,他們不用為此再走採購流程。目前來看,儘管很多開源組織都有自己的使用策略或使用指引,他們卻並沒有強制使用者遵守,也沒有追查使用者是否遵守。知道你的組織將會使用哪些開源代碼、這些代碼是否有授權、你的組織中什麼地方引用了它們是非常重要的。
你知道你用了什麼代碼之後,就該好好整理它們了。你可以實現一個貫穿整個開發流程的管理框架,這樣你可以掌握每段代碼的詳細信息,不用再在諸如代碼更新了沒有、什麼時候更新的以及在哪兒更新的這類問題上浪費時間。手工管理這些信息不大可能,所以一流公司都使用自動化代碼管理和審查工具。
雖然每個公司、每個開發團隊都面臨各不相同的問題,但實踐證明下面幾條安全管理經驗對使用開源軟體的任何規模的組織都有意義:
- 自動批准和分類 - 捕捉並追蹤開源組件的相關屬性,評估許可證合規性,通過自動化掃描、批准和使用過程來審查可能出現的安全漏洞。
- 維護最新代碼的版本 - 評估代碼質量,確保你的產品使用的是最新版本的代碼。
- 評估代碼 - 評估所有在使用的開源代碼;審查代碼安全性、授權許可、列出風險並予以解決。
- 確保代碼合法 - 創建並實現開源政策,建立自動化合規檢查流程確保開源政策、法規、法律責任等符合開源組織的要求。
關鍵是,要讓管理流程運作起來
隨著軟體飛速滲入各行各業,開放源代碼將在創新發展的道路上扮演越來越重要的角色。為了規避安全問題給日益複雜的環境帶來的風險,企業必須運行起一套管理其組織中開源代碼使用情況的流程,構築一個定期對照漏洞資料庫檢查代碼並快速消除風險的流程。
*作者 Bill Ledingham 是 Black Duck Software 公司的首席技術官(CTO)兼工程執行副總裁。在這之前,Bill 是 Verdasys 的首席技術官,領導信息和網路安全團隊為全球頂尖的 2000 家公司和政府機構提供敏感信息的安全保障。 Bill 曾經與人合夥創辦過四家公司,現在活躍于波士頓創業社區,作為 CommonAngels 的合作夥伴和投資人迄今已有 6 年歷史。
作者:Bill Ledingham 譯者:sailing 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive