toplogo
登入

基於外部環境語義的二進制代碼搜索增強框架:BinEnhance


核心概念
本文提出了一個名為 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 框架通過以下步驟增強二進制代碼搜索:

  1. 節點初始嵌入生成: 使用現有的內部代碼語義模型(例如 HermesSim)生成函數的初始嵌入,並使用 MPNET 對字符串進行編碼。
  2. 函數嵌入增強: 構建外部環境語義圖(EESG),該圖包含四種類型的邊(調用依賴、數據共用、地址相鄰和字符串使用)和兩種節點類型(函數節點和字符串節點)。使用白化變換統一節點嵌入維度,並設計語義增強模型(SEM)來學習 EESG 上的外部語義,並通過殘差塊將其與內部語義嵌入融合。
  3. 相似度組合: 計算數據特徵的 Jaccard 相似度,並利用前饋神經網絡將其與語義嵌入的餘弦相似度相結合,以獲得最終的相似度分數。

主要發現

  • BINENHANCE 在兩個公共數據集上的實驗結果表明,與現有的二進制代碼搜索方法相比,該框架在各種函數池大小、跨架構和跨優化選項的情況下,以及在函數內聯和實際漏洞檢測等場景中,都能顯著提高性能。
  • BINENHANCE 的平均 MAP 分數提高了 16.1%,證明了利用外部環境語義增強內部代碼語義表達的有效性。

主要結論

  • 結合外部環境語義可以顯著提高二進制代碼搜索的準確性和效率。
  • BINENHANCE 框架提供了一種有效且穩健的方法,可以解決現有二進制代碼搜索方法的局限性。

意義

這項研究為二進制代碼搜索領域做出了重大貢獻,為開發更準確、高效和可擴展的二進制代碼搜索解決方案開闢了新的途徑。

局限性和未來研究

  • 未來的研究可以探索其他外部環境特徵,以進一步增強內部代碼語義的表達。
  • 可以研究更先進的圖神經網絡模型,以進一步提高 SEM 的性能。
edit_icon

客製化摘要

edit_icon

使用 AI 重寫

edit_icon

產生引用格式

translate_icon

翻譯原文

visual_icon

產生心智圖

visit_icon

前往原文

統計資料
在兩個公共數據集上,BINENHANCE 的平均 MAP 分數提高了 16.1%(從 53.6% 提高到 69.7%)。 在包含 10,000 個函數的函數池中,使用 TREX 的 768 維嵌入回調一個包含約 2500 個函數的二進制文件中的所有同源函數需要大約 22 分鐘。 使用 128 維嵌入只需要 5 分鐘。 編譯器導致的函數內聯可以達到 70%。 96% 的軟件項目使用開源代碼,其中 84% 的項目至少存在一個已知漏洞。
引述
“我們的中心思想側重於全面利用外部環境語義(第二節 A 部分中的定義)來增強內部代碼語義模型。” “據我們所知,這也是第一個證明這種整合可以顯著改善同源函數識別的工作。” “我們的方法豐富了內部嵌入的語義,並解決了基於函數調用的方法的錯誤過濾問題。”

深入探究

除了外部環境語義之外,還有哪些其他因素可以利用來進一步提高二進制代碼搜索的性能?

除了外部環境語義,以下因素也可以被利用來進一步提高二進制代碼搜索的性能: 更豐富的內部代碼語義表示: 現有的內部代碼語義模型可以通過結合更豐富的信息進行改進,例如: 數據流分析: 分析數據在函數內的流動,可以捕捉到更多與函數功能相關的語義信息。 控制流圖的深度分析: 例如,利用圖神經網絡(GNN)更全面地學習控制流圖的結構和語義信息。 結合不同層次的代碼信息: 例如,將指令級別的語義信息與函數級別的語義信息相結合,可以更全面地表示函數的語義。 更强大的语义嵌入模型: 可以探索更强大的深度学习模型来生成更具区分性的语义嵌入,例如: 预训练模型: 利用大规模代码库预训练模型,可以学习到更通用的代码语义表示。 对比学习: 通过对比学习方法,可以学习到更具区分性的语义嵌入。 结合多模态信息: 可以将二进制代码与其他模态的信息相结合,例如: 源代码: 如果可以获取到源代码,可以将源代码的语义信息与二进制代码的语义信息相结合。 文档信息: 可以将函数的文档信息与二进制代码的语义信息相结合。 改进相似度计算方法: 可以探索更精准的相似度计算方法,例如: 图相似度计算: 利用图相似度计算方法,可以更准确地计算两个函数的外部环境语义图之间的相似度。 结合多種相似度度量: 可以将多种相似度度量方法相结合,例如将余弦相似度与欧氏距离相结合。 更高效的搜索算法: 可以采用更高效的搜索算法来加速二进制代码搜索过程,例如: 基于哈希的搜索: 利用哈希函数将函数映射到低维空间,可以快速地进行相似性搜索。 近似最近邻搜索: 利用近似最近邻搜索算法,可以在保证搜索效率的同时,获得较高的搜索精度。

