Azure DevOps in Action - 如何避免開源套件的使用風險
近代軟體開發,不管是使用哪一種語言,幾乎都一定會使用到套件(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,就可以輕易的掃描整個專案中使用的套件: 呈現出的報表如下: 你會發現,報表中清楚的告訴我們,哪些套件是高風險的,並且原因為何(上圖A)。如果你的專案有紅色高風險套件,強烈建議你要立即著手處裡(升級版本或尋找替代套件)。 要在Azure DevOps中啟用WhiteSourceBolt非常簡單,只需要為你的組織安裝Azure DevOps Marketplace中的外掛: 下載位置位於: https://marketplace.visualstudio.com/items?itemName=whitesource.ws-bolt 安裝好之後,你重新進入Azure DevOps,可以看到在