現在許多公司越來越明白這一點:想比競爭對手更迅速地開發出質量更好的創新軟件,關鍵在于借助使用開源軟件(OSS)。在如今的產品生命周期所需的速度和成本約束下,僅僅使用商用代碼、將軟件投向市場,這幾乎是不可能實現的任務。要是沒有能力選擇和整合同類中最佳的OSS,一些最出色的產品點子可能永無出頭之日。
不過使用開源也帶來了一系列不同的挑戰。雖然貴企業的團隊能夠獲得速度和敏捷性,但常常更難查明代碼的真正來源、確保代碼安全可靠。
正如OpenSSL Heartbleed安全漏洞證明的那樣,不知道自己的應用程序或最終產品中使用什么代碼,有可能造成嚴重的安全威脅,需要投入大量精力來補救這些威脅,很耗費時間。反過來,要是查清楚使用了哪些OSS組件和版本、哪里使用了OSS組件和版本,對于迅速應對及補救安全漏洞大有幫助。
里面的代碼很重要
Heartbleed軟件錯誤提醒廣大開發人員和公司企業安全到底有多重要。雖然之前就有圍繞專有軟件或開源軟件哪個更安全這個廣泛的爭論,但這個爭論基本上沒啥意義。事實上,代碼缺陷存在于大多數軟件當中,不管代碼來自專有軟件還是開源軟件,有些代碼缺陷影響安全性。
當開源與內部的專有代碼整合起來時,安全挑戰可能顯得尤為錯綜復雜。除了未合理管理許可證合規這個明顯的風險外,在整個企業組織跟蹤代碼來源和使用情況可能很快會變得非常困難。
想真正準確地了解貴企業面臨的潛在安全漏洞,就要明白三個問題:
1.貴企業目前的產品和應用程序中有什么代碼
2.開發過程的前期使用了什么代碼開發人員又從哪里獲得了這些組件
3.開發過程的后期使用了什么代碼代碼在部署之前需要在哪里加以驗證
評估形勢
所有公司都應該對照常見安全漏洞數據庫核對自己的代碼,比如美國標準和技術研究所(NIST)的全國安全漏洞數據庫(NVD)。像NVD這些資源可以跟蹤安全漏洞,并給出嚴重性等級,幫助公司企業確保各自的代碼安全、最新。
如果貴企業之前從未對照安全漏洞數據庫審查過自己的代碼,這可能是一項艱巨的任務。幸好,有些工具可以充分利用這些數據庫,定期自動識別所有的開源安全漏洞,警報并跟蹤受影響的組件在哪里使用、在哪里需要補救。
不斷密切關注代碼庫有助于確保識別未知代碼、查明代碼來源、許可證信息最新以及迅速標記未來的安全漏洞,以便盡快解決。如果貴企業查清楚了所使用的代碼,就很容易找到安全性薄弱的代碼,并加以補救,確保貴企業的業務及顧客處于安全的狀態。
防止未來的問題
大多數開發人員之所以被OSS所吸引,原因在于OSS易于訪問、隨意獲取,通常讓他們可以擯棄正規的采購流程。不過,雖然許多開發公司對開源使用有相應的政策或準則,但這些政策或準則并不總是得到落實,常常沒有受到合理的監控。查明什么代碼進入貴企業、代碼是否獲準使用以及它在貴企業的哪個部門使用,這點很重要。
一旦貴企業知道了擁有的代碼,就需要建立治理機制。通過在整個開發過程中實施管理體系,就能確保準確地描述代碼,并消除什么代碼在哪里、代碼是不是最新方面的問題。人工管理這個過程幾乎不可能,這就是為什么同類中最佳的公司借助自動化代碼管理和審計解決方案,主動管理開源軟件的使用。
雖然每家公司和每個開發團隊的情況各不相同,但事實證明下列流程可以幫助大大小小的企業管理和保護所使用的OSS:
自動審批和列入目錄――借助自動化掃描、審批和清點流程,記錄并跟蹤OSS組件的所有相關屬性,評估許可證合規,并審查可能存在的安全漏洞。
維護經過更新的代碼版本――評估代碼質量,并確保貴企業的產品采用最新版本的代碼開發而成。
驗證代碼――評估使用的所有OSS;審查代碼,評估安全、許可證或導出風險,并補救任何問題。
確保合規――制定并落實一項開源政策,制定一套自動化合規流程,以確保開源政策、規定和法律義務等在整個企業都得到了遵守。
積極管理是關鍵
由于各行各業使用軟件的現象日益普及,開源將繼續在開發最新創新產品和服務中扮演至關重要的角色。為了防止這個日益復雜的環境出現安全漏洞,公司勢必要積極管理整個企業的開源流向,并制定流程,從而對照安全漏洞數據庫定期核查代碼,以便快速輕松地補救。