在12月1日下午舉行的騰訊安全先行者·新品發布會場上,騰訊開發安全高級產品經理劉天勇針對開發安全體系的建設進行了演講,同時發布了Xcheck、BSCA兩款開發安全產品。
現代軟件應用面臨的安全風險的主要來源
近年來,Solarwinds、Log4j等現象級安全事件頻發,為全球各行各業帶來了強烈沖擊,軟件供應鏈安全也進入行業視野并成為熱門話題。
而作為保障軟件供應鏈安全的“源頭”,開發安全相關技術和產品也受到越來越多的關注。行業共識認為,應用系統上線之后進行軟件漏洞修復,其修復成本是需求設計階段修復成本的幾十倍。因此,在開發環節,引入相應的安全工具,能夠有效的降低漏洞的修復成本,實現安全的左移。
自研代碼
自研代碼一定有未被發現的缺陷:“缺陷是天生的,漏洞是必然的”。統計數據表明,程序員每寫1000行代碼,就會出現1個邏輯性缺陷。
第三方開源組件
現代應用都是組裝的而非純自研:據統計,78%-90%的現代應用融入了開源組件,平均每個應用包含147個開源組件,開源組件的引入會帶來潛在的軟件供應鏈安全風險。
騰訊開發安全新品發布,全面覆蓋源代碼和開源組件風險
騰訊Xcheck靜態應用檢測系統
隨著研發模式從瀑布式開發、到敏捷、再到目前最流行的DevOps,不難發現,軟件開發流程正在向自動化、便捷化和智能化的方向發展。在此背景下,傳統的靜態應用安全測試工具已無法滿足當下的開發模式的效率需求,主要體現在兩個方面:
速度慢:掃描速度在幾十分鐘到數小時,無法適應快速迭代的DevOps開發模式,嚴重影響流水線自動化效率。
誤報高:檢測報告動輒上百個風險,誤報過高,需消耗大量精力去處理,無法作為自動化質量門禁紅線。
針對以上問題,騰訊安全致力于挖掘代碼中隱藏的安全風險,提升代碼安全質量,自主研發推出Xcheck靜態應用檢測系統。
雙引擎架構,滿足不同場景需求
為了覆蓋不同的客戶場景,新版Xcheck提供雙引擎的架構,實現檢測深度和廣度的全覆蓋:
全新檢測原理:語義解析+污點追蹤
語義解析:Xcheck擁有一套自研的代碼分析模糊解析器,無需依賴編譯,可以將代碼快速轉換成抽象語法樹,相比同類產品,解析的速度實現了大幅度的提升。
污點追蹤:Xcheck會在抽象語法樹的基礎上,設計精細化的模型,進行模擬執行和污點分析,準確的找到污點的傳播路徑。核心檢測算法經過了騰訊內部每年數百萬次任務的打磨,檢出率和誤報率能保證在較高的水平。
騰訊Xcheck產品的接入方式及應用場景
接入流水線:通過插件方式嵌入CI/CD,默認觸發掃描
接入代碼倉庫:針對代碼倉庫進行定時定期的全量掃描
本地掃描:人工上傳代碼壓縮包進行檢測審計
騰訊BSCA二進制軟件成分分析產品
騰訊BSCA是一款以二進制軟件成分分析為核心的檢測平臺,幫助用戶檢測軟件制品,建立軟件物料清單,發現軟件制品風險,規避開源安全及合規性問題。
強大的解析能力,支持全格式制品掃描
騰訊BSCA擁有強大的分析能力,支持全格式、多維度的深度掃描,能夠有效應對各類軟件檢測需求,涵蓋移動端,嵌入式,后臺開發,云原生各種開發場景下的跨架構格式解析。
解析能力:支持所有常見的制品格式,包括常見固件、鏡像、安裝包、文件系統、壓縮文件等。針對未知格式,啟發式格式解析,可以采用遍歷窮舉方式識別出所有可識別的數據片段,進行部分解包還原。
檢測能力:騰訊BSCA是一個廣義的SCA,除了使用核心的SCA算法之外,還可以通過分析間接依賴、文件hash、結構特征等,最大程度的提高掃描精度。
騰訊安全獨家維護的開源組件知識庫
對于一個SCA工具來說,知識庫是一個核心組成部分。騰訊BSCA采用騰訊安全獨家維護的開源組件知識庫,為開發、測試、運維等環節提供全面的開源知識儲備,提供快速準確的開源數據信息更新。
支持全局管理SBOM組件,同時提供安全預警功能
該功能能夠有效的應對軟件供應鏈安全,在一個新的開源組件漏洞爆發時,借助Sbom能力,第一時間梳理資產,快速定位到人/機器等細粒度,再通過打通內部系統,實現相關風險的預警和排查。
騰訊BSCA產品使用場景
騰訊BSCA同時支持SaaS和私有化兩種形態,使用場景主要分成供應鏈場景和自研場景兩種。
針對供應鏈場景:采購的第三方產品,可以直接手動上傳相關的安裝包,實現供應鏈安全的準入檢測。
針對自研場景:可以對接制品倉庫或者CICD流水線,實現自動化的開源組件風險檢測。
騰訊DevSecOps整體解決方案
除了騰訊Xcheck、騰訊BSCA兩款核心開發安全產品外,騰訊安全還可以提供基于DevSecOps理念的完整解決方案,通過自動化工具和咨詢服務結合的方式,滿足客戶開發安全體系建設的需求,實現從源頭降低軟件供應鏈安全風險。