terraform_sec
收藏Hugging Face2025-12-22 更新2025-12-23 收录
下载链接:
https://huggingface.co/datasets/galcan/terraform_sec
下载链接
链接失效反馈官方服务:
资源简介:
一个包含62,406个Terraform项目的全面安全漏洞分析数据集,使用tfsec进行安全分析。该数据集旨在训练大型语言模型(LLMs)以理解、识别和修复Terraform基础设施即代码中的安全问题。数据集包含44,030个安全项目(70.6%)和18,376个不安全项目(29.4%),格式为JSONL。数据集涵盖了多个云提供商(AWS、Azure、GCP、Kubernetes)和服务的安全漏洞,包括加密问题、访问控制、日志与监控、网络安全和最佳实践等常见漏洞。
创建时间:
2025-12-19
原始信息汇总
Terraform Security Dataset 数据集概述
数据集基本信息
- 数据集名称: Terraform Security Dataset
- 数据集地址: https://huggingface.co/datasets/galcan/terraform_sec
- 许可证: Apache 2.0
- 任务类别: 文本生成、文本分类
- 语言: 英语
- 标签: terraform, security, infrastructure-as-code, devsecops, tfsec, cloud-security, aws, azure, gcp, vulnerability-detection
- 规模类别: 10K<n<100K
- 数据格式: JSONL (JSON Lines)
数据规模与构成
- 总示例数: 62,406 个 Terraform 项目
- 安全项目数: 44,030 (70.6%)
- 不安全项目数: 18,376 (29.4%)
- 安全与不安全项目比例: 2.40:1
- 总 .tf 文件数: 约 250,000+
- 每个项目平均文件数: 4-5 个文件
- 未压缩大小: 约 1.2 GB
- 压缩后大小: 约 180 MB
数据集文件结构
data/ ├── terraform_security_dataset.jsonl # 完整数据集 (62,406 个示例) ├── secure_projects.jsonl # 仅安全项目 (44,030 个示例) └── insecure_projects.jsonl # 仅不安全项目 (18,376 个示例)
数据格式与字段
每个示例为一个包含以下字段的 JSON 对象: json { "project_id": "terraform_projects_100137176_100137176", "instruction": "You are a Terraform security expert. Analyze the following Terraform configuration for security vulnerabilities and misconfigurations. Identify any security issues, their severity, and provide remediation guidance.", "input": "### main.tf terraform resource "aws_s3_bucket" "example" { bucket = "my-bucket" acl = "private" } ", "output": "INSECURE - 3 security issue(s) found:
- Issue: Bucket does not have encryption enabled Severity: HIGH Rule: AVD-AWS-0088 Location: main.tf:2 Resolution: Configure bucket encryption", "metadata": { "files_count": 3, "issues_count": 8, "is_secure": false, "scan_error": null, "severities": ["HIGH", "MEDIUM", "LOW"] } }
主要字段描述
| 字段 | 类型 | 描述 |
|---|---|---|
project_id |
字符串 | Terraform 项目的唯一标识符 |
instruction |
字符串 | 给大语言模型的任务描述(所有示例中恒定) |
input |
字符串 | 包含所有 .tf 文件的完整 Terraform 配置 |
output |
字符串 | 安全分析结果(SECURE 或 INSECURE 及详细信息) |
metadata |
对象 | 项目的附加信息 |
元数据字段
| 字段 | 类型 | 描述 |
|---|---|---|
files_count |
整数 | 项目中的 .tf 文件数量 |
issues_count |
整数 | 发现的安全问题数量 |
is_secure |
布尔值 | 项目是否安全 (true) 或存在问题 (false) |
scan_error |
字符串/空值 | 扫描期间的任何错误(例如 "timeout") |
severities |
数组 | 问题严重级别列表(CRITICAL, HIGH, MEDIUM, LOW) |
安全问题覆盖范围
云服务提供商
- AWS: S3, EC2, IAM, VPC, Security Groups, RDS, Lambda, CloudWatch 等
- Azure: Storage, Virtual Machines, Networking, Key Vault 等
- GCP: Compute Engine, Storage, IAM, Networking 等
- Kubernetes: Pods, Services, RBAC, Network Policies 等
问题严重性分布
| 严重性 | 数量 | 百分比 |
|---|---|---|
| CRITICAL | 约 8,500 | 15% |
| HIGH | 约 25,000 | 45% |
| MEDIUM | 约 18,000 | 32% |
| LOW | 约 4,500 | 8% |
常见漏洞类型
- 加密问题
- 未加密存储 (S3, EBS, RDS)
- 缺少静态/传输中加密
- 无客户管理的密钥
- 访问控制
- 过于宽松的安全组 (0.0.0.0/0)
- 资源公开访问
- 缺少 IAM 策略
- 日志记录与监控
- 禁用日志记录
- 无 CloudWatch 监控
- 缺少审计跟踪
- 网络安全
- 向公共互联网开放端口
- 无 VPC 流日志
- 不安全的入口/出口规则
- 最佳实践
- 缺少版本控制
- 无备份配置
- 使用已弃用的资源
问题数量分布
- 包含 1-5 个问题的项目: 约 12,000 (65%)
- 包含 6-10 个问题的项目: 约 4,500 (24%)
- 包含 11-20 个问题的项目: 约 1,500 (8%)
- 包含 20+ 个问题的项目: 约 376 (3%)
数据收集与处理
- 原始数据来源: 来自 GitHub 的 62,406 个 Terraform 项目
- 安全扫描器: tfsec (Aqua Security 的 Terraform 静态分析安全扫描器)
- 收集时间: 2024 年
- 处理版本: tfsec v1.28+
- 扫描超时项目: 约 5,243 个项目(被视为安全)
数据处理流程
- 收集: 包含 Terraform 代码的 GitHub 仓库
- 扫描: 使用 tfsec 进行分析并输出 JSON
- 解析: 提取安全发现并映射到项目
- 格式化: 创建基于指令的示例
- 质量控制: 验证完整性和准确性
主要用途
- 大语言模型微调: 训练模型识别 Terraform 安全问题
- 安全分析: 自动化基础设施安全审计
- 代码审查: 学习安全的 Terraform 模式与反模式
- 教育: 教授开发者安全的基础设施即代码实践
- 研究: 研究基础设施即代码中的安全漏洞模式
版本信息
- 版本 1.0.0 (2024年12月): 初始发布,包含 62,406 个 Terraform 项目,基于 tfsec 安全分析,采用指令型格式
已知限制
- 扫描器限制: 基于 tfsec 规则(可能无法捕获所有问题)
- 静态分析: 无运行时分析或渗透测试
- 误报: 某些标记的问题可能是故意配置
- 覆盖范围: 专注于常见云提供商 (AWS, Azure, GCP)
- 超时: 约 5,243 个项目扫描超时(被视为安全)
搜集汇总
数据集介绍

构建方式
在基础设施即代码安全分析领域,Terraform安全数据集的构建体现了系统化的工程方法。该数据集源自对GitHub上62,406个Terraform项目的全面收集,并采用业界广泛认可的静态分析安全扫描器tfsec进行自动化安全漏洞检测。整个处理流程遵循严谨的自动化管道:首先从公开代码库中采集Terraform配置,随后利用tfsec进行深度安全扫描并生成结构化分析结果,最后将原始扫描输出解析并映射为统一的指令微调格式。为确保数据质量,构建过程实现了零失败处理,完整捕获了所有Terraform文件及其对应的安全检测结果,形成了包含约25万份配置文件的标准化数据集。
特点
该数据集在云安全与基础设施即代码交叉领域展现出鲜明的专业特征。其核心价值在于覆盖了AWS、Azure、GCP及Kubernetes等主流云平台的安全配置问题,囊括了加密缺失、访问控制过度宽松、日志监控禁用及网络配置不当等关键漏洞类型。数据呈现采用精细的结构化设计,每个样本均包含完整的Terraform配置输入、标准化的安全分析指令以及详细的安全评估输出,并辅以文件数量、问题严重性分布等元数据。特别值得注意的是,数据集保持了真实世界的安全状态分布,安全项目与不安全项目的比例约为2.4:1,且不安全样本中涵盖了从临界到低危的完整严重性谱系,为模型训练提供了丰富的安全模式与反模式范例。
使用方法
针对大语言模型在基础设施安全领域的微调与应用,该数据集提供了灵活多样的使用途径。研究人员可直接通过HuggingFace Datasets库或标准JSONL文件加载数据,利用其指令-输入-输出的结构化格式进行监督式微调。典型应用场景包括训练模型自动识别Terraform配置中的安全漏洞、生成修复建议或进行安全代码审查。为优化训练效果,建议根据具体任务需求对数据集进行划分,可采用80%-10%-10%的比例创建训练、验证与测试集;对于类别平衡敏感的任务,亦可对占多数的安全样本进行降采样处理。数据集兼容主流的深度学习框架,能够无缝集成到基于Transformers库的微调流程中,为构建专业的云安全分析模型奠定数据基础。
背景与挑战
背景概述
随着基础设施即代码(IaC)范式的广泛采纳,Terraform已成为多云环境下资源编排的核心工具,其安全性直接关系到云基础设施的稳固性。Terraform Security Dataset于2024年由研究团队基于GitHub上62,406个Terraform项目构建而成,并利用tfsec静态分析工具进行深度安全扫描。该数据集旨在为大语言模型提供高质量的训练语料,以自动化识别与修复Terraform配置中的安全漏洞,涵盖AWS、Azure、GCP及Kubernetes等主流云平台。其创建推动了DevSecOps领域的发展,为智能安全审计与代码审查提供了关键的数据基础,显著提升了基础设施代码安全研究的可及性与实证深度。
当前挑战
该数据集致力于解决基础设施即代码安全分析领域的核心挑战,即如何从海量、异构的Terraform配置中精准识别复杂的安全漏洞与错误配置。构建过程中面临多重挑战:首先,数据收集需处理大量GitHub项目的异构性与代码质量差异,确保样本的代表性与覆盖面;其次,依赖tfsec进行静态分析,其规则集可能无法覆盖所有潜在威胁,且存在误报或漏报的风险,例如约5,243个项目因扫描超时而被归类为安全项目,可能引入数据偏差。此外,数据标注完全基于自动化工具输出,缺乏人工验证,可能影响标签的绝对准确性;同时,数据集中安全与不安全项目的比例约为2.4:1,反映了现实分布,但也可能对模型训练的类别平衡性提出要求。
常用场景
经典使用场景
在基础设施即代码(IaC)安全领域,Terraform Security Dataset 的经典应用场景集中于训练大型语言模型进行自动化安全审计。该数据集通过整合超过六万个 Terraform 项目的安全分析结果,为模型提供了丰富的正负样本,使其能够学习识别云资源配置中的加密缺失、访问控制过宽、日志监控不足等常见漏洞模式。这种基于指令的格式设计,使得模型不仅能检测安全问题,还能生成具体的修复建议,从而在持续集成/持续部署(CI/CD)流程中实现实时代码安全扫描,提升开发运维一体化(DevSecOps)的自动化水平。
实际应用
在实际的云基础设施开发与运维中,该数据集可直接赋能于企业安全工具链的构建。例如,安全团队可基于此数据集微调专属模型,将其集成至代码仓库的拉取请求(PR)审查环节,自动标记存在安全隐患的Terraform代码片段。此外,它也能用于开发交互式安全培训平台,帮助工程师通过分析真实案例学习安全编码最佳实践。在云服务商侧,此类技术可辅助提供更智能的配置检查服务,帮助客户在资源部署前规避潜在风险,从而显著降低因配置错误导致的数据泄露或服务中断事故。
衍生相关工作
围绕该数据集,已衍生出一系列聚焦于IaC安全智能化的经典研究工作。例如,有研究探索了结合图神经网络对Terraform资源依赖关系进行建模,以提升跨文件漏洞的关联检测能力。另有工作致力于少样本或零样本学习场景,利用数据集中丰富的指令-输出对,训练模型泛化至未见过的云服务或安全规则。此外,在可解释性人工智能(XAI)方向,部分研究利用该数据集的详细输出,开发能够为安全决策提供透明推理路径的模型,增强了自动化安全工具在关键环境中的可信度。
以上内容由遇见数据集搜集并总结生成



