如何為云部署安全開源代碼?
開源代碼能夠為云環(huán)境帶來靈活性和敏捷性。但是是否有任何的快速方法能夠確保其安全性呢?
如今,大多數(shù)應(yīng)用開發(fā)人員都整合使用來自于開源開發(fā)項目的代碼來作為降低開發(fā)時間和提供整體代碼品質(zhì)的一種方法。該代碼可以是一個實際云套件(例如OpenStack)或支持工具(從編譯器到存儲管理器)和各種各樣的應(yīng)用模塊的一部分。
但是使用數(shù)以百計可用代碼庫作為開源代碼來源,同時還試圖挑選出最合適的開源代碼,將是一個可能為惡意軟件打開方便之門的復(fù)雜任務(wù)。除了代碼有被黑的風險,代碼還存在著可能的質(zhì)量問題。為了確保用戶正在使用著可靠的和安全的開源代碼,應(yīng)確認相關(guān)代碼是精心設(shè)計和歸檔的,同時為廣泛使用而嚴格測試的。
其他用戶的共識往往是代碼質(zhì)量問題的******導(dǎo)向。開源社區(qū)對于這類問題一向是知無不言言無不盡的,整個社區(qū)都愿意警告用戶遠離低質(zhì)代碼。例如,OpenStack代碼是經(jīng)過高度審查和嚴密控制的;因為存在著圍繞著OpenStack的龐大開發(fā)人員與用戶群,所以任何問題都會很快地浮出水面。而發(fā)現(xiàn)代碼質(zhì)量問題的其他資源是Programmers Stack Exchange 或 Stack Overflow。
但是,對于惡意軟件而言,那是完全不同的。有時,一個問題可能會在相當長的一段時間內(nèi)處于休眠狀態(tài)或未被發(fā)現(xiàn)。例如,一個流行的開源框架Ruby on Rails的一個未被發(fā)現(xiàn)漏洞就存在了六年。
為了確保用戶部署安全的開源代碼,我們應(yīng)深入到引擎內(nèi)部。使用最被認可和信任的開源代碼庫(例如GitHub和OpenStack的影像服務(wù))作為資源。還有一些應(yīng)用商店提供了來自于可信任供應(yīng)商的簽名代碼,它們擁有在整個代碼生命周期內(nèi)檢查代碼簽名的能力。
其次,應(yīng)尋找使用常用代碼而避免傾向嘗試其他的代碼,因為這是不同的。所謂“常用”意味著有很多測試人員已經(jīng)運行過代碼,同時代碼能夠按照規(guī)范正常運行。
但是,這一切都趕不上Ruby on Rails問題。使用常用開源代碼跟蹤開放網(wǎng)絡(luò)應(yīng)用安全項目中的應(yīng)用程序漏洞列表。
版本管理也是很重要的,因為它可以確保開源代碼的安全性。除非業(yè)內(nèi)公認它是安全的,否則不要在用戶云中實施新的代碼版本。另一方面,請務(wù)必一起更新代碼版本以確保關(guān)閉已知安全漏洞。一個版本管理器將有助于版本管理。
在過去的幾年中,開源代碼應(yīng)用已走過了漫長的道路,它已經(jīng)是如今的支柱發(fā)展了。它能夠幫助開發(fā)團隊更快地實施新的云應(yīng)用,在小心應(yīng)用下這些應(yīng)用的安全性可媲美內(nèi)部代碼。