0
点赞
收藏
分享

微信扫一扫

AWS中国云配置强制MFA策略后导致AWS CLI和IDEA中无法使用问题

冶炼厂小练 2024-07-24 阅读 26

0. 概述

对 Awesome-Binary-Similarity 中列出的论文进行调研,重点总结这些论文的研究动机未来研究方向

1. 调研内容

论文名称发表时间发表期刊期刊等级研究单位
BinaryAI: Binary Software Composition Analysis via Intelligent Binary Source Code Matching2024年ICSECCF A南方科技大学

研究动机:Binary-to-Binary SCA 中第三方库(Third-Party Libraries,TPL)的可扩展性较差。特别是,由于自动编译相关的复杂性,只有包管理器维护的源包的有限子集可以编译为多个版本的二进制文件并合并到 SCA 数据库中。大量的开源 C/C++ 项目很难包含在 TPL 数据集中,这受到手动编译的大量开销的阻碍。综上所述,TPL 数据集的有限规模可能会显著已知 SCA 的实用性,因此可能无法识别所包含的 TPL 和相应的漏洞。为什么不使用 Binary-to-Binary SCA?

现有的 Binary-to-Source SCA 工具利用基于语法特征(例如字符串文字)来建立二进制代码和 TPL 源代码之间的对应关系,这可能无法很好地推广到所有场景。(1)这些基本特征在大规模 TPL 数据集中往往表现出很大程度地冗余。例如,字符串 "407 Proxy Authentication Need"(表示常见地 HTTP 错误)在数据集中地 50 多个 TPL 中重复。冗余语法特征的存在会降低其独特性和有效性,从而不可避免地产生误报,从而降低 SCA 的精度。(2)TPL 和目标二进制文件之间很少甚至不存在共同的语法特征,尤其是哪些被剥夺了字符串文字和导出函数名称的二进制文件。(3)从 C/C++ 源代码提取字符串的技术本质上并不稳健,例如,通过连接宏定义字符串和常量字符串引起字符串丢失,从而与从相应 TPL 中的二进制文件中提取的字符串文字不匹配,从而导致召回二进制到源 SCA 的功能也可能受到损害。Binary-to-Source SCA 存在哪些挑战?

因此,有必要在 Binary-to-Source SCA 中采用细粒度的特征(例如函数级特征),以便可以处理高级语义信息,以减轻基本特征的冗余和不可靠。考虑到编译引入的二进制函数和源函数之间的巨大差异,论文尝试通过采用基于 Transformer 模型来生成函数级嵌入并相应地进行二进制源代码匹配来增强 Binary-to-Source SCA。

未来展望:尽管 BinaryAI 在实验中取得了优异的结果,,但仍需要进一步扩大测试数据集的规模和覆盖范围,以验证其在更广泛场景下的有效性。目前 BinaryAI 主要针对 C/C++ 生态系统, 未来可以考虑将其扩展到其他编程语言的二进制分析。

未来可以进一步研究如何利用代码语义信息, 例如控制流图、调用图等, 来增强二进制源代码匹配的效果。探索如何将 BinaryAI 与其他二进制分析技术(如模糊测试、漏洞检测等)进行有效集成, 从而提升整体的安全分析能力。研究如何将 BinaryAI 应用于更广泛的场景, 如移动应用、固件等, 以推动二进制分析技术在软件供应链安全领域的应用。

论文名称发表时间发表期刊期刊等级研究单位
Code is not Natural Language: Unlock the Power of Semantics-Oriented Graph Representation for Binary Code Similarity Detection2024年USENIX顶会上海交通大学

研究动机:二进制代码相似性检测(BCSD)是一项关键的基础任务,在多个重要应用中发挥重要作用,如漏洞搜索、软件抄袭检测等。现有的BCSD方法主要基于指令流或控制流图(CFG),但存在一些局限性。指令流方法将二进制代码当作自然语言处理,忽视了代码的语义结构;CFG方法仅利用控制流结构,忽略了其他重要的语义。论文指出,与自然语言不同,二进制代码具有明确定义的语义结构,包括指令内部结构、指令间关系(如def-use、分支)以及隐式约定(如调用约定)。

未来展望:对于一些由编译器引入的"脏"语义(如栈帧的使用),还需要进一步清洗和优化,以得到更加纯净的语义表示。目前仅考虑了内存效果模型,I/O效果模型也可能对某些任务有帮助,值得进一步探索。对于无法完全恢复的间接跳转控制流,如何为神经网络提供必要信息以推断缺失的控制流仍是一个挑战。

将SOG应用于其他二进制代码相关任务,如漏洞搜索、库函数恢复、软件抄袭检测等,进一步验证其适用性。研究如何整合更多的语义信息,如字符串、整数、外部函数引用等,进一步丰富SOG的表达能力。探索如何克服间接跳转控制流恢复失败的问题,为神经网络提供更完整的代码语义信息。

论文名称发表时间发表期刊期刊等级研究单位
CLAP: Learning Transferable Binary Code Representations with Natural Language Supervision2024年ISSTACCF A 清华大学

研究动机:二进制代码表示学习在二进制分析任务中显示出了重要的性能,但现有方法往往缺乏良好的可迁移性,特别是在少样本和零样本场景中,即当训练样本很少或完全没有时。 现有的二进制代码编码方法常常会丢失关键信息,如调用指令的参数、字符串和变量名称等。这是因为大多数方法会将这些信息归一化为特殊的词汇标记,从而无意中遗漏了重要的细节。为了解决这些问题,论文提出使用自然语言监督来学习更好的二进制代码表示,从而提高可迁移性。

未来展望:目前的方法没有充分利用源代码中丰富的信息,未来研究可以进一步探索将源代码语义和结构与自然语言信息深度融合的方法。数据集生成过程中可能存在一定的偏差,未来研究可以更多地多样化数据源,包括不同的编译环境或平台,以及不同的语言模型生成自然语言解释。目前研究的语义分析任务范围相对有限,未来可以探索更广泛的应用场景,如基于自然语言的二进制代码搜索等。

论文名称发表时间发表期刊期刊等级研究单位
CEBin: A Cost-Effective Framework for Large-Scale Binary Code Similarity Detection    2024年ISSTACCF A 清华大学
举报

相关推荐

0 条评论