BINENHANCE 框架如何適應不斷發展的編譯器優化技術和新的軟件漏洞?

BINENHANCE 框架的适应性是一个需要持续关注和改进的方面。面对不断发展的编译器优化技术和新的软件漏洞,可以采取以下策略: 持续更新外部环境语义图: 新的编译器优化技术: 针对新的编译器优化技术,例如代码混淆、控制流扁平化等,需要分析其对二进制代码的影响,并相应地更新外部环境语义图的构建方法,例如增加新的边类型或节点类型。 新的软件漏洞: 针对新的软件漏洞,需要分析其利用的代码特征,并将其融入到外部环境语义图中,例如标记与漏洞相关的函数或代码块,以便更准确地识别潜在的漏洞代码。 改进语义嵌入模型: 对抗训练: 可以使用对抗训练方法来提高语义嵌入模型对代码变化的鲁棒性,例如在训练过程中加入对抗样本,使模型能够更好地识别经过优化或混淆的代码。 迁移学习: 可以利用迁移学习方法,将已有的语义嵌入模型迁移到新的编译器或新的漏洞类型上,从而减少对新数据的依赖,并加快模型的训练速度。 结合动态分析技术: 动态污点分析: 可以结合动态污点分析技术,跟踪数据在程序运行时的流动,从而更准确地识别与漏洞相关的代码路径,并将其用于构建更精确的外部环境语义图。 符号执行: 可以结合符号执行技术,探索程序的所有可能执行路径,从而更全面地识别潜在的漏洞代码,并将其用于训练更强大的语义嵌入模型。 总而言之,BINENHANCE 框架需要不断地更新和改进,才能适应不断发展的编译器优化技术和新的软件漏洞。

如果將 BINENHANCE 的核心思想應用於其他領域,例如自然語言處理或圖像識別,會產生什麼影響?

BINENHANCE 的核心思想是利用外部环境信息来增强目标对象的语义表示,这在自然语言处理和图像识别等领域也具有潜在的应用价值。 1. 自然语言处理: 文本分类: 可以将文本与其相关的上下文信息(例如作者、发布时间、相关主题等)构建成外部环境图,并利用图神经网络学习更丰富的文本表示,从而提高文本分类的准确率。 机器翻译: 可以将源语言句子与其相关的上下文信息(例如段落、篇章、语料库等)构建成外部环境图,并利用图神经网络学习更准确的句子表示,从而提高机器翻译的质量。 情感分析: 可以将评论文本与其相关的上下文信息(例如产品信息、用户信息、评论时间等)构建成外部环境图,并利用图神经网络学习更全面的文本表示,从而提高情感分析的准确率。 2. 图像识别: 目标检测: 可以将图像中的目标与其周围的场景信息(例如其他目标、背景环境等)构建成外部环境图,并利用图神经网络学习更具区分性的目标表示,从而提高目标检测的准确率。 图像分割: 可以将图像中的像素与其周围的像素信息(例如颜色、纹理、边缘等)构建成外部环境图,并利用图神经网络学习更精确的像素表示,从而提高图像分割的精度。 场景理解: 可以将图像中的不同目标及其之间的关系构建成外部环境图,并利用图神经网络学习更全面的场景表示,从而提高场景理解的准确率。 影响: 将 BINENHANCE 的核心思想应用于其他领域,可以: 提高模型的准确率: 通过引入外部环境信息,可以更全面地表示目标对象的语义,从而提高模型的准确率。 增强模型的鲁棒性: 外部环境信息可以为模型提供更多的上下文信息,从而增强模型对噪声和干扰的鲁棒性。 扩展模型的应用范围: BINENHANCE 的核心思想可以应用于各种不同的领域,从而扩展模型的应用范围。 总而言之,BINENHANCE 的核心思想在自然语言处理和图像识别等领域具有广阔的应用前景,可以有效地提高模型的性能和应用范围。
0
star