通过大语言模型(LLMs)检测软件仓库中的硬编码凭据

《Digital Threats: Research and Practice》:Detecting Hard-Coded Credentials in Software Repositories via LLMs

【字体: 时间:2025年11月07日 来源:Digital Threats: Research and Practice

编辑推荐:

  本文提出基于预训练大语言模型(LLMs)的检测方法,利用BERT和GPT-2生成硬编码凭据的上下文嵌入,结合MLP分类器实现高精度检测,在CredData数据集上F1分数提升13%,显著优于现有工具,且模型轻量化适合CI集成。

  在当今软件开发环境中,硬编码凭证(如密码、密钥、令牌等)已成为一个严重威胁软件安全的问题。这些凭证通常被意外地写入代码库、配置文件或文档中,一旦未被发现,就可能成为黑客攻击的突破口,导致数据泄露、未经授权访问,甚至对组织造成巨大的经济损失和声誉损害。因此,如何有效检测这些硬编码的凭证,成为软件安全领域的重要研究课题。本文提出了一种基于大型语言模型(LLMs)的检测方法,利用其强大的语义理解能力,结合深度学习分类器,以提升硬编码凭证检测的准确性和效率。

传统的检测方法主要分为两类:基于模式匹配的方法和基于机器学习的方法。基于模式匹配的方法依赖于已知的凭证格式,如密码的常见结构或密钥的特定标识符,通过匹配这些特征来识别潜在的凭证。然而,这种方法在面对格式略有变化或非标准的凭证时,往往无法有效识别,容易产生误报或漏报。相比之下,基于机器学习的方法则通过训练模型来识别凭证的特征,从而提升检测的灵活性和适应性。然而,早期的机器学习模型在处理具有上下文依赖的复杂凭证时,仍然存在一定的局限性。

近年来,随着自然语言处理技术的进步,特别是基于Transformer架构的大型语言模型(LLMs)如BERT和GPT-2的广泛应用,为硬编码凭证检测提供了新的思路。这些模型能够捕捉文本中的语义信息,并通过自注意力机制识别词语之间的上下文关系,从而更准确地表示各种类型的凭证。此外,LLMs还具有强大的泛化能力,能够在未见过的数据中识别出潜在的凭证,这种能力在面对不断变化的凭证格式时尤为重要。因此,本文探索了使用LLMs对硬编码凭证进行特征表示,并将其输入深度学习分类器以实现更精确的检测。

在本文中,我们选择BERT和GPT-2作为基础模型,原因在于它们在计算效率、模型规模和可解释性方面具有优势,能够更好地适应持续集成(CI)环境中的部署需求。此外,BERT和GPT-2在自然语言处理任务中表现出色,已被广泛应用于文本分类、情感分析等任务,这为它们在凭证检测中的应用提供了理论支持。我们通过对凭证进行分批处理,并使用模型内置的分词器进行文本切分,随后生成每个凭证的语义嵌入。为了进一步增强模型的表示能力,我们采用了一种平均池化策略,将所有分词的嵌入进行平均,生成一个固定长度的向量,作为最终的凭证表示。这一过程能够有效捕捉凭证的上下文信息,提高模型对不同类别凭证的识别能力。

在实验中,我们对多个凭证类别进行了检测,包括密码、通用密钥、私钥、预定义模式、种子、盐、一次性随机值、通用令牌、认证密钥和令牌,以及其他未明确分类的凭证。我们使用的数据集是CredData,这是目前公开的唯一一个用于硬编码凭证检测的基准数据集,涵盖了多种编程语言和文件类型,如文本、Go、YAML、JavaScript、Python、Markdown、JSON、Java、Ruby、TypeScript、PHP、AsciiDoc、XML、Shell、Haskell、reStructuredText、SQLPL、Objective-C、Scala和TOML。通过将凭证数据集划分为训练集、验证集和测试集,我们对BERT和GPT-2模型进行了训练和评估,并使用多层感知机(MLP)作为分类器,以进一步提升检测性能。

