撰文|叡揚資訊 資訊安全事業處 經理 郭俐佳
開放原始碼軟體 Open Source Software (以下簡稱OSS) 已大量出現在我們所使用的科技之中,它適用於所有類型的產品中,從物聯網(IoT)的興起從汽車產品到攝影機中,都有OSS在其中,它的成長速度也是逐年提升,OSS大幅提升了開發人員的開發效率,但在公司內部如要主動提供OSS正確及最新的清單,通常是很困難的事情;對於開發人員來說已有寫好的程式碼,來達到所希望的功能,為何不用,開發時程很短,後續還有各項測試需進行。如要加速完成整個系統的開發,通常就會至網路上找尋公開且大家都在使用的OSS,因此整個系統就會有很多地方或是重要的功能與OSS密不可分。以下是對於OSS的統計資料。
如何可以享用到OSS的好處,在於你應該如何去管理它。
多數公司在發佈的軟體產品中所採用的OSS,都包含了漏洞,但這些漏洞修復的時間無法確定,可能是未來很久以後的事情。其中85%的軟體中專案中,包含了很久沒更新的OSS。(WhiteSource)
當OSS發生漏洞時,該元件的開發者可能會很快的去修復它,並於網路上公開讓其被下載,但對於使用者來說,卻不一定會知道更新的資訊並進行更新。但若使用的OSS含有弱點,則必需要該採用單位負責。
大多數公司缺乏所有OSS的項目清單及其授權(License)說明。也有60%的專案狀況是報告與實際使用數量是有很大差距的。要整理授權的文件是非常繁鎖的事情,如果是人工方式處理,會產生很多繁瑣的工作,也可能會有部份的資訊錯誤。
當企業想開始針對自己的OSS進行管理的時候,會碰到很大的困難。該怎麼管理?由誰管理?等等的議題就會開始出現。
有95%的企業使用人工方式進行管理,但通常會增加企業的作業上的負擔。首先要找出有多少OSS的工作就落在開發人員的身上,也變成他們非開發工作項目之一。當整理出OSS後,隨之而來要面對的就是要到各個來源網站確認版本或是檢查目前使用的版本是否有弱點等等的問題。何不讓開發者專注於開發就好,OSS的管理由其他自動化機制來處理。

這是最重要的一步,因為如果你不知道有使用什麼OSS,你也無法知道您需要遵守哪些授權範圍,如果這些OSS有任何安全性漏洞會影響您的產品,那麼就應該要考慮更新並隨時注意這元件是否有新版本釋出或是更換其他類似元件。同時也需要注意的是OSS是否有互相依存的關係,是否牽一髮而動全身需調整所有的程式架構。
有了所有OSS清單後,就必需開始針產品所擁有的元件,進行各個授權方式的整理,這是最繁重的工作,並非是開發人員就能夠處理的環節,可能還必需仰賴公司的法務部門,針對各項授權法規進行確認,看看授權方式是否有額外要求要做什麼事情、使用的方式是否有符合或是有違法的地方。
自己用的OSS授權方式到底是什麼?這裡就要先提到一個概念”自由”不等於”免費”,通常都會以為OSS都是免費的,所以都可以隨意的使用,沒有任何法律上的問題,但這其實是不對的。舉一個例子”免費啤酒”vs”免費演講”;
”免費啤酒”是對免費理解最簡單的概念,是免費贈送給您的禮物,不需要您的期望。店員只需提供給您啤酒,讓您享受啤酒,您不需要做任何事情。因此免費啤酒就是”免費”。在我們常見的軟體中,Adobe的Flash Player和Google的Chrome,這些產品都可以免費提供給任何人使用和享受的軟件,但用戶不能看源始碼並進行修改,你也不能自由的發佈軟體或提出程式漏洞修改及產品更新。因此提供者,例如Adobe和Google,可以控制你得到的啤酒品牌以及獲得的啤酒。
說到免費演講,“言論自由”是一個自由的問題,而不僅僅是獲得免費而已。這種自由給你四個免費啤酒沒有的權利:
I. 您作為用戶,有權為了任何目的執行程式的自由。意思你可以用任何一台電腦自由的去使用它,如果您有一個可以執行程式的手機,甚至可以在不同的平台上進行使用,能自由享用的權利。
II. 您有權查看該軟體的實際工作原理。這類似於讓你知道你最喜愛的啤酒或飲料中的成份,讓你取得程式的原始碼,了解它程式的運作方式為何。但免費啤酒是無法讓消費者得知道些成份,也就沒有這種自由的權利。
III. 您也可以重新發佈您想要的軟體。這也意味著您可將軟體重新打包成您自己程式的一部分,發佈在你的新產品之中。
IV. 您有權改進程式,假設您知道如何優化這些程式,並且上傳這些優化後的程式,以便社群眾可以從您的努力中受益。
在資訊安全的作業中,會有一個環節是要讓程式經過白箱工具進行檢查,確認所要發佈的程式是否有漏洞會讓駭客可以透過XSS或是SQL Injection進行攻擊,但常常碰到的問題是,如系統中有使用或參考到元件時,就無法確認該元件是否有漏洞,最可能的原因為它沒有源始碼,但就算有源始碼的元件掃到有弱點後,也無法進行修改,因為怕改動後整個功能會無法使用。
到不如把所有的元件列出後,再全部進行弱點的找尋及版本的整理。