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