SecretBench
收藏arXiv2023-03-13 更新2024-06-21 收录
下载链接:
https://doi.org/10.5281/zenodo.7555981
下载链接
链接失效反馈官方服务:
资源简介:
SecretBench是由北卡罗来纳州立大学创建的一个包含97,479条软件秘密的数据集,其中15,084条为真实秘密。该数据集从818个公共GitHub仓库中系统收集,涵盖49种编程语言和311种文件类型。创建过程中,研究团队使用了两种秘密检测工具,并手动检查和标记了每条秘密。SecretBench旨在帮助研究人员和工具开发者评估和改进秘密检测工具,以防止版本控制系统中的秘密泄露。
SecretBench is a dataset consisting of 97,479 software secrets, of which 15,084 are genuine secrets. It was systematically collected from 818 public GitHub repositories, covering 49 programming languages and 311 file types. During its development, the research team utilized two secret detection tools, and manually inspected and labeled each secret. SecretBench aims to assist researchers and tool developers in evaluating and enhancing secret detection tools, thereby preventing secret leakage in version control systems.
提供机构:
北卡罗来纳州立大学
创建时间:
2023-03-13
搜集汇总
数据集介绍

构建方式
SecretBench 数据集的构建过程始于在 GitHub 平台上选择包含秘密的候选开源软件仓库。研究者使用 761 个正则表达式模式,这些模式是从流行的秘密扫描工具 TruffleHog 和其他研究者的工作中提取的,以识别这些候选仓库。接着,研究者利用 Google BigQuery 公共数据集进行 SQL 查询,以搜索包含秘密的源代码文件。为了确保数据集的质量,研究者应用了严格的筛选标准,包括排除非活跃、新手和演示项目。随后,研究者使用多集-多覆盖算法从候选仓库中选择包含多种秘密类型的最小数量的仓库。最后,研究者使用 TruffleHog 和 Gitleaks 两种秘密检测工具从选定的仓库中识别候选秘密,并通过手动检查和标记这些秘密的真伪来创建标记数据集。
特点
SecretBench 数据集具有多个显著特点。首先,它包含 97,479 个秘密,其中 15,084 个是真实秘密,覆盖了 49 种编程语言和 311 种文件类型,这使其成为一个多样性和全面性都非常高的数据集。其次,该数据集提供了关于每个秘密的丰富元数据,包括文件类型、是否为模板、是否在 URL 中、熵值、字符集和是否包含常见英语单词等特征。此外,数据集还包括开发者调查的结果,以评估开发者对秘密标记的认同程度。最后,SecretBench 数据集存储在 Google BigQuery 和 Cloud Storage 中,方便研究人员和工具开发者访问和扩展。
使用方法
SecretBench 数据集的使用方法相对简单。首先,研究人员和工具开发者需要联系数据集的创建者,以获得访问权限。一旦获得访问权限,他们可以使用 Google BigQuery 进行 SQL 查询,以检索和探索数据集中的秘密。此外,他们还可以从 Google Cloud Storage 中下载包含秘密的源代码文件,以进行更深入的分析。为了帮助研究人员和工具开发者更好地使用数据集,数据集的创建者还提供了在线文档和示例代码。
背景与挑战
背景概述
在软件开发过程中,安全密钥、API密钥和其他凭据的泄露是一个日益严重的问题。据GitGuardian的监测,2021年GitHub公共代码库中暴露的秘密数量比2020年翻了一番,总数超过六百万个。这些秘密的泄露可能导致严重的安全风险,如数据泄露和未经授权的访问。为了帮助研究人员和工具开发人员评估和改进秘密检测工具,Setu Kumar Basak、Lorenzo Neil、Bradley Reaves和Laurie Williams等研究人员创建了一个名为SecretBench的基准数据集。该数据集包含了从818个公开的GitHub代码库中提取的97,479个秘密,涵盖了49种编程语言和311种文件类型。SecretBench数据集旨在为研究人员和工具开发人员提供一个评估和改进秘密检测工具的平台,并促进相关领域的研究。
当前挑战
SecretBench数据集面临着一些挑战。首先,秘密检测工具通常会产生大量的误报,这给研究人员和工具开发人员带来了困难。其次,构建SecretBench数据集的过程中,研究人员需要手动检查每个秘密并进行标记,这是一个耗时且容易出错的过程。此外,SecretBench数据集只涵盖了GitHub代码库,未来可以扩展到其他版本控制系统,如GitLab和Bitbucket。最后,由于数据集中包含敏感信息,如真实的秘密和提交者的电子邮件地址,研究人员和工具开发人员需要签订数据保护协议,以确保数据的安全性和隐私性。
常用场景
经典使用场景
SecretBench数据集最经典的使用场景在于评估和改进秘密检测工具。该数据集包含从开源代码库中提取的97,479个标记秘密,其中15,084个是真实秘密,涵盖了49种编程语言和311种文件类型。这使得SecretBench成为评估秘密检测工具性能的理想基准,帮助研究人员和工具开发人员识别和减少误报,提高秘密检测的准确性。
实际应用
SecretBench数据集的实际应用场景包括软件开发、安全审计和秘密管理。软件开发人员可以使用SecretBench数据集来测试和改进他们的秘密检测工具,以确保代码库的安全。安全审计人员可以使用SecretBench数据集来评估代码库中秘密的存在和安全性,并发现潜在的安全漏洞。秘密管理人员可以使用SecretBench数据集来制定秘密管理策略,并培训开发人员如何安全地处理秘密。
衍生相关工作
SecretBench数据集衍生了许多相关工作,包括基于机器学习的秘密检测工具、秘密检测规则和秘密管理策略。研究人员利用SecretBench数据集开发了许多新的秘密检测工具,例如DeepSecret、SecDetect等,这些工具能够更准确地识别和检测秘密。此外,研究人员还基于SecretBench数据集提出了许多新的秘密检测规则和秘密管理策略,例如基于上下文的秘密检测规则、基于熵的秘密检测规则等,这些规则和策略能够帮助开发者更好地管理秘密,并提高代码库的安全性。
以上内容由遇见数据集搜集并总结生成



