Mary+Branscombe
您的開發(fā)人員正在使用開源軟件——即使您不了解它。本文介紹了怎樣進行控制,為什么要這樣做。
最近,SAS嚴肅地向企業(yè)發(fā)出呼吁,企業(yè)應限制其使用的開源項目的數(shù)量。在以SAS為主導的市場上,這看起來好像是在抗議數(shù)據(jù)科學和分析開源R編程語言的興起。但是,在這種抗議中隱藏著很好的一點是:使用開源軟件意味著知道您正在使用什么,這樣您可以跟蹤和維護它。
大多數(shù)企業(yè)并不知道開發(fā)人員使用多少開源軟件,以及可能會暴露出什么樣的漏洞。您無法對那些自己所依賴的、但是不熟悉的開源項目進行安全評估或者補丁管理。
Sonatype的2016年軟件供應鏈研究發(fā)現(xiàn),第三方組件占典型企業(yè)Java應用程序中的百分之八十至九十,而企業(yè)下載的十六個組件中就會有一個存在安全漏洞。老一些組件的安全漏洞是新版本的三倍之多,企業(yè)應用程序中一半以上組件的使用年限已經(jīng)超過兩年。在發(fā)現(xiàn)Heartbleed漏洞兩年后,Cisco安全研究在2015年測試的一半以上的OpenSSL版本仍然很脆弱。
2014年,Veracode發(fā)現(xiàn)在其掃描的5,000個應用程序中,企業(yè)Web應用程序中使用的開源軟件和第三方組件在每個應用程序中平均引入了24個已知漏洞。
開源軟件監(jiān)控和管理服務公司W(wǎng)hiteSource首席執(zhí)行官兼聯(lián)合創(chuàng)始人Rami Sass告訴CIO.com:“即使已經(jīng)知道他們在使用開源軟件的軟件公司也需要通過工具來更好地進行管理。企業(yè)很少知道他們正在使用多少開源軟件?,F(xiàn)在,銀行等企業(yè)、金融服務公司、媒體公司都有大型軟件工程部門。他們通常會驚訝地發(fā)現(xiàn),開源軟件的應用非常廣泛,而人工清查這些軟件并對其進行跟蹤的少之又少。平均來說,實際的組件數(shù)量是他們所認為的數(shù)量的三倍。有時候高達十倍?!?/p>
這并不是說,您不應該讓開發(fā)人員使用開源軟件,特別是如果您正在遷移到DevOps,因為在這一領(lǐng)域有許多可用的工具,如果您自己編寫代碼,其實很難勝過競爭對手。Sass說:“企業(yè)使用開源軟件是有道理的,因為您希望開發(fā)人員專注于您的核心業(yè)務。您所需要的很多東西已經(jīng)有了;您想重新使用已經(jīng)經(jīng)過測試而且有社區(qū)進行維護的代碼,這樣您就不用自己去做那些繁重的編程工作。這就是為什么每個人都喜歡開源軟件的原因——但不幸的是,開源軟件有其自身的問題?!?/p>
開源軟件許可責任
過去,企業(yè)往往最關(guān)心開源軟件的許可問題。Sass指出,“開源軟件是免費的,但它附帶了許多條款?!遍_源軟件許可對于商業(yè)組織來說可能是雷區(qū)。越來越多的項目使用MIT和Apache許可之類的寬松許可,這些許可對代碼重新分配的要求非常少,而其他許可的要求卻很苛刻。谷歌最近關(guān)于如何使用開源軟件的指導內(nèi)容包括有關(guān)AGPL等許可在內(nèi)部被禁止的說明,之所以如此是因為有發(fā)布衍生產(chǎn)品代碼的要求。
即使是聲稱是公共域或者“免費使用”的軟件項目,您都需要仔細考慮,因為把軟件放在公共域并不是一件小事。如果您是商業(yè)企業(yè),您應避免在非商業(yè)應用中使用免費的東西,其中包括許多知識共享許可。
這并不意味著您必須避免使用開源軟件,而是要知道使用開源項目而接受其許可的后果。開源軟件項目相互聯(lián)系的特性可能會使其變得更加復雜,例如,許多使用npm軟件包管理器的用戶發(fā)現(xiàn),在對軟件包名稱進行爭論后,開發(fā)人員并沒有發(fā)布其他數(shù)千個項目依賴的軟件包。
Sass說:“一個開源組件會依賴于許多其他開源組件。每當一個開發(fā)人員處理開源軟件組件時,他們都會帶來其背后所依賴的所有關(guān)系樹,而通常您根本不了解這些。您應該查看自己有多少開源組件,但大多數(shù)企業(yè)并不知情。”
采用所謂的“copyleft”許可,例如GPL,通常需要您發(fā)布對代碼所做的任何修改。Sass說:“一般企業(yè)將使用一些有GPL許可的開源組件。在300個組件中,可能一兩個或者三個是GPL。這對他們來說簡直就是新聞。”
除了知道您使用的是什么樣的開源軟件之外,您還需要跟蹤開發(fā)人員可能為其提供代碼的開源項目。對此,一種方法是使用GitHub Business。雖然大多數(shù)企業(yè)認為GitHub Business是一種云服務,避免了他們在自己服務器上運行GitHub Business的麻煩,但它也可以讓您控制自己企業(yè)中有哪些身份的開發(fā)人員使用GitHub存儲庫并對其有貢獻。
GitHub產(chǎn)品設計高級總監(jiān)Connor Sears告訴CIO.com:“我們的客戶想要的是,更多的直接聯(lián)系開發(fā)人員和項目、社區(qū),這就是GitHub所做的。這么多的開源軟件代碼對我們的客戶是有價值的。他們從中受益,他們也想對其做出貢獻。他們希望使用我們合作伙伴貢獻的各種平臺工具?!?/p>
GitHub Business與您現(xiàn)有的身份管理工具相集成,無論是Azure Active Directory、Okta還是其他SAML和SCIM兼容的身份系統(tǒng),例如OneLogin和Shibboleth。這意味著如果您企業(yè)的開發(fā)人員下載開源軟件代碼,并反過來為項目做出貢獻,或者將其分配給一個內(nèi)部項目,即使他們離職,不是從他們的個人GitHub登錄,而是從官方公司賬戶登錄,您也要繼續(xù)對其控制。
開源軟件安全
使用開源軟件的另一個關(guān)鍵問題是在發(fā)現(xiàn)安全問題后一定要更新。Sass說:“當開發(fā)人員采用了有漏洞的開源組件,并將其置入到軟件中時,那么您會很容易受到攻擊,您的客戶也容易受到攻擊。”
然而,真正的問題并不在于有漏洞,因為總是存在漏洞,關(guān)鍵是沒有打補丁?!澳倳业竭^時的庫,總是會發(fā)現(xiàn)有的組件有漏洞,幾乎總是會找到企業(yè)不打算使用的許可?!?/p>
“開源的好處是,一旦知道這些問題,問題就很容易解決。通常不需要花費大量的精力去更新組件,盡管有時會出現(xiàn)兼容性問題。通常來說,開源社區(qū)的人們已經(jīng)在努力解決這些問題了?!?
系統(tǒng)地應用這些補丁意味著跟蹤和管理您所使用的開源軟件,就像您的供應鏈中的任何其他部分一樣,而手動進行這些工作的效率非常低。軟件組合分析工具,例如WhiteSource、Black Duck、Palamida(最近被Flexera收購)、Sonatype Nexus、Synopsys或者Veracode都能夠幫助您自動完成這些工作。
例如,WhiteSource擁有Visual Studio Team Services和Jenkins等流行源代碼管理工具和服務的插件,并且內(nèi)置到Visual Studio 2017中,因此可以自動收集開發(fā)人員使用的開源組件的詳細信息,并生成報告,顯示發(fā)現(xiàn)了哪些安全漏洞,以及您需要做什么工作來解決這些問題。您還可以獲取這些組件所使用的許可的報告,甚至根據(jù)許可問題或者安全漏洞來設置政策。
Sass說:“您可以同時擁有許可的黑名單和白名單;客戶經(jīng)常會有像GPL這樣的許可黑名單,以及像MIT這樣的寬松許可白名單。您還可以制定有關(guān)安全漏洞的政策。如果開發(fā)人員引入了一個有已知漏洞的新的開源庫,那我們可以阻止他。我們還可以主動給您發(fā)送推送通知,提醒您正在使用的庫中新發(fā)現(xiàn)了漏洞;我們不用等您去運行報告。”
通過開發(fā)服務器或者通過與像Git、GitHub、JIRA和Artefactory這樣的系統(tǒng)進行集成,該政策可以直接置入到您現(xiàn)有的開發(fā)人員工作流程中。“如果您正在進行集成,并且開發(fā)人員引入了使用GPL許可或者具有影響非常嚴重的安全漏洞的新庫,那么該政策會生效;開發(fā)將失敗,開發(fā)人員將收到關(guān)于問題庫的通知。當有人嘗試向存儲庫中添加新代碼時,您可以對照政策并阻止他。如果您添加了安全漏洞影響程度中等或者較低的庫,我們可以將通知發(fā)送給安全主管,這樣會有更多的人參與到?jīng)Q策過程中?!?/p>
“我們可以把它看作是監(jiān)管轉(zhuǎn)移,所以會更早地出現(xiàn)在開發(fā)過程中,自動執(zhí)行合規(guī)中涉及的一些工作。我們能夠盡早找到一個問題;我們可以阻止組件進入到您的環(huán)境中?!?/p>
WhiteSource還有一個瀏覽器插件,旨在幫助開發(fā)人員更好地選擇要采用哪些開源組件。當開發(fā)人員訪問引用開源組件的網(wǎng)頁時,該插件將它們與WhiteSource的數(shù)據(jù)庫相匹配,并顯示一個彈出窗口,其中包含許可的詳細信息,任何已知的漏洞以及公司的政策。Sass說:“我們根據(jù)您企業(yè)的政策進行測試,并告訴開發(fā)人員是否將獲得批準。我們還列出了組件在企業(yè)中應用到了哪些地方;您可以看到是否有另一個團隊使用相同的版本,或者您正在查看的組件的其他版本?!?/p>
如果您要遵守受監(jiān)管的財務標準,例如PCI-DSS或者FS-ISAC指南,則需要制定關(guān)于使用開源軟件和第三方組件的政策。還沒有像其他行業(yè)中企業(yè)廣泛采用的開源軟件的標準政策,但Sass認為很快就會有,特別是美國政府已經(jīng)開始為自己制定這些政策。他建議:“政府應進入開源領(lǐng)域。他們現(xiàn)在應公開他們有多少比例的代碼是開源的,他們應通過某種政策來進行規(guī)范。一旦這樣做,大企業(yè)就會緊隨其后?!?/p>
首席信息官不可能對企業(yè)開發(fā)人員使用的大量開源組件視而不見。相反,他們應該開始跟蹤和管理,以確保有關(guān)許可和安全的問題都在掌控之中。Sass說:“好處遠遠超過了缺點。您只需要對此進行管理,就可以使用開源軟件,利用它提高您的生產(chǎn)效率,而不必有所擔心。”
而對于SAS限制開發(fā)團隊使用開源軟件數(shù)量的呼吁呢?“管他呢?!?/p>
Mary Branscombe是一位自由撰稿人,二十多年來一直致力于技術(shù)寫作,主題涵蓋從編程語言、Windows和Office的早期版本,到最早的網(wǎng)絡以及消費類小工具和家庭娛樂等各個方面。
原文網(wǎng)址:
http://www.cio.com/article/3191889/open-source-tools/how-to-track-and-secure-open-source-in-your-enterprise.html