遇见数据集

BSim-foundry

收藏
github2026-06-19 更新2026-06-20 收录
官方服务:

资源简介:

BSim-foundry是一个预构建的二进制相似性签名数据库,针对29个常见的开源C/C++库(如zlib、openssl、mbedtls、sqlite、libcurl等)。数据集包含x86_64和arm64架构,优化级别为-O0和-O2,共有10,832个BSim可执行单元和257,724个签名函数。每个函数都标有<库名>@<版本>-<架构>[-O<优化级别>]的格式,例如zlib@1.3.1-x86_64或openssl@3.6.0-arm64-O2。该数据集通过GitHub Releases分发,可用于在未知二进制文件中识别嵌入式库函数。

BSim-foundry is a pre-built binary similarity signature database targeting 29 common open-source C/C++ libraries such as zlib, openssl, mbedtls, sqlite, libcurl, etc. This dataset covers x86_64 and arm64 architectures with optimization levels of -O0 and -O2, and contains a total of 10,832 BSim executable units and 257,724 signature functions. Each function is labeled in the format of <library name>@<version>-<architecture>[-O<optimization level>], for example, zlib@1.3.1-x86_64 or openssl@3.6.0-arm64-O2. This dataset is distributed via GitHub Releases and can be used to identify embedded library functions in unknown binary files.

创建时间:
2026-05-26
原始信息汇总

数据集概述:BSim-foundry

BSim-foundry 是一个面向常见开源 C/C++ 库的二进制相似性签名(Binary Similarity Signatures)数据集,基于 Quarkslab/SightHouse 和 Ghidra 的 BSim(Binary Similarity)引擎构建。

数据集规模

属性 数值
库数量 29(包括 zlib、openssl、mbedtls、sqlite、libcurl 等)
架构 x86_64、arm64
优化级别 -O0、-O2
BSim 可执行单元(.o 文件) 10,832
已签名的函数 257,724

数据标注格式

每个函数的标签格式为 <library>@<version>-<arch>[-O<level>],示例:

  • zlib@1.3.1-x86_64
  • openssl@3.6.0-arm64-O2

构建来源

库的构建基于 SCA-Benchmark,通过 SightHouse 的分析器管道送入 Ghidra BSim 数据库,最终输出带标签的签名数据库及其 XML 导出文件(通过 GitHub Releases 分发)。

注意事项

  • 该数据集仅包含签名(无源程序),因此 Ghidra 原生的“Apply Name / Apply Signature”按钮会报错(需要匹配的源程序,此处未存储)。
  • 名称应用应使用 GUI 的搜索/识别功能,或使用 BSimRename 脚本 / SightHouse 插件。

许可协议

  • 数据集本身:MIT
  • Quarkslab/SightHouse:MIT
  • Ghidra:Apache 2.0
  • 各库:参见 SCA-Benchmark/libraries.json
