llm-sast-v1
收藏Hugging Face2026-05-09 更新2026-05-10 收录
下载链接:
https://huggingface.co/datasets/aioutfitters/llm-sast-v1
下载链接
链接失效反馈官方服务:
资源简介:
LLM-SAST v1 是一个高质量的开源数据集,专为微调中小型语言模型执行静态应用程序安全测试(SAST)而设计,适用于基础设施即代码(IaC)和应用代码的安全分析。数据集包含15,822个样本,覆盖16种文件类型(包括Terraform、Kubernetes、Dockerfile等)和81种安全漏洞类别。每个样本采用三回合对话格式(系统提示+用户代码输入+AI助手的安全分析输出),包含结构化JSON格式的安全发现(行号、类别、严重性、推理和修复建议)。数据集通过多阶段质量验证流程生成,包括教师模型采样、多数投票聚合和人工审核,严格精度达93.3%。特别设计30%的干净文件比例以保持训练信号。下游验证显示,基于该数据集微调的模型在测试集上F1分数达到63.5%(较基线提升58.5个百分点)。数据集按代码仓库严格划分训练/验证/测试集,确保无数据泄漏,并提供完整的元数据记录和系统提示标准化。
LLM-SAST v1 is a high-quality open-source dataset specifically designed for fine-tuning small to medium-sized language models to perform Static Application Security Testing (SAST), suitable for security analysis of Infrastructure as Code (IaC) and application code. The dataset contains 15,822 samples, covering 16 file types (including Terraform, Kubernetes, Dockerfile, etc.) and 81 security vulnerability categories. Each sample adopts a three-round dialogue format (system prompt + user code input + AI assistants security analysis output) and includes structured JSON-formatted security findings (line number, category, severity, reasoning, and repair suggestions). The dataset is generated through a multi-stage quality verification process, including teacher model sampling, majority voting aggregation, and manual review, with a strict accuracy rate of 93.3%. It specially designs a 30% proportion of clean files to maintain training signals. Downstream validation shows that models fine-tuned based on this dataset achieve an F1 score of 63.5% on the test set (a 58.5 percentage point improvement over the baseline). The dataset strictly divides training/validation/test sets by code repository to ensure no data leakage and provides complete metadata records and system prompt standardization.
创建时间:
2026-05-08
原始信息汇总
LLM-SAST v1 数据集详情
基本信息
- 数据集名称: LLM-SAST v1
- 发布版本: v2.0(2026-05-09)
- 许可证: Apache-2.0
- 语言: 英语、代码
- 任务类型: 文本生成
- 数据规模: 10K < n < 100K(总计 15,822 个样本)
- 标签: security, sast, vulnerability-detection, code-analysis, infrastructure-as-code, iac, terraform, kubernetes, docker, cloudformation, code-review, chain-of-thought, reasoning, sharegpt
数据集分布
数据划分
| 划分 | 样本数 | 仓库数 |
|---|---|---|
| 训练集 (train) | 12,657 | 1,303 |
| 验证集 (validation) | 1,582 | 876 |
| 测试集 (test) | 1,583 | 876 |
- 总计样本:15,822 个
- 来源仓库:3,055 个(不同划分间仓库无重叠)
- 文件语言:16 种
- 总发现数:18,320 个(分布于 11,076 个非空文件中)
- 空文件占比:30.0%
文件类型分布(Top 16,总和 100%)
| 文件分类 | 数量 | 占比 |
|---|---|---|
| github_actions | 2,652 | 16.8% |
| kubernetes | 2,348 | 14.8% |
| dockerfile | 1,892 | 12.0% |
| terraform | 1,870 | 11.8% |
| cloudformation | 1,462 | 9.2% |
| helm | 1,363 | 8.6% |
| docker_compose | 1,127 | 7.1% |
| python | 1,063 | 6.7% |
| typescript | 648 | 4.1% |
| javascript | 480 | 3.0% |
| java | 351 | 2.2% |
| arm_template | 282 | 1.8% |
| go | 137 | 0.9% |
| gitlab_ci | 74 | 0.5% |
| jenkinsfile | 66 | 0.4% |
| rust | 7 | 0.0% |
严重程度分布(18,320 个发现)
| 严重程度 | 数量 | 占比 |
|---|---|---|
| MEDIUM | 7,736 | 42.2% |
| HIGH | 6,203 | 33.9% |
| LOW | 2,292 | 12.5% |
| CRITICAL | 2,089 | 11.4% |
主要发现类别(Top 10)
| 类别 | 数量 | 占发现总数比 |
|---|---|---|
| mutable_image_tag | 2,858 | 15.6% |
| unpinned_action_version | 1,788 | 9.8% |
| missing_security_context | 1,764 | 9.6% |
| missing_resource_limits | 1,363 | 7.4% |
| container_running_as_root | 1,330 | 7.3% |
| hardcoded_credential | 945 | 5.2% |
| deprecated_resource_feature | 932 | 5.1% |
| overly_permissive_ingress | 619 | 3.4% |
| missing_encryption_in_transit | 541 | 3.0% |
| sensitive_data_exposure | 441 | 2.4% |
每文件发现数分布
| 发现数 | 文件数 | 占比 |
|---|---|---|
| 0(空文件) | 4,746 | 30.0% |
| 1 | 6,466 | 40.9% |
| 2 | 2,927 | 18.5% |
| 3 | 1,093 | 6.9% |
| 4 | 393 | 2.5% |
| 5 | 125 | 0.8% |
| 6 | 43 | 0.3% |
| 7+ | 29 | 0.2% |
任务定义
每个样本为三轮对话格式(ShareGPT):
- 系统消息:固定提示词(定义了任务、分类法、输出模式、严重性评分标准、分析规则)
- 用户消息:文件路径 + 带行号的源代码
- 助手消息:包含
<think>推理块(逐步安全分析)和 JSON 格式的安全发现列表(行号、类别、严重程度、推理、修复建议)
若文件为安全文件,助手输出空数组 []。
数据来源
基础设施即代码语料库(6,323 个仓库,242,063 个文件)
- 第一层(故意存在漏洞):cloudgoat, terragoat, TerraformGoat, kubernetes-goat
- 第二层(生产环境):1,896 个广泛使用的 IaC 仓库(AWS 示例、Azure quickstarts、terraform-aws-modules 等)
- 第三层(社区):4,091 个按主题和星标数采样的公共仓库
- 文件类型:Terraform、Kubernetes 清单、CloudFormation、Dockerfile、Docker Compose、Helm 图表、GitHub Actions 工作流、GitLab CI、Jenkinsfile、ARM 模板
应用代码语料库(200 个仓库,23,592 个文件)
- 第一层(故意存在漏洞):juice-shop, NodeGoat, WebGoat, dvpwa, govwa, nodejs-goof, DSVW
- 第二层(生产环境):192 个广泛使用的应用代码仓库
- 文件类型:Python、JavaScript、TypeScript、Java、Go、Rust
生成方法
使用教师模型 Qwen/Qwen3.6-27B-FP8 生成标签,经过以下流水线:
- 最佳N采样:N=5,温度范围 [0.0, 0.3, 0.5, 0.7, 1.0]
- 发现聚合:±2行去重,多数投票
- 审核通过:使用 Qwen3.6-27B-FP8 逐发现确认/拒绝/不确定
- 类别修正:封闭分类法强制
- 推理合成:根据发现和文件生成推理块
- 分布控制:每类 ≤30%,每个类别 ≤25%,空文件 ≤55%
- 最终审计:200 样本人工审查
质量审计
自动门控(全数据集)
| 门控项 | 结果 |
|---|---|
| 有效 JSON 解析 | 100.0% |
| 推理块存在 | 100.0% |
| 封闭分类法合规 | 100.0% |
下游验证
4-bit QLoRA 微调 Qwen/Qwen3.6-35B-A3B 在测试集上的表现:
| 指标 | 值 |
|---|---|
| F1 | 63.5% |
| 召回率 | 63.3% |
| 精确率 | 63.8% |
| 有效 JSON | 93.3% |
| 最佳分类 F1(Kubernetes) | 75.4% |
| 最差分类 F1(CloudFormation) | 47.4% |
未微调的基线模型 F1 = 5.0%,本数据集提升 +58.5 个百分点。
数据模式
每条记录包含以下字段:
| 字段 | 类型 | 描述 |
|---|---|---|
messages |
list[{role, content}] |
三轮 ShareGPT 对话 |
findings |
list[{lines, category, severity, reasoning, fix}] |
结构化的安全发现列表 |
n_findings |
int |
发现数量 |
categories |
list[str] |
唯一的类别列表 |
max_severity |
string |
最高严重程度 |
file_id |
string |
文件哈希 |
source_repo |
string |
来源仓库 owner/repo |
file_path |
string |
仓库中的相对路径 |
classification |
string |
16 种文件类型之一 |
corpus_tier |
string |
语料库层级(tier1_vulnerable / tier2_production / tier3_community) |
labeling_version |
string |
标签版本(v7) |
teacher_model |
string |
教师模型(qwen3.6-27b-fp8) |
system_prompt_sha |
string |
系统提示词哈希(7de4fe802a11) |
每个发现对象包含:
| 字段 | 类型 | 描述 |
|---|---|---|
lines |
list[int] |
1-indexed 行号 |
category |
string |
81 种封闭分类法类别之一 |
severity |
enum |
CRITICAL / HIGH / MEDIUM / LOW |
reasoning |
string |
1-2 句针对具体代码的推理 |
fix |
string |
1-2 句具体修复建议 |
局限性与偏见
- 仅限单文件:不支持多文件上下文或项目级推理
- 英文推理:所有推理和 JSON 值均为英文
- 空文件比例控制:30% 空文件(真实场景中 SAST 工具约 80-95% 为空文件)
- 教师模型循环:标签由 Qwen3.6 类模型生成和审核,93.3% 精确率为审计结果而非绝对真实
- 仅公共代码:来自公共 GitHub 仓库,未必适用于企业代码库
- 无 CVE 关联:不查询 CVE 数据库或检查依赖的版本特定漏洞
- 严重程度为估计值:未经可利用性验证
- 无 CWE 字段:当前版本不包含 CWE 映射
版本历史
v2.0(当前版本)
- 数据扩展至 15,822 个样本
- 发现数增至 18,320 个(81 个类别,16 种文件分类)
- 新增救援流程、v9b 审核器、v8 语料库扫描
- 下游 F1 达到 63.5%
v1.0
- 初始发布:8,204 个样本,6,076 个发现,74 个类别
- 下游 F1 达到 57.4%
搜集汇总
数据集介绍

