Python security corpus
收藏资源简介:
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.
数据集概述: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-test、python repo_eval.py self-test、python 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 提供可复制的引用记录。



