酷探是一款全方位智能軟件成分分析工具,利用智能漏洞分析引擎確定代碼庫中的開源組件及漏洞信息,此工具也是市場上一款同時支持二進制掃描和源代碼掃描的軟件成分分析工具。該引擎利用持續深度學習與專家驗證等技術來處理萬億字節級別的開源與閉源的漏洞數據,同時利用第三方數據庫與開源組件獨有的特性和漏洞特性來提升掃描結果的準確率。
開發團隊通過利用已知開源組件的特征,分析和挖掘軟件應用程序中所使用的開源組件,并與我們獨有的漏洞與許可證數據庫進行對比,以識別軟件開發和部署階段中所存有的安全隱患問題。
圖表 1 軟件開發與部署階段流程圖
掃描形式
? SCA源代碼掃描
? SCA二進制文件掃描
掃描引擎
? 源代碼 - C/C++語言掃描引擎
? 源代碼 - Java, JavaScript, Python,Go, Ruby等
? APK文件掃描引擎(SCA+SAST)
? 二進制文件掃描引擎
酷探利用智能漏洞分析引擎來掃描組件中所含的漏洞與許可證風險。該引擎利用了第三方數據庫與開源組件獨有的特性和漏洞特性來提升掃描結果的準確率。
為了讓用戶的整體操作更為輕松便捷,酷探能夠無縫集成到用戶的軟件開發周期中,我們對Jenkins, Bamboo, Travis CI, Azure Team Foundation Server, Circle CI, GitHub, Bitbucket,Huawei CodeBuild和Gitlab等等主流集成框架和代碼管理平臺都提供了SaaS和本地的支持,讓開發人員在集成酷探時,無需對其現有的構建和部署流程進行較大更改,減輕用戶因使用新工具而帶來的額外工作量。
圖表 2 酷探掃描流程圖
組合二進制和源代碼分析
我們將最前沿的二進制逆向工程技術與源代碼特征讀取技術相互結合,讓用戶能夠在一款工具上同時對源代碼和二進制程序進行分析,并允許用戶在不同的開發階段都能夠對其源代碼或是二進制文件進行掃描。這使得酷探成為可以同時支持二進制文件掃描和源代碼掃描的軟件SCA工具。
漢化漏洞描述
酷探是國內唯一一款能夠對CVE安全漏洞進行了漢化處理的軟件成分分析工具,最大程度的實現對國內用戶全面的支持,讓用戶對漏洞描述的理解變得更為輕松容易。在用戶界面上,用戶可自由切換界面語言,對漏洞信息進行雙語翻譯核對。
強大的漏洞數據庫
我們擁有超過10萬個開源與閉源漏洞數據作為支撐,而這些數據也已經被分類標簽為“受漏洞影響代碼片段”,“潛在安全漏洞”,“修復漏洞代碼片段”和“可能被進攻代碼片段”等數據(5.9代碼修復補?。?,協助用戶更好的洞察其代碼中所存在的所有風險。此外,在數據更新方面,針對SaaS版或是本地版(聯網)的用戶,我們的漏洞數據庫的更新頻率為每6小時一次,而對于本地版(斷網)的用戶,我們將每周為用戶提供一個數據更新包,供用戶下載使用,確保用戶能在第一時間獲得最新的漏洞報告和信息。
深度許可證分析
酷探不僅可以幫助用戶檢查開源組件中的許可證詳情,還能讓用戶自定義許可證掃描規則,以進行更深入的許可證分析和檢查。用戶在定義許可證策略時,對于已知的許可證,用戶能直接將許可證名字加入許可證規則中;對于未知的許可證,用戶則可以通過將許可證屬性加入規則的方式,讓所有未知,但包含該屬性(例:公開源碼屬性)的許可證,自動被歸類在用戶定義的許可證規則中。
圖表 4 許可證政策定義
依賴關系圖
酷探通過創建依賴關系圖,把項目中的復雜依賴關系和組件以圖形方式呈現出來,讓用戶更加直觀的了解項目中的依賴關系及組件。
專有知識圖譜
大型企業可能同時維護數十到上千個項目,而其中可能有多個項目共同存在相同的漏洞和許可證問題??崽教峁S械闹R圖譜(圖表 5),為用戶展示一個所有被掃描過的項目之間的相互關系視圖,協助用戶以更快的,更低的成本來修復問題。
圖表 5 知識圖譜
此外,用戶也能對知識圖譜進行自定義操作(僅顯示漏洞危害等級為超高和高的漏洞、僅顯示關于Java的項目、僅顯受限類型的許可證等),對知識圖譜內容進行調整(圖表 6)。
圖表 6 自定義知識圖譜
IDE集成
對于希望每次編譯時都能進行掃描,或是機構尚未設置“持續集成(CI)”Pipeline的用戶,酷探也提供了對IDE集成的服務??崽疆斍爸С值腎DE包括:
? Eclipse
? Visual Studio
用戶能夠在以上IDE的Marketplace內找到產品的Plugin工具。用戶僅需在Plugin內輸入登錄信息,即可對自身的代碼進行一鍵掃描/編譯后自動掃描。
API集成
我們提供一套完整的API接口。第三方系統可以通過我們提供的API直接調用我們的產品。若第三方系統按照我們提供的API對其系統進行封裝,我們也可以直接集成第三方系統來支持新的掃描引擎。此外,我們也準備了一系列明確的swagger API文檔,可以有效協助API集成工作的開發。
代碼修復補丁
酷探根據用戶所掃描的代碼語言,提供了兩種不同的漏洞修復方式。
1、C/C++ 項目修復
圖表 7 用戶代碼中的漏洞代碼片段圖
圖表 8 用戶可即用的補丁代碼片段圖
2、Java, JavaScript, Python, Ruby等語言。
圖表 9 其他語言代碼修復補丁
酷探在修復兼容的推薦算法上,進行了多維度的考量。在進行修復版本推介時,酷探除了向用戶推介距離當前使用版本最接近的版本,降低兼容問題之外,也將其他因素如:下一個版本是否引入新的漏洞?下一個版本是否仍存有漏洞,但危害程度較低?版本降級是否會是更優的補???等綜合因素一并考慮,為用戶提供最安全最穩定的補丁建議。
3、批量修復
在項目漏洞頁面上,酷探也提供了批量修復漏洞的選擇,用戶可根據組件名,一鍵選取所有需要修復的直接和間接依賴漏洞,對GitHub/Gitlab等一次性創建一個Pull Request。
圖表 10 批量修復
掃描格式支持
源代碼格式
二進制格式