benjaminrhodes/pci-dss-iac-linter
GitHub: benjaminrhodes/pci-dss-iac-linter
一个将 Terraform AWS 资源映射到 PCI DSS 控制措施并标记常见合规缺失的 IaC 合规检查工具。
Stars: 0 | Forks: 0
# PCI DSS IaC Linter
将 Terraform AWS 资源映射到 PCI DSS 控制措施,并标记常见的合规性缺失。
本项目演示了具备合规感知的云安全自动化:解析基础设施即代码,识别影响持卡人数据环境的资源,将其映射到 PCI DSS 控制领域,并突出显示高风险的配置模式。
## 为什么这很重要
上市公司和受监管环境需要证据表明,在基础设施进入生产环境之前,安全控制措施已经过设计、实施和审查。IaC 审查是将合规性和云安全检查左移的一个实用切入点。
## 安全信号
- **领域:** 云安全、合规自动化、安全 SDLC
- **风险:** 未加密存储、薄弱的访问边界、审计能力不足、暴露的管理端口
- **框架映射:** PCI DSS 控制 3.x、7.x、8.x 和 10.x;NIST CSF 识别/保护/检测
- **作品集信号:** 我能够将云配置发现结果与面向业务的合规要求联系起来
## 功能
- 解析 Terraform `.tf` 文件和目录。
- 将 AWS 资源映射到 PCI DSS 控制 ID。
- 标记选定的合规缺失,包括:
- 没有服务器端加密的 S3 存储桶
- 没有版本控制的 S3 存储桶
- 没有存储加密的 RDS 实例
- RDS 备份保留期少于 7 天
- 向 `0.0.0.0/0` 暴露 SSH 或 RDP 的安全组
- 不要求使用 IMDSv2 的 EC2 实例
- 提供适合在 CI 或本地开发中审查的 CLI 输出。
- 包含用于解析、映射、合规性检查和 CLI 行为的单元测试。
## 快速开始
```
git clone https://github.com/benjaminrhodes/pci-dss-iac-linter.git
cd pci-dss-iac-linter
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
```
## 用法
扫描 Terraform 文件或目录:
```
python -m src.cli path/to/main.tf --show-controls
python -m src.cli path/to/terraform-directory
```
故意包含风险的 Terraform 示例:
```
resource "aws_security_group" "admin" {
ingress {
from_port = 22
to_port = 22
cidr_blocks = ["0.0.0.0/0"]
}
}
resource "aws_db_instance" "cardholder_db" {
storage_encrypted = false
backup_retention_period = 1
}
```
示例输出:
```
Found 2 resource(s)
============================================================
COMPLIANCE GAPS FOUND: 3
============================================================
[CRITICAL] aws_security_group.admin
Control: 8.3
Issue: Security group has SSH (port 22) open to 0.0.0.0/0
[HIGH] aws_db_instance.cardholder_db
Control: 3.4
Issue: RDS instance must have storage encryption enabled
```
## 用例与说明
- [示例用例](docs/use-cases.md):部署前云审查、合规证据,以及安全 SDLC 培训。
- [60秒说明脚本](docs/explainer-script.md):随时可用的录制脚本、分镜头列表和 LinkedIn 配文。
## 测试
```
pytest tests/ -v
ruff check .
```
## 合规声明
此工具是一个作品集级别的控制映射演示,不是正式的 PCI DSS 评估。PCI DSS 合规需要经过验证的范围、补偿控制审查、证据收集、策略、程序和合格评估员的判断。此工具适用于早期风险发现和开发者反馈。
## 局限性
- Terraform 解析特意保持轻量化,不评估完整的 HCL 表达式、模块、变量或 provider state。
- 规则集涵盖了精选的高信号示例,而不是完整的 PCI DSS 标准。
- 在做出业务决策之前,发现结果应由合格的安全/合规专业人员进行审查。
## 路线图
- 添加用于 CI 注释的结构化 JSON/SARIF 输出。
- 添加感知模块的 Terraform 解析。
- 扩展 PCI DSS v4.0.1 映射和控制元数据。
- 为每个发现结果添加修复指导。
## 安全
请参阅 [SECURITY.md](SECURITY.md)。仅使用合成的 Terraform 示例。
## 许可证
MIT
标签:AWS, DPI, ECS, Terraform, 安全规则引擎, 漏洞利用检测, 逆向工具, 静态应用安全测试