數字時代的軟件開發普遍遵循敏捷實踐,發布和部署周期都很短,開發團隊非常依賴開源來加速創新迭代速度。因此,對團隊項目中包含的每個開源組件進行跟蹤非常重要,可以避免法律風險,保持強大的安全態勢。
在DevSecOps環境中,SCA可以明確開源組件的可見性,幫助企業精準把控開源組件風險,避免軟件帶病上線。近年來,SCA逐漸成為企業軟件治理的“必備神器”,強大能力的背后離不開關鍵技術的支撐,開源網安在為上百家客戶服務的實踐中認為,軟件成分分析技術、組件多鏈路依賴分析技術、二進制分析、漏洞級代碼溯源分析、函數級漏洞可達性定位檢測等幾大技術是決定SCA檢測能力的關鍵,本期我們將對這些關鍵技術進行深入解析。
基于包管理器的SCA分析技術
通過對目標檢測對象的配置文件及應用包中存在的二進制引入包進行掃描,獲取其相關直接及間接引入的組件信息,并與知識庫內容的匹配標識,獲取相關的組件完整信息。可實現對已修改組件、組件間依賴關系識別、自研組件設定等組件行為。
基于源碼溯源的SCA分析技術
源碼溯源分析技術(或“同源分析”)通過收錄開源源代碼,并將相關代碼進行索引處理,讓源文件和目標文件合并后,既能檢測自身代碼是否有冗余重復代碼,又能檢測源代碼和目標代碼之間的代碼重復情況。此技術不僅支持文件與文件之間的比較,而且擁有完善的未經授權的開源代碼庫,可以將應用代碼和開源代碼庫的信息進行比較,覆蓋率和精確度更高。
多鏈路組件依賴分析技術
多鏈路組件依賴分析技術,主要基于包管理器的模擬構建實現組件依賴的過程跟蹤和定位,將依賴樹的數據信息與收集的開源數據進行數據核驗,補充依賴樹數據的其他信息,獲取最終的依賴數據,幫助開發人員更好地理解和管理代碼的復雜性,提高軟件的質量和可靠性。
制品二進制成分分析技術
對被檢測的二進制制品文件進行遞歸提取內容,通過文件格式識別引擎識別格式,對不同格式的文件分別調用特征提取引擎,提取二進制制品文件的特征信息。使用特征匹配算法,通過圖相似、函數相似、語義相似等算法與開源組件特征庫進行匹配運算,確定引入的開源組件名稱和版本,結合開源知識庫的數據支持,獲取開源組件的許可和漏洞風險信息,提取二進制特征的同時找出制品中的敏感信息,生成敏感信息清單,有效發現軟件中潛藏的薄弱點。
安全漏洞可達性分析技術
采用基于AST(抽象語法樹)及調用分析方法,對用戶上傳的源代碼進行AST信息提取,獲取源代碼的函數調用鏈信息,同時從主流開源倉庫中下載開源項目各版本的源代碼,提取源代碼中的方法,將提取的函數信息存入開源組件知識庫中,并與開源組件建立關聯關系,形成開源函數庫,基于對調用鏈、調用位置進行分析,為研發和安全部門提供更準確的修復信息。
隨著數字化的深入,更多未知風險也將推動SCA的應用范圍變廣、檢測能力增強以及更加智能化。因此,企業在選擇SCA工具時,需要通過關鍵技術了解其檢測能力與發展潛力,匹配自身安全需求,建立最佳開源治理體系,保障數字化建設的安全發展。
來源:安全牛
下一篇:網絡安全制度的內在關系