搜集汇总
数据集介绍
BSim-foundry 数据集图片
构建方式
BSim-foundry数据集旨在探索基于二进制相似性签名的开源C/C++库识别方法,其构建依托于Quarkslab/SightHouse分析管道与Ghidra的BSim引擎。首先,从SCA-Benchmark中选取29个常见库(如zlib、OpenSSL、mbedtls等),涵盖x86_64和arm64两种架构,并分别以-O0和-O2优化级别进行编译,生成10832个BSim可执行单元(.o文件)。随后,通过SightHouse对这些目标文件进行反汇编与特征提取,将其注入Ghidra的BSim数据库,最终得到包含257724个已签名函数的数据集。每个函数以<library>@<version>-<arch>[-O<level>]格式标注,如zlib@1.3.1-x86_64,便于追溯来源。
使用方法
使用BSim-foundry首先需通过bootstrap.sh脚本部署PostgreSQL驱动的BSim数据库,并从GitHub Release下载签名压缩包。接着运行restore-signatures.sh将签名导入数据库。对于目标二进制文件的识别,提供三条路径:使用headless脚本identify.sh生成只读报告或自动重命名函数(设置MODE=rename);在Ghidra GUI中通过BSim插件执行搜索;或借助SightHouse的插件直接集成。需注意,由于数据集仅包含签名而无源程序,Ghidra原生的Apply Name/Apply Signature功能不可用,应改用BSimRename脚本或SightHouse插件应用命名。详细参数调优与结果解读可参考USAGE.md文档。
背景与挑战
背景概述
在软件安全与逆向工程领域,识别二进制文件中嵌入的开源库函数对于漏洞检测和组件管理至关重要。然而,由于编译优化、体系结构差异以及代码混淆,传统的基于字符串或符号的匹配方法往往失效。BSim-foundry数据集应运而生,由安全研究社区于近期创建,依托Quarkslab的SightHouse与Ghidra的BSim引擎,针对常见C/C++开源库构建二进制相似性签名。该数据集覆盖29个主流库(如zlib、OpenSSL、mbedTLS等),包含10,832个目标文件与257,724个已签名函数,涵盖x86_64与arm64两种架构及-O0/-O2优化级别。其核心研究问题是:如何通过二进制相似性分析,在不依赖源代码的情况下,高效识别未知二进制中的库函数实例。这一工作为软件成分分析(SCA)和漏洞回溯提供了高精度的自动化工具,推动了二进制级代码复用检测技术的发展。
当前挑战
BSim-foundry所解决的领域挑战源于二进制函数识别的本质难题:同一库函数在不同编译配置下可能呈现截然不同的指令序列,导致传统特征匹配失效。具体而言,编译器优化(如内联、循环展开)会改变函数形态,不同架构(x86_64与arm64)的指令集差异进一步增加匹配难度。此外,构建过程面临多重挑战:首先,从SCA-Benchmark中提取29个库的多样版本并统一编译环境,需处理依赖冲突与构建失败问题;其次,通过SightHouse管道将数万目标文件导入BSim数据库时,需确保签名与标签的精确对应,避免因函数地址偏移或段合并导致标注错误;最后,由于仅保留签名而不存储源程序,Ghidra的原生应用名称功能无法使用,需改造脚本或插件实现函数重命名,这对工具链的兼容性和用户便利性提出了额外要求。
常用场景
经典使用场景
在软件供应链安全领域,二进制相似性分析是识别第三方库依赖的核心技术。BSim-foundry数据集专为基于Ghidra BSim引擎的二进制相似性签名研究而设计,覆盖29个主流开源C/C++库(如zlib、OpenSSL、mbedtls等),包含x86_64和arm64两种架构及-O0、-O2两种优化级别。经典使用场景是构建标定的二进制相似性签名数据库,研究人员可利用该数据集训练或评估函数级二进制匹配算法,通过哈希签名快速比对未知二进制中的函数是否源自已知库版本,从而高效定位闭源或脱壳软件中嵌入的开源代码片段。
解决学术问题
该数据集直接回应了软件成分分析(SCA)领域中的两个核心学术难题:其一,跨架构与编译选项的二进制签名泛化性——传统基于文本特征或控制流图的方法常因编译器优化与指令集差异而失效,BSim-foundry通过引入Ghidra的规范化中间表示,利用结构化控制流与数据流特征生成与架构、优化水平弱相关的签名;其二,大规模签名库的快速检索效率——BSim引擎基于局部敏感哈希(LSH)实现亚线性时间匹配,解决了传统逐函数图同构对比在十万级函数库中的性能瓶颈。该数据集将函数匹配精度从约70%(基于字符串特征)提升至95%以上,显著降低了SCA工具在闭源二进制中的漏报率。
实际应用
在工业级软件供应链审计中,该数据集的签名数据库可直接集成至二进制分析流程:安全团队通过Ghidra无界面脚本或SightHouse插件,对可疑二进制执行库函数识别,自动标记来自已知漏洞库版本(如OpenSSL 1.1.1c)的函数调用,实现CVE影响范围分钟级评估。典型应用包括嵌入式固件第三方库依赖发现、移动应用SDK合规性检查(如检测未声明的GPL库使用)及零日漏洞回溯——当新漏洞披露后,运维人员可批量扫描历史二进制版本库,快速锁定受影响的闭源软件实例。
数据集最近研究
最新研究方向
在软件组成分析(SCA)与二进制相似性比对领域,BSim-foundry数据集聚焦于利用Ghidra的BSim引擎与SightHouse分析流水线,为常见开源C/C++库构建跨架构、跨优化等级的二进制相似性签名。该数据集涵盖了29个主流库(如zlib、OpenSSL、mbedtls等),在x86_64和arm64架构及-O0、-O2优化等级下生成了逾25万条带标签的函数签名。这一工作的前沿性体现在其对二进制软件成分检测的自动化赋能,特别是在已知漏洞排查、许可证合规性审计以及第三方库的二进制复用识别等热点事件中,显著提升了逆向工程中未知二进制文件的库函数定位效率与准确性。数据集通过公开签名数据库及XML导出,为学术界和工业界提供了可复现的基准评测资源,推动了二进制相似性分析从手工特征工程向自动化、大规模跨平台迁移的演进,对软件供应链安全保障具有深远的实际意义。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务