選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
5 分鐘閱讀時間 (1036 個字)

5個常見開發工程師使用Open Source會犯的錯誤

joshua-aragon-EaB4Ml7C7fE-unsplash-1

撰文及整理:叡揚資訊資安事業處    

參考資料來源:https://resources.whitesourcesoftware.com/blog-whitesource/don-t-be-a-turkey-5-common-mistakes-your-developers-make-using-open-source

開源概念日漸蓬勃,我們感謝開源社群(團體)為幫助其他人更快地構建創新產品而付出的所有努力,為每個人節省了時間和金錢。最重要的是,我們非常感謝能夠實現這一切的開發人員,以便將程式碼添加到您的應用程式和網站中。

如何選擇正確的Open Source管理工具?
不幸的是,現今資訊科技發展快速蓬勃,開發團隊從未獲得他們應得的肯定,大家的目光總是放在具有吸引力的產品上。因此今年,我們特別感謝優秀的開發人才,幫助我們更創新地發展。然而,我們體認到即使具有“敏捷”的開發環境,能夠有助即早發現問題,但還是會因問題的發生而導致團隊失敗。為此我們列出開發人員在使用OpenSource時最常見的五個錯誤,希望能減少開發的成本及時間。

#1複製貼上開源程式碼 Copy & Paste Open Source Code
開源程式碼的撰寫,對於開發人員最常犯的錯誤是複製和貼上程式碼,而未注意到在他們的環境中是否又增加其他不需要的程式碼。Bill Sourour:「如果您了解像是Google、Github和StackOverflow等等的運作方式,複製貼上程式片段將沒問題。但是相同的邏輯並不適用於開源程式碼。」為了避免這類錯誤,開發人員應該清楚了解哪部分程式碼可以在應用程式上複製貼上,哪些不可以直接使用。

#2每天都應該重視資訊安全 Security All Day Everyday
當人們想到開源程式碼,首先會想到的問題:如果程式碼開放了,真的夠安全嗎?雖然有些人會認為封閉式商業軟體或商業軟體看起來更安全,但是開源程式碼因開放的特性,越多開發人員使用,就越容易提高安全性。反之,封閉程式碼在較少的專案中使用,可能存在嚴重漏洞。這些漏洞在很長一段時間內都沒有被注意到,直到駭客出現攻破漏洞。

在使用開源程式碼時,開發人員需要了解使用已知漏洞的庫可能帶來的程式碼中的潛在安全風險。這也意味著了解您的產品中有哪些開源,並確保您只使用安全版本。

#3別忘記更新 Don’t Forget to Update
當選擇了最適合您的開源管理工具,但別忘了隨時保持最新版本。通常,新版本提供新功能,軟體錯誤的修復報告、安全漏洞或添加與其他開源專案的相容性。這些是開源社群共同協作的結果,社群共同努力生成更好的程式碼。但是,如果未能隨時更新,將無法從中受益。更新除了帶來產品最新功能之外,更針對安全漏洞的重要修復,協助保護產品。

如果不更新這些版本,則可能使企業面臨重大風險,因為駭客能夠找到相同的漏洞並嘗試利用它們。他們所要做的就是尋找新發布的漏洞,並在那些更新速度太慢而無法修補的組織上攻擊它們。另一個威脅來自駭客將舊版本與新版本進行比較,挑選出已修補的內容,了解差異後,瞄準可攻擊的目標。

別因為未即時更新而被駭客剝削了您的安全權利。

#4 我可以使用這個授權嗎?Am I Allowed to use this License?
使用開源可以讓開發人員的生活變得更加輕鬆,但有時也會帶來巨大的麻煩,尤其是企業的法務團隊。 開發人員遇到另一個常見錯誤是使用違反公司政策的開源授權。典型且常見為GPL授權,向使用此授權的公司帶來了許多法律問題。其中最令人討厭的情況為開發人員使用GPL授權的元件/程式碼,然後在系統上線前才發現,公司不能使用它。只好將有爭議的開源程式移除,但也需要異動相關的程式,並根據貴公司的政策再另外找尋可使用用的開源程式來代替它。這一連串的過程耗費過多的人力及時間,延遲系統上線時間。

企業內部應設置有關哪些授權是被允許、哪些是不被允許的明確政策。我們建議您建立一個系統,讓您全面了解產品中的授權,從而快速釐清法律的問題,確認是否符合規定。

#5相依性 Dependencies
最後一點、最重要的錯誤與開源程式的相依性有關。開發人員通常會忽略因相依性,在實際使用的開源函式庫數量,如果他們使用相依性管理工具例如:Maven(Java)、Bower(JavaScript)、Bundler(Ruby)等等自動引用開源元件的工具,這問題將特別嚴重。相依主要分為兩種型態:直接和傳遞。直接相依性是您的程式碼內直接引用的函式庫(Library),傳遞相依性是指您使用的函式庫(Library)中,還有用到其他的開源程式– 即為開源程式中的開源程式。

不追蹤您開源程式的相依性會導致您失去對軟體的可見性與控制。如果您的團隊正在使用開源,就像市場上幾乎所有商業軟體產品一樣,必須追蹤正在使用的所有開源庫,不管是直接相依或是傳遞相依都需要追蹤。

我們都想保持正確且安全,但請記住,人不可能永遠不犯錯。
問題是我們從錯誤中學到了多少? 我們採用哪些系統和工具將錯誤降至最低?
希望這份清單可以幫助您和您的團隊在未來一年中繼續發展,同時避免前一年的陷阱。

相關解決方案:

OpenSource 資安檢測 - WhiteSource應用系統持續整合平台

相關文章分享:

GSS資安電子報0152期【不要成為下一個EQUIFAX - 2017 十大OpenSource弱點】

開發人員安全程式學習指南!!!
使用 OpenTracing - Jaeger (BFv3 使用 Dynamic Proxy)

相關文章