oktenmuhammet/PCI-DSS-LAB
GitHub: oktenmuhammet/PCI-DSS-LAB
基于 PCI DSS v4.0.1 标准的企业级支付安全实验室,通过模拟完整的持卡人数据基础设施来实践合规控制、安全监控与防御验证。
Stars: 1 | Forks: 0
# PCI DSS v4.0.1 安全实验室
一个模拟企业级支付卡基础设施的真实 PCI DSS v4.0.1 实验室环境。
本项目构建于我的网络安全实习期间,旨在获得 PCI DSS 控制措施、网络分段、安全支付处理、集中化监控、特权访问管理、漏洞验证以及证据收集的实操经验。
目标不仅是部署安全技术,还要通过监控、检测、攻击模拟和面向合规的证据收集来验证安全控制,从而同时具备攻击者和 SOC 分析师的思维。
# 架构概述

该环境被划分为多个安全区域,并受中央 pfSense 防火墙保护。
### 安全区域
| 区域 | 网络 |
| --------------------------------- | ---------------- |
| 内部区域 (Internal Zone) | 192.168.40.0/24 |
| DMZ 区域 | 192.168.50.0/24 |
| 攻击区域 (Attack Zone) | 192.168.60.0/24 |
| 持卡人数据环境 (CDE) | 192.168.70.0/24 |
| 备份区域 (Backup Zone) | 192.168.100.0/24 |
### 关键安全控制
* pfSense 防火墙
* 网络分段
* 默认拒绝安全模型
* Suricata IDS/IPS
* OpenVPN 远程访问
* 多因素认证 (MFA)
* Wazuh SIEM
* HashiCorp Vault
* ModSecurity WAF
# 持卡人数据流

支付工作流展示了持卡人数据如何被安全地处理、加密、存储和监控。
### 交易流程
客户
↓
Web 服务器 (DMZ)
↓
应用服务器 (CDE)
↓
HashiCorp Vault
↓
加密数据库存储
↓
备份服务器
### 安全控制
* 绝不存储 CVV。
* PAN 值以截断格式显示。
* 持卡人数据在存储前已加密。
* 加密密钥通过 HashiCorp Vault 管理。
* 应用程序使用 AppRole 向 Vault 进行身份验证。
* 数据库存储受磁盘加密保护。
* 管理访问需要 MFA。
# 实验室环境
## 内部区域 (Internal Zone)
### 系统
* Active Directory 域控制器
* Windows Server 2016
* Windows 10 客户端
### 实施的控制
* 组策略
* 密码策略
* 账户锁定策略
* 会话超时控制
* 集中化身份验证
## DMZ 区域
### 系统
* Wazuh SIEM
* HashiCorp Vault
* OpenLDAP
* Jump Server
* Web 服务器
* Linux 服务器
* 管理工作站
### 实施的控制
* 反向代理
* ModSecurity WAF
* 集中化监控
* 安全管理访问
## 持卡人数据环境 (CDE)
### 系统
* 应用服务器
* 数据库服务器
### 实施的控制
* 网络隔离
* 受 MFA 保护的管理
* Jump Server 访问
* 磁盘加密
* 集中化监控
* 加密数据存储
## 攻击区域 (Attack Zone)
### 系统
* Kali Linux
* Metasploitable 2
### 活动
* 漏洞验证
* 检测测试
* 攻击模拟
* 安全控制验证
## 备份区域 (Backup Zone)
### 系统
* 备份服务器
### 实施的控制
* 隔离的备份存储
* 自动化数据库备份
* 恢复验证
* 受限访问
# 支付安全架构
该支付应用程序旨在模拟符合 PCI DSS 标准的支付工作流。
### 安全特性
* Flask 应用架构
* 专用 Python 虚拟环境
* AppRole 身份验证
* HashiCorp Vault 集成
* 存储前加密
* 加密数据库记录
* 磁盘级加密
### 敏感数据处理
| 数据类型 | 存储方式 |
| -------------- | ------------------ |
| CVV | 不存储 |
| PAN | 截断显示 |
| 卡数据 | 加密 |
| 加密密钥 | HashiCorp Vault |
# 监控与检测
所有系统均与 Wazuh SIEM 集成以进行集中化监控。
### 监控的安全事件
* 身份验证失败
* LDAP 更改
* Root 活动
* 权限提升
* 管理操作
* 恶意软件事件
* WAF 事件
* Vault 访问尝试
* 文件完整性监控 (FIM)
# 检测用例
## 文件完整性监控
检测对操作系统关键文件的未经授权的修改。
示例:
* /etc/passwd
* /etc/shadow
* 系统配置文件

## LDAP 监控
检测:
* 用户创建
* 用户删除
* 组修改
* 权限更改

## HashiCorp Vault 监控
检测:
* 未经授权的访问尝试
* 身份验证失败事件
* 密钥访问活动
* 策略违规

## 特权会话监控
通过 Jump Server 监控管理活动。
检测示例:
* 管理员登录
* 文件传输
* 会话活动
* 特权命令

# 端点保护
### Linux 系统
* ClamAV
* 定时恶意软件扫描
### Windows 系统
* Microsoft Defender
### 监控
安全事件被转发至 Wazuh 以实现集中化可见性。
# 漏洞验证
Nessus Professional 部署在攻击区内。
### 活动
* 带凭证的漏洞评估
* 基础设施验证
* 安全控制验证
* 补救验证
### 评估目标
* 内部区域
* DMZ 系统
* CDE 系统
* 基础设施组件
# PCI DSS 要求覆盖范围
| 要求 | 状态 |
| -------------- | -------------------- |
| 要求 1 | 已实施 |
| 要求 2 | 已实施 |
| 要求 3 | 已实施 |
| 要求 4 | 已实施 |
| 要求 5 | 已实施 |
| 要求 6 | 已实施 |
| 要求 7 | 已实施 |
| 要求 8 | 已实施 |
| 要求 9 | 超出范围 |
| 要求 10 | 已实施 |
| 要求 11 | 已实施 |
| 要求 12 | 部分实施 |
详细的控制映射可在此处查看:
```
pci_dss_mapping/pci_controls.md
```
# 项目结构
```
PCI-DSS-LAB
│
├── README.md
│
├── architecture
│ ├── lab_topology.png
│ └── data_flow_diagram.png
│
├── screenshots
│ ├── wazuh
│ ├── vault
│ ├── ldap
│ ├── jumpserver
│ └── payment_app
│
├── docs
│ ├── network_segmentation.md
│ ├── payment_workflow.md
│ └── monitoring_detection.md
│
└── pci_dss_mapping
└── pci_controls.md
```
# 文档
额外的技术文档:
* 网络分段
* 支付工作流
* 监控与检测
* PCI DSS 控制映射
# 使用的技术
### 安全
* pfSense
* Suricata
* Wazuh
* OpenSearch
* HashiCorp Vault
* ModSecurity
* OpenVPN
### 身份与访问管理
* Active Directory
* OpenLDAP
* JumpServer
* MFA (OTP)
### 基础设施
* Ubuntu Server
* Windows Server 2016
* Windows 10
* Kali Linux
* Metasploitable 2
### 应用程序栈
* Flask
* Nginx
* Python
* MySQL
### 端点保护
* ClamAV
* Microsoft Defender
### 漏洞管理
* Nessus Professional
# 免责声明
本项目出于教育、研究和防御性安全目的而开发,旨在受控的实验室环境中演示实用的 PCI DSS 安全概念和实施技术。
标签:Metaprompt, PCI DSS, StruQ, Terraform 安全, 安全合规, 安全实验室, 网络代理, 网络架构, 逆向工具, 防御绕过, 防火墙