构建方式
LLM-SAST v1 数据集专为微调中小型语言模型以执行静态应用安全测试(SAST)而构建,旨在替代基于规则的扫描器。该数据集通过两条管道生成:基础设施即代码(IaC)语料库涵盖 Terraform、Kubernetes 等 11 种文件类型,应用代码语料库则包含 Python、JavaScript 等 5 种语言。标签生成采用 27B 参数教师模型进行五次最佳采样,经聚合、法官验证、闭集分类法强制对齐及推理合成等阶段精炼而成。最终数据集包含 15,822 个样本,来自 3,055 个独立仓库,确保训练、验证与测试集无仓库重叠。
特点
该数据集具有显著特点:涵盖 81 种封闭式漏洞类别与 16 种文件类型,所有样本均包含结构化 JSON 输出与 <think> 推理链,100% 符合闭集分类法并具备有效 JSON 格式。每个样本包含三回合对话,直接输出漏洞行号、类别、严重性、推理与修复建议,无需依赖任何 SAST 工具。此外,30% 为干净文件以保持模型对空文件报告的准确性感知,且经下游验证,4-bit QLoRA 微调后的 Qwen3.6-35B-A3B 模型在测试集上达到 63.5% 的 F1 分数,显著优于未微调基线的 5.0%。
使用方法
数据集可通过 Hugging Face Datasets 库加载,每个样本包含 messages 列表(用于模型训练)与 findings 结构化字段(用于直接查询分析)。训练时需将 messages 通过分词器的聊天模板转换为文本,并掩码用户与系统令牌的损失函数。推理时需使用固定系统提示词,输入格式为 FILE: 相对路径与行号标注的源代码,模型输出包含 <think> 推理与 JSON 结构的安全发现。该数据集支持与 Qwen、Llama 等主流聊天模型兼容,并提供了便捷过滤方法,如按严重性或文件类型筛选样本。
背景与挑战
背景概述
LLM-SAST v1数据集由AI Outfitters团队于2026年发布,旨在解决基础设施即代码与应用程序代码中的静态应用安全测试问题。传统SAST依赖规则引擎进行模式匹配,存在误报率高、维护成本大等局限。该数据集通过微调中小型语言模型,使其能够直接基于原始源代码生成结构化的安全发现,包括行号、类别、严重等级、推理过程及修复建议。数据集包含15,822个样本,覆盖16种文件类型与81种安全类别,其下游微调模型在测试集上达到63.5%的F1分数,较基线提升58.5个百分点,为代码安全分析领域提供了高质量的训练基准。
当前挑战
该数据集面临的核心挑战在于如何实现精准的静态安全分析。领域层面,传统规则式SAST工具对未知漏洞的检测能力有限,而基于学习的方法需要克服模型对代码语义的深层理解难题,包括跨文件数据流漏洞的检测盲区。构建过程中,数据集的挑战体现在标签质量保障上:采用27B参数教师模型通过最佳-of-N采样与多阶段判题生成标签,但仍需手动审计确保93.3%的精确率;同时需控制空文件比例(30%)以防止模型产生漏报偏向,并确保100%符合闭集分类体系与JSON格式规范,避免SAST工具名称泄露污染推理过程。
常用场景
经典使用场景
在软件供应链安全与云原生安全日益受到重视的背景下,LLM-SAST v1数据集被广泛用于微调中小规模语言模型,使其具备直接对基础设施即代码(如Terraform、Kubernetes清单、Dockerfile)和应用程序代码进行静态应用安全测试的能力。该数据集的使用方式为:模型接收单一源码文件,并以结构化JSON格式输出安全发现,涵盖行号范围、漏洞类别、严重等级、推理过程与修复建议,从而替代传统基于规则扫描工具的检测范式。
实际应用
在实际工程应用中,基于LLM-SAST v1微调的安全检测模型可直接集成至CI/CD管线的代码审查环节,为DevOps团队提供自动化、低延迟的漏洞检测与修复建议。该数据集覆盖16种文件类型与55%以上含代码缺陷的样本比例,使模型能够在真实生产环境中高效识别可变镜像标签、硬编码凭证、缺失安全上下文等高危配置错误,显著减少人工审计成本并缩短安全反馈周期。
衍生相关工作
基于LLM-SAST v1数据集,学术界与工业界已产出多项具有影响力的衍生工作。典型代表包括为提升检测精度而设计的基于闭环分类修正与多轮投票裁决的标签生成流水线,以及针对低资源语言模型设计的4位QLoRA微调框架。此外,该数据集还催生了专注于跨文件数据流分析的多文件上下文扩展工作,以及将链式推理机制融入安全漏洞根因定位的新型代码审计方法体系。
以上内容由遇见数据集搜集并总结生成



