不要責(zé)怪開(kāi)源技術(shù) 它是無(wú)辜的
Sonatype的首席安全官Ryan Berg在Gigaom上撰文稱,我們不應(yīng)該把安全性問(wèn)題歸咎于開(kāi)源本身,事實(shí)上,專用軟件也會(huì)出現(xiàn)這樣的問(wèn)題。應(yīng)對(duì)安全問(wèn)題真正的做法應(yīng)該是注重產(chǎn)品生命周期內(nèi)的每個(gè)環(huán)節(jié),采取措施提高軟件開(kāi)發(fā)中每個(gè)方面的安全性。
以下為文章全文:
上個(gè)月,由于受到黑客攻擊, OnRamp免費(fèi)廣告服務(wù)被迫關(guān)閉,對(duì)數(shù)百萬(wàn)的網(wǎng)站造成嚴(yán)重影響。OnRamp的母公司 OpenX在其在論壇上發(fā)布了一份官方聲明,質(zhì)疑了開(kāi)源技術(shù)的安全性。
對(duì)此,表示,這不是一個(gè)開(kāi)源的問(wèn)題,并且我們不應(yīng)該把責(zé)任推給開(kāi)源用戶和生產(chǎn)廠商。開(kāi)源的經(jīng)濟(jì)和生產(chǎn)效率使得它幾乎是任何現(xiàn)代軟件應(yīng)用程序的強(qiáng)制組件。我們?cè)陂_(kāi)源上都獲得了巨大的好處——發(fā)展快速,重復(fù)利用經(jīng)過(guò)驗(yàn)證的組件,讓用戶能在專有領(lǐng)域的軟件特色上集中更多的時(shí)間。
這不僅僅證明了開(kāi)源的好處,更表明它是必要的。這也是為什么超過(guò)7萬(wàn)個(gè)企業(yè)在去年于Central Repository上為開(kāi)源組件處理了接近80億請(qǐng)求,覆蓋了所有主要類別的應(yīng)用程序,包括網(wǎng)絡(luò)、云、移動(dòng)和關(guān)鍵基礎(chǔ)設(shè)施。
不爭(zhēng)的事實(shí)是今天一個(gè)典型的軟件應(yīng)用程序中有超過(guò)80%的組裝是用現(xiàn)有的組件進(jìn)行組裝的,并且其中的絕大多數(shù)都是開(kāi)源的,來(lái)自數(shù)十個(gè),或數(shù)百個(gè)單獨(dú)項(xiàng)目。所有的垂直行業(yè),無(wú)論是監(jiān)管和非監(jiān)管,都在內(nèi)部和面向用戶的應(yīng)用程序中使用大量的開(kāi)源組件。
開(kāi)源是必要的
你可以把今天的軟件開(kāi)發(fā)組織想象成汽車制造商,開(kāi)發(fā)人員使用現(xiàn)有的部件或零件“組裝”應(yīng)用程序,而不是從頭編寫(xiě)應(yīng)用程序。但與制造業(yè)不同,軟件行業(yè)缺少必要的工具對(duì)一個(gè)復(fù)雜的分布式軟件供應(yīng)鏈的復(fù)雜性和風(fēng)險(xiǎn)性進(jìn)行管理。
基于組件的開(kāi)發(fā)需要管理,當(dāng)監(jiān)督不完整時(shí),安全問(wèn)題就會(huì)出現(xiàn)。簡(jiǎn)單地說(shuō),一個(gè)有缺陷的軟件供應(yīng)鏈意味著有缺陷的應(yīng)用程序。我們的研究表明,至少71%的應(yīng)用程序包含組件有已知的被列為嚴(yán)重或關(guān)鍵的安全漏洞。
Digital Forensics Association 發(fā)布的《 The Leaking Vault 2011》稱,在短短的時(shí)間里,有超過(guò)1560億美元的直接損失可以歸因于數(shù)據(jù)泄露。由Forrester和Veracode對(duì) 應(yīng)用風(fēng)險(xiǎn)管理進(jìn)行的一項(xiàng)的商業(yè)調(diào)查發(fā)現(xiàn),62%的受訪機(jī)構(gòu)表示,由于他們關(guān)鍵應(yīng)用中的缺陷,他們?cè)谶^(guò)去一年里發(fā)現(xiàn)漏洞。
減少不可避免的風(fēng)險(xiǎn)
現(xiàn)在,問(wèn)題就變成了如何在降低風(fēng)險(xiǎn)與部件消耗的同時(shí),實(shí)現(xiàn)開(kāi)源的好處。當(dāng)然,對(duì)開(kāi)源軟件來(lái)說(shuō),有不斷的和復(fù)雜的威脅,專有軟件同樣存在這樣的威脅。我們知道其中的危險(xiǎn)來(lái)自于使用已發(fā)現(xiàn)漏洞的過(guò)時(shí)組件,來(lái)自于沒(méi)有一個(gè)可強(qiáng)制執(zhí)行的開(kāi)源政策,并且開(kāi)源軟件沒(méi)有與管理組件執(zhí)照或許可證的依賴關(guān)系。
重要的是要明白,這是一個(gè)供應(yīng)鏈的問(wèn)題:你需要在軟件開(kāi)發(fā)生命周期(消費(fèi)、發(fā)展、集成和生產(chǎn)的過(guò)程)內(nèi)的每個(gè)階段管理組件。
降低安全風(fēng)險(xiǎn)
要降低安全風(fēng)險(xiǎn),我們要在組件層上加強(qiáng)整個(gè)對(duì)軟件開(kāi)發(fā)生命周期的保護(hù)措施,提高整個(gè)軟件供應(yīng)鏈的完整性。想象一下,如果一個(gè)流行的開(kāi)源組件中存在漏洞風(fēng)險(xiǎn),并且由于組件被許多應(yīng)用程序所使用,那么這個(gè)組件就會(huì)成為黑客眼中的一個(gè)香饃饃。
下面是減少風(fēng)險(xiǎn)的一些關(guān)鍵:
研究一個(gè)開(kāi)源的政策,如果你的組織還沒(méi)有的話。如果你有,則經(jīng)常檢查它。確保它對(duì)開(kāi)發(fā)團(tuán)隊(duì)來(lái)說(shuō)是明確的,并對(duì)安全管理的過(guò)程負(fù)責(zé),讓它得到每個(gè)人的支持。
確保你的政策為組件安全、許可和質(zhì)量屬性提供關(guān)鍵指南。除此之外,開(kāi)源的策略需包羅萬(wàn)象,概述組織的標(biāo)準(zhǔn)和價(jià)值觀,創(chuàng)建更多的指導(dǎo)方針來(lái)驅(qū)動(dòng)使用決策。
確保你的政策是可強(qiáng)制執(zhí)行的。如果沒(méi)有執(zhí)行能力,那么還有什么意義?紙上談兵的政策將被忽略,所以要尋找方法將執(zhí)行整合到軟件開(kāi)發(fā)過(guò)程本身。
為開(kāi)發(fā)人員提供所需要的信息,以便他們做出正確的選擇。你的開(kāi)發(fā)人員處于第一線,所以要給他們戰(zhàn)斗能力。讓他們能夠在初期檢測(cè)到缺陷或不符合規(guī)定的地方,盡早節(jié)省時(shí)間和資金。
理清生產(chǎn)、庫(kù)存組件和它們之間的依賴關(guān)系。在進(jìn)行故障排查的過(guò)程中了解你的應(yīng)用程序的構(gòu)成是成功的一半。
密切關(guān)注新發(fā)現(xiàn)的缺陷。新的漏洞可能會(huì)在任何時(shí)間出現(xiàn),當(dāng)一個(gè)新的漏洞出現(xiàn)時(shí),你要第一時(shí)間發(fā)現(xiàn),并知道哪個(gè)組件正在使用。
要有一個(gè)補(bǔ)救措施。不管發(fā)生在生命周期里的哪個(gè)環(huán)節(jié),都要知道如何進(jìn)行解決。修復(fù)缺陷并不總是容易的,所以我們需要擁有一個(gè)計(jì)劃。
無(wú)論是使用開(kāi)源軟件或?qū)S熊浖赓M(fèi)軟件或付費(fèi)軟件,都請(qǐng)記住這一點(diǎn):如果我們能通過(guò)建立良好的組件方法來(lái)維護(hù)組件層,那么對(duì)產(chǎn)品的整個(gè)生命周期都是有好處的。