Azure DevOps in Action - 如何避免開源套件的使用風險

enter image description here
近代軟體開發,不管是使用哪一種語言,幾乎都一定會使用到套件(Package),套件的使用都有著非常重大的意義。套件不只是讓開發變的更方便,套件的版本管理,能夠讓專案之間的相依性被有效管控,避免dependency hell的發生。

所以各大開發語言,不管是node.js、python、Java…都有自己的套件庫,微軟的.net當然也是,nuget就是.net開發人員的標準套件庫。如今,使用套件庫上的組件來開發企業內的專案,已經是理所當然的習慣了。

套件庫的使用風險

然而,使用套件並非100%毫無風險,由於開源軟體的觀念盛行,這個時代任何人都可以將自己開發的套件貢獻上nuget讓大家使用,雖然開發社群與nuget站台會針對有潛在或惡意風險的套件提出警訊,但由於這些資訊並非即時提供,且有可能因為開發人員的疏忽而沒有被發現,導致你的專案使用到有品質不佳,或是有安全疑慮的套件。

除此之外,套件還有許可授權的問題,並非每一個套件使用上都是毫無代價的,雖然nuget會要求套件開發人員具體標明套件的使用授權許可,但倘若開發人員不察,使用到一些並非可以免費使用的套件,或是使用到了標註為GPL的套件,那你依賴該套件開發的專案,也會被要求開源,這對於公司來說,可能會造成一場災難…

在CI Pipeline中掃描套件

因此,為了避免軟體開發人員一時疏忽,CI Pipeline有必要針對軟體套件的使用作一些掃描和檢查。而WhiteSourceBolt就是這樣的一套免費工具。

你可以在Azure DevOps Pipeline中,加入WhiteSourceBolt這個task,就可以輕易的掃描整個專案中使用的套件:
enter image description here

呈現出的報表如下:
enter image description here

你會發現,報表中清楚的告訴我們,哪些套件是高風險的,並且原因為何(上圖A)。如果你的專案有紅色高風險套件,強烈建議你要立即著手處裡(升級版本或尋找替代套件)。

要在Azure DevOps中啟用WhiteSourceBolt非常簡單,只需要為你的組織安裝Azure DevOps Marketplace中的外掛:
enter image description here

下載位置位於:
https://marketplace.visualstudio.com/items?itemName=whitesource.ws-bolt

安裝好之後,你重新進入Azure DevOps,可以看到在Pipeline選單下,出現了WhiteSourceBolt:
enter image description here

請點選進去,輸入你的聯絡方式註冊後即可使用。

接著,請進入Pipeline,在其中加入WhiteSourceBolt task,並且設定working directory:
enter image description here

完成之後,重新觸發運行pipeline,完成後即可看到報表囉:
enter image description here

幾個小小的動作,讓專案免於套件使用的風險,非常划得來吧。


YouTube頻道:https://wwjd.tw/809k364
電子書: https://www.pubu.com.tw/ebook/288713
最新著作:

https://www.tenlong.com.tw/products/9786263241251?list_name=b-r7-zh_tw

留言

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

精彩(且驚人)的Semantic Kernel入門範例

使用Semantic Kernel 建立自然語言請假系統

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...