在性能评估方面,我们的模型在多个关键指标上表现出色。具体而言,BERT-MLP和GPT2-MLP在准确率、F1分数、精确度、召回率和马修斯相关系数(MCC)等指标上均优于其他检测工具。例如,在F1分数上,我们的模型比当前最先进的方法提升了13%。这一结果表明,基于LLMs的特征表示方法在硬编码凭证检测中具有显著优势。此外,我们还对模型的推理时间和资源消耗进行了分析,发现BERT在处理凭证时的效率远高于GPT2,尽管GPT2在特征表示的准确性方面表现更优。因此,在实际部署中,需要根据具体的资源限制和检测需求,选择合适的模型。

为了进一步验证模型的鲁棒性,我们进行了多次训练和评估实验,采用不同的数据分割方式,确保模型在不同数据集上的稳定性。结果表明,GPT2-MLP在多个指标上表现稳定,其F1分数的平均值为0.973,标准差仅为0.012,显示出较低的方差,意味着模型在不同数据集上的表现一致性较高。相比之下,BERT-MLP的F1分数平均值为0.764,标准差为0.011,表明其性能虽然稳定,但不如GPT2-MLP。此外,我们还对模型进行了可视化分析,使用t-SNE算法对高维嵌入进行降维,结果表明不同类别的凭证在特征空间中形成了明显的聚类,进一步支持了模型在分类任务中的有效性。

在与现有检测工具的对比中,我们的模型在多个方面表现突出。例如,与非机器学习工具如Detect Secrets、Git Leaks、Shhgit、Truffle Hog3和Gitrob相比,GPT2-MLP在F1分数上分别提升了130%、98%、154%、193%和129%。这表明,基于LLMs的检测方法在识别各种类型的凭证时具有更高的准确性和泛化能力。此外,与机器学习工具如Cred Sweeper和Cred Digger相比,我们的模型在F1分数上也取得了显著的提升,分别为13%和164%。这些结果表明,基于LLMs的检测方法在当前的硬编码凭证检测领域具有广泛的应用前景。

然而,尽管基于LLMs的方法在检测硬编码凭证方面表现出色,但仍存在一些局限性。首先,LLMs的性能依赖于其训练数据的多样性,如果数据集中缺乏某些类型的凭证,模型可能无法有效识别。其次,虽然LLMs能够捕捉复杂的语义信息,但在处理零日漏洞(即尚未被发现的漏洞)时仍存在挑战,因为这些漏洞通常涉及新的凭证格式或未被记录的代码模式。此外,当前使用的CredData数据集虽然涵盖了多种编程语言和文件类型,但其规模仍然有限,可能影响模型的泛化能力。因此,未来的研究方向应包括扩展数据集,提高模型的覆盖范围,并探索更高效的训练和推理策略,以适应实际开发环境中的资源限制。

总体而言,本文提出的基于LLMs的硬编码凭证检测方法,在准确性和效率方面均优于现有的检测工具。通过利用LLMs强大的语义表示能力,结合深度学习分类器,我们能够更有效地识别各种类型的凭证,从而降低数据泄露的风险。此外,该方法在计算资源和部署成本方面也具有一定的优势,使得其在实际应用中更加可行。未来,随着数据集的不断扩展和模型的持续优化,基于LLMs的检测方法有望成为软件安全领域的重要工具,为开发人员和安全团队提供更全面、高效的凭证检测解决方案。
相关新闻
生物通微信公众号
微信
新浪微博
  • 搜索
  • 国际
  • 国内
  • 人物
  • 产业
  • 热点
  • 科普
  • 急聘职位
  • 高薪职位

知名企业招聘

热点排行

    今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

    版权所有 生物通

    Copyright© eBiotrade.com, All Rights Reserved

    联系信箱:

    粤ICP备09063491号