核心概念
本文提出了一個名為 BINENHANCE 的新型二進制代碼搜索增強框架,旨在通過利用外部環境語義來增強內部代碼語義的表達,從而提高二進制代碼搜索的性能和穩健性。
摘要
書目資訊
- 標題: 基於外部環境語義的二進制代碼搜索增強框架:BinEnhance
- 作者: Yongpan Wang, Hong Li, Xiaojie Zhu, Siyuan Li, Chaopeng Dong, Shouguo Yang, Kangyuan Qin
- 發表: Network and Distributed System Security (NDSS) Symposium 2025
研究目標
本研究旨在解決現有二進制代碼搜索方法的局限性,這些方法主要依賴於內部代碼語義或函數調用圖,導致在處理函數內聯、複雜場景和大型函數搜索任務時表現不佳。
方法
BINENHANCE 框架通過以下步驟增強二進制代碼搜索:
- 節點初始嵌入生成: 使用現有的內部代碼語義模型(例如 HermesSim)生成函數的初始嵌入,並使用 MPNET 對字符串進行編碼。
- 函數嵌入增強: 構建外部環境語義圖(EESG),該圖包含四種類型的邊(調用依賴、數據共用、地址相鄰和字符串使用)和兩種節點類型(函數節點和字符串節點)。使用白化變換統一節點嵌入維度,並設計語義增強模型(SEM)來學習 EESG 上的外部語義,並通過殘差塊將其與內部語義嵌入融合。
- 相似度組合: 計算數據特徵的 Jaccard 相似度,並利用前饋神經網絡將其與語義嵌入的餘弦相似度相結合,以獲得最終的相似度分數。
主要發現
- BINENHANCE 在兩個公共數據集上的實驗結果表明,與現有的二進制代碼搜索方法相比,該框架在各種函數池大小、跨架構和跨優化選項的情況下,以及在函數內聯和實際漏洞檢測等場景中,都能顯著提高性能。
- BINENHANCE 的平均 MAP 分數提高了 16.1%,證明了利用外部環境語義增強內部代碼語義表達的有效性。
主要結論
- 結合外部環境語義可以顯著提高二進制代碼搜索的準確性和效率。
- BINENHANCE 框架提供了一種有效且穩健的方法,可以解決現有二進制代碼搜索方法的局限性。
意義
這項研究為二進制代碼搜索領域做出了重大貢獻,為開發更準確、高效和可擴展的二進制代碼搜索解決方案開闢了新的途徑。
局限性和未來研究
- 未來的研究可以探索其他外部環境特徵,以進一步增強內部代碼語義的表達。
- 可以研究更先進的圖神經網絡模型,以進一步提高 SEM 的性能。
統計資料
在兩個公共數據集上,BINENHANCE 的平均 MAP 分數提高了 16.1%(從 53.6% 提高到 69.7%)。
在包含 10,000 個函數的函數池中,使用 TREX 的 768 維嵌入回調一個包含約 2500 個函數的二進制文件中的所有同源函數需要大約 22 分鐘。
使用 128 維嵌入只需要 5 分鐘。
編譯器導致的函數內聯可以達到 70%。
96% 的軟件項目使用開源代碼,其中 84% 的項目至少存在一個已知漏洞。
引述
“我們的中心思想側重於全面利用外部環境語義(第二節 A 部分中的定義)來增強內部代碼語義模型。”
“據我們所知,這也是第一個證明這種整合可以顯著改善同源函數識別的工作。”
“我們的方法豐富了內部嵌入的語義,並解決了基於函數調用的方法的錯誤過濾問題。”