是時候注意開源軟體的安全性了
來自專欄數據星河
我們的生活離不開軟體。如今,人人都在使用app來完成日常工作:支付賬單、拓展興趣、高效工作。
為了滿足需求,開發人員用開源軟體組件為產品提供強大的功能,而無需自行編寫新代碼。這其中就包括開源安全代碼。
這些組件由開源社區編寫和維護,得到了廣大「志願者」的支持--他們致力於創建更優良的代碼。
開源組件越來越多,以滿足軟體各種各樣的需求。現在,大多數app中60-80%的代碼庫都來自開源軟體。然而,並非所有人都願意為了社區的利益無私奉獻。
2017年9月,Equifax黑客在公司的Web應用程序中利用Apache Struts 2組件的易受攻擊版本竊取了1.459億人的身份信息。事實說明,如果馬虎地使用開源軟體,可能會有一定風險。
當發現一個開源組件存在漏洞(通常稱為CVE)時,這個漏洞會迅速公布,以便開源人可以執行必要的修復。
不幸的是,黑客也可以看到這些信息- 他們不需要付出任何努力就能了解哪些組件易受攻擊以及如何進行攻擊。然後,他們可以使用此信息對公司組織進行ping操作,以找出哪些公司可能反應太慢而無法修補,從而黑掉他們的系統。
黑客們認為,很多公司並不會仔細檢查他們產品的開源組件是否包含任何公開漏洞,通常忽視產品中的開源組件。意味著當新的漏洞被發現時時,他們不能及時反映,不知道產品中有潛在的危險。
大多數情況下,組件中的這些漏洞只是編碼人員的失誤,而黑客能從中迅速找到可以被利用來獲取不義之財的漏洞,然後使用其他正常的開源組件作為「傀儡」,將惡意代碼插入。這實際上為黑客提供了一個「後門」,他們可以隨意去定位,並且知道哪些版本具有內置的弱點。
許多公司發現,他們產品中的某些開源組件可被勒索軟體攻擊,其中黑客可以加密他們的數據,將公司扣為「人質」直到黑客收到付款。
讓開源項目免於災難,取決於社區依據Linux的Linus Torvalds,用他們的「千眼」不斷地審查代碼。
安維人員不斷篩選代碼,查找漏洞,並將其報告給安全資料庫。由於這些資源分布散而廣泛,因此持續監控以幫助公司領先於黑客提前發現漏洞也是一項艱巨的任務。
為了保證產品的安全,開發人員必須十分小心,檢查潛在的漏洞。
在很多黑客中流行的一個策略是:創建一個惡意軟體或黑客工具,然後將其作為開源軟體,披著羊皮賣狗肉。GitHub,http://nowhere.net等網站上就有這樣的開源軟體肆意流通。執法人員或其他人幾乎不可能在沒有下一級取證的情況下將惡意軟體追溯到他們身上。
無可否認,開源軟體是應用程序開發的基本要素,但切忌忽視風險。開發人員喜歡使用他們從GitHub或其他網站獲取的開源組件,這本身無錯。每次開發新程序時不用再「組裝」,他們才能夠更快捷地工作並將更多的注意力集中產品亮點設計上。
但是,安全地使用開源是認真對待用戶,保護他們數據隱私的表現。避免使用有公開漏洞的開源軟體,並利用自動化工具來大規模管理開源軟體。
其次,儘管總有一些「壞蘋果」,我們仍需要繼續依賴開源社區來保證我們的安全。開源社區的研究人員及時發現漏洞並報告漏洞,做了不少有用的工作。
隨時關注開源社區,以備及時發現漏洞,才能保護好我們的應用程序。
推薦閱讀:
※Dubbo開源現狀與未來規劃
※重溫 wallabag:Instapaper 的開源替代品
※代碼分析 | EosToken錢包項目後台開源詳解
※開源盛會 HBasecon Asia 8月在京舉行
※范凡:終於我見到了三次元的 Torvalds