開源治理工具選一個

           

       隨着開源技術在雲計算、大數據、AI領域的不斷運用,不斷破除技術壁壘,讓企業快速建立自身的應用,在開源軟件基礎一,自主研發部分代碼,便可以推出企業自身品牌的產品,開源技術的應用極大的推動了雲計算、大數據、AI等領域的快速發展。但是開源軟件的引用不可避免的帶來了知識產權、信息安全等方面問題。根據Gartner統計,98%的企業管理者並不知道自己研發產品裏的成分、安全程度以及是否可能侵權等情況,其實產品團隊快速交付的產品可能蘊含着巨大風險,這些風險可能導致企業產品受到攻擊、公司名譽和聲譽受到影響,嚴重者由於知識產權方面訴訟可能面臨企業經營風險。另一個方面,隨着開源技術的不斷廣泛應用,更多的安全漏洞被暴露出來,每年超過4000個安全漏洞從開源軟件中被報告出來,且不斷遞增的趨勢,而由於開源軟件任何人都可以下載和研究代碼中的潛在風險,引用了開源軟件的產品軟件就更容易受到攻擊。

        國內,很多科研院所和大企業也逐漸認識到開源技術帶來的問題,關於開源治理的研究和探討逐漸成爲熱門話題。在2019年,中國信息通信研究院牽頭制定了國內首個《開源治理能力評價方法》系列標準,旨在通過標準制定指導開源相關企業規範內部開源治理流程,維護國內開源秩序,推動開源生態健康有序發展。該評價方法分成兩個部分,第1部分是面向自發開源企業,第2部分是面向開源用戶。這些評價方法的推出,開源軟件生產企業有了標準可參考,使用開源軟件的企業遵守這些評價方法,避免企業使用開源軟件帶來的風險。當然企業需要根據這個評價方法制定符合企業自身的開源管控流程規範。

        但是筆者認爲僅僅依據評價方法是不夠的,規範、流程等的落地執行,執行情況、執行效果是需要相應的檢查方法和手段進行管理的,所以是需要在這個開源治理的流程和方法中,是需要藉助工具進行檢查的,尤其是對開發完成的軟件產品,代碼量可能數十萬行、上百萬行甚至更大,對於管理者就像是一個黑盒子,僅僅產品功能實現和滿足了,並不代表沒有風險,是需要通過對軟件成分和漏洞進行檢測的工具進行驗證的,讓整個產品的代碼在管理者面前不再是黑盒,代碼成分中有哪些開源組件、這些組件是否有安全漏洞,是否存在引用許可風險、開發團隊到底編寫了多少代碼等等,如果能夠通過檢測,就能讓管理者一目瞭然,胸中有數,便於後續的管理和市場運作。

       那麼對於一款可以針對系統中的開源組件進行檢測的軟件工具,應該具備哪些功能、性能等指標呢?根據筆者經驗,這裏我列出一個清單,僅供參考。

  

  1. 首先支持主流的開發語言,最少支持10種以上檢測語言,最好也能支持二進制文件、jar包和動態鏈接庫檢測,因爲有時候引用的不是源代碼。支持的語言至少包括C/C++JavaJavaScriptC#PythonPHPRubyGoObjective-CPLSQL/SQLSwift
  2. 開源軟件檢測,主要採用的是檢索技術,那要求工具包括的開源代碼庫和安全漏洞要足夠多,這樣才能保證匹配精度;且上述數據最好本地化安裝部署,否則涉及到自身代碼的安全問題,例如Blackduck不安裝本地庫,檢測結果就不能對應到源代碼上;
  3. 目前,CVE漏洞庫中總計在20萬左右,且國內也有兩個漏洞庫CNVDCNNVD,裏面有國內企業上傳的漏洞,對於一款檢測工具,其中漏洞庫也是越大越好,起碼庫中不少於10萬個安全漏洞;
  4. 對於被檢測項目,能夠實現提供檢測項目的版本號、發佈時間、檢測時間、代碼行數、自主研發代碼比例、開源組件佔比,組件匹配情況、部分匹配情況和外部依賴情況信息;
  5. 對於檢測出的每個組件成分,提供當前版本號、發佈日期、包含漏洞數量,包括高、中、低不同等級的漏洞數量,組件類型(開源、閉源),並提供組件對應的最新版本信息,以及建議升級到相應版本的信息;併爲用戶提供升級下載的鏈接;
  6. 對於檢測出的每個組件成分,提供組件許可協議的詳細信息,包括簡稱、風險等級、使用範圍、影響項目等。至少支持60種以上的許可證類型;
  7. 對於檢測出的每個組件成分,提供組件包含的漏洞詳情,至少包括漏洞CVE官方名稱、發佈日期,漏洞對應的CWE漏洞類型。最好能夠提供CVSS2.0CVSS3.0(通用漏洞評分系統)參考,這樣管理者就能瞭解包含安全漏洞的嚴重程度、可利用性和影響項目信息。對於每個漏洞,提供漏洞詳情描述、並提供導向CWE官方網站的詳情頁面鏈接,讓用戶能夠快速掌握漏洞信息;
  8. 項目、組件、漏洞三者之間的關聯分析,既能夠通過項目找到組件及其包含的漏洞,也能夠通過漏洞找到存在的組件,影響的項目數量、項目名稱等信息;
  9. 對於管理者,能夠統計當前用戶項目數量和狀態信息、組件語言等信息,所有組件以及其漏洞信息、組件開發語言信息等,所有漏洞及其嚴重級別統計、影響項目統計、漏洞類型統計等信息;
  10. 分析開源軟件的粒度,越細越好。至少包括文件級、函數級,有些工具只是做到了文件級還是不夠的;
  11. 能夠根據客戶要求進行定製,例如建立企業可信組件庫,納入Devops工作流、工具鏈;
  12. 檢測效率達到60萬行/小時以上,太慢速度會讓人失去耐心;

 

       面對越來越嚴峻的開源環境,在國家層面上加快對開源生態治理的法律、法律,而對於開源軟件生產企業,遵守開源生態的法律法規,守住企業經營的底線,對於開源軟件的廣大用戶,需要根據法律法規制定符合企業自身的治理規範和流程,同時藉助自動化的檢測工具落地,能夠讓您的企業生產減少風險。

 

關注安全  關注作者

關於代碼安全,跟作者溝通交流請留言。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章