遇见数据集

Python security corpus

收藏
github2026-06-29 更新2026-07-09 收录
官方服务:

资源简介:

PySecPatch发布了一个包含72,000条记录的Python安全语料库,用于漏洞修复和评估。该语料库分为两个训练阶段:阶段A包含12,000条记录,阶段B包含60,000条记录,总共训练使用了56,400条记录。语料库由生成的Python示例组成,遵循Apache-2.0许可证,旨在支持漏洞分类、CWE识别和修复生成。

PySecPatch has released a Python security corpus containing 72,000 records for vulnerability repair and evaluation. The corpus is divided into two training stages: Stage A contains 12,000 records, and Stage B contains 60,000 records, with a total of 56,400 records used for training. The corpus consists of generated Python examples, is licensed under Apache-2.0, and aims to support vulnerability classification, CWE identification, and repair generation.

创建时间:
2026-06-29
原始信息汇总

数据集概述:PySecPatch

PySecPatch 是一个开源的防御性 Python 安全模型与评估套件,旨在用于漏洞分类、CWE 分类、安全代码解释和候选修复生成。该发布整合了一个两阶段 QLoRA 适配器(基于 Qwen/Qwen2.5-Coder-7B-Instruct)、一个确定性的 72,000 条 Python 安全语料库,以及可复现的内部和外部评估。

核心特性

  • 领域:Python 代码安全防御(漏洞分类、CWE 识别、安全代码解释、候选修复生成)。
  • 模型:基于 Qwen/Qwen2.5-Coder-7B-Instruct 的两阶段 QLoRA 微调适配器。
  • 语料库(PySecPatch-72K)
    • 共 72,000 条记录,以 Apache-2.0 许可发布。
    • 分两阶段生成:阶段 A(12,000 条)和阶段 B(60,000 条)。
    • 阶段 A 中 8,400 条用于训练,阶段 B 中 48,000 条用于训练;总计 56,400 条训练数据。
    • 两阶段间精确标准化去重后重叠为零,但审计发现 702 个共享的抽象结构。
    • 可独立引用,DOI:10.5281/zenodo.21016753

主要评估结果

在 3,200 条家族不重叠的保留集上,使用相同提示、解码设置和随机种子进行评测:

指标 Qwen 基础模型 PySecPatch 提升幅度
分类准确率 4.81% 90.72% +85.91 pp
分类 F1 分数 9.18% 93.40% +84.22 pp
严格 JSON 输出 91.53% 99.44% +7.91 pp
干净负样本保留 0.00% 100.00% +100.00 pp
安全控制通过率 1.63% 88.08% +86.46 pp
归一化精确修复 0.17% 83.33% +83.17 pp
可解析修复代码 6.42% 99.21% +92.79 pp
  • PySecPatch 独有的正确预测数为 2,770 条,而基础模型仅 21 条。双向 McNemar 检验的 log10(p) = -787.25
  • 外部 SALLM 评估更具挑战性:对于包含测试夹具的 96 个提示,PySecPatch 的功能通过率为 26.77%,安全测试通过率为 31.88%,安全功能通过率为 9.58%。

局限性

  • 仓库级别的修复是主要限制。仓库格式保留集的补丁应用率仅为 38.00%,安全控制通过率为 34.38%。
  • 在冻结的 24 例 Stage 6 套件中,检测和干净样本保留表现完美,但 12 个提议的仓库补丁均未通过完整验收门。

使用方式

  • 安装python -m pip install -r requirements.txt
  • 运行
    • 本地仓库扫描:python agent.py --repo /path/to/repository
    • 生成并验证候选补丁:python agent.py --repo /path/to/repository --fix
    • 明确指定 GitHub 仓库:python agent.py --github https://github.com/OWNER/REPOSITORY
  • 复现评估python eval.py --self-testpython repo_eval.py self-testpython sallm_score.py self-test

设计用途

  • 对用户提供的 Python 代码进行防御性审查。
  • 可疑代码片段的分类和解释。
  • CWE 识别及候选安全代码生成。
  • 人工辅助修复。

不适合的用途

  • 自主部署未经审查的补丁。
  • 攻击性扫描或未经授权的仓库分析。
  • 漏洞利用生成、持久化、凭证窃取、钓鱼或规避。
  • 声称通过验证结果证明仓库是安全的。

许可与引用

  • 许可:代码、生成数据及适配器工件均采用 Apache License 2.0 发布。基础模型不包含在内。
  • 引用:当前版本 v0.1.1 的 DOI 为 10.5281/zenodo.21015885;所有版本 DOI 为 10.5281/zenodo.21015503。CITATION.cff 和 paper/references.bib 提供可复制的引用记录。
搜集汇总
数据集介绍
构建方式
Python Security Corpus是一个专为Python安全研究设计的大型语料库,其构建遵循两阶段递进式策略。第一阶段从12,000条记录起步,经分割后使用8,400条进行训练;第二阶段将规模扩展至60,000条,其中48,000条投入优化。两个阶段的数据均通过程序化生成,且彼此间不存在精确的标准化重复,仅共享702个抽象结构,确保了语料的多样性与覆盖度。整个语料库共包含72,000条记录,最终将56,400条用于模型适配器的训练,形成了一套系统化的安全数据体系。
特点
该数据集在安全防护领域展现出卓越的专项能力。基于该语料库训练的PySecPatch模型,在3,200条独立留出测试集上,分类准确率从基线的4.81%跃升至90.72%,F1分数达到93.40%,修复准确率高达83.33%。尤其在清理负样本保留率与安全控制通过率方面取得100%的完美表现,凸显了数据集在防止误报与增强安全逻辑方面的独特优势。此外,数据集严格遵循Apache-2.0开源协议发布,确保了研究的可复现性与广泛适用性。
使用方法
使用该数据集时,研究人员可通过Python环境快速部署。首先安装依赖项,随后利用agent.py脚本对本地或GitHub仓库执行安全扫描与补丁生成。数据集支持分类、解释与候选安全代码生成等防御性审查任务。评估环节可通过运行eval.py、repo_eval.py及sallm_score.py脚本复现论文中的核心指标。值得注意的是,数据集强调人工审核的辅助角色,不鼓励在未经审查的情况下进行自主化部署,尤其避免被用于非法扫描或漏洞利用生成等恶意场景。
背景与挑战
背景概述
PySecPatch是一个于2024年发布的开源Python安全防御模型与评估套件,由相关研究团队开发,旨在解决软件安全领域中漏洞分类、CWE识别、安全代码解释及候选修复生成等核心问题。该数据集包含72,000条精心构造的Python安全语料记录,通过两阶段QLoRA微调策略,显著提升了基础模型在分类准确率(从4.81%跃升至90.72%)与安全控制通过率等关键指标上的表现,为安全代码智能化分析提供了高质量的训练资源与评估基准,在安全代码大模型研究领域具有重要的示范效应与影响力。
当前挑战
该数据集面临的核心挑战在于两大层面:其一,在领域问题层面,现有大模型在安全漏洞检测与修复任务中普遍存在误报率高、泛化能力弱的问题,尤其是面对真实世界的多文件仓库级修复场景时,模型表现急剧下降(仅达38%的补丁应用率与34.38%的安全控制通过率),暴露出合成数据与真实环境之间的巨大鸿沟。其二,在构建过程中,数据集需确保72,000条记录之间无精确重复,同时需人工审计以消除伪差异,这对语料规模与数据质量控制提出了极高要求。此外,基础模型对安全知识的极度匮乏(初始分类准确率仅4.81%)也增加了微调难度,亟需构建贴近实战的评估体系以持续验证模型有效性。
常用场景
经典使用场景
在软件安全领域,Python安全语料库(PySecPatch-72K)的经典使用场景聚焦于构建面向漏洞分类与修复的防御性安全模型。研究者可借助该语料库中结构化的72,000条安全代码记录,训练或微调大语言模型,使其具备对Python代码中的安全隐患进行精准分类、CWE(通用弱点枚举)识别以及生成候选修复方案的能力。该语料库尤适用于需要高精度、可解释性安全评估的场景,例如在代码审查流程中作为辅助工具,对可疑代码片段进行自动化分析,并为安全工程师提供经过验证的修复建议,从而显著提升漏洞检测与修复的效能。
衍生相关工作
该数据集的发布催生了一系列围绕大语言模型安全专业化与泛化性的前沿研究工作。首先,基于两阶段QLoRA微调策略的适配器训练路线,为如何在保持基座模型通用能力的同时注入领域安全知识提供了方法论参考。其次,研究者利用该语料库对模型在合成留出集、外部SALLM基准以及仓库级修复任务上的性能差异进行了系统性剖析,揭示了当前模型在受控环境与真实场景之间的泛化鸿沟。此外,该成果推动了关于安全代码修复自动化的严格评估标准建立,尤其是针对仓库级补丁应用的局限性分析,为后续研究指明了需要突破的关键方向。
数据集最近研究
最新研究方向
在当前软件安全漏洞频发、针对Python生态系统的供应链攻击日益增多的背景下,PySecPatch安全语料库的发布标志着大语言模型在代码安全领域迈出了从通用代码生成向专业化安全防御转型的关键一步。该数据集包含72,000条结构化Python安全记录,结合两阶段QLoRA微调的Qwen2.5-Coder-7B-Instruct模型,在漏洞分类、CWE识别、安全代码解释与候选补丁生成等任务中展现出突破性性能——内部评测中分类准确率从基线的4.81%跃升至90.72%,安全控制通过率提升至88.08%,修复代码可解析率达99.21%。研究同时揭示了当前技术的核心瓶颈:尽管合成数据集上的表现优异,但在外部SALLM评测中安全功能通过率仅9.58%,仓库级补丁应用成功率仅38%,说明模型在真实、多文件场景下的安全泛化能力仍极为有限。PySecPatch因此并非宣称达到生产级自动驾驶修复水平,而是作为人类经验驱动的安全审查辅助工具,推动了代码安全领域关于合成数据与真实世界复杂漏洞修复之间鸿沟的深入讨论与后续攻关方向。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务