ravisinghrajput95/AI-Powered-DevSecOps-CI-CD-Pipeline
GitHub: ravisinghrajput95/AI-Powered-DevSecOps-CI-CD-Pipeline
整合多维度安全扫描工具输出,借助 AI 生成带证据引用的云原生应用发布就绪报告的 DevSecOps 平台。
Stars: 0 | Forks: 0
# AI 驱动的 DevSecOps CI/CD Pipeline
[](https://github.com/ravisinghrajput95/AI-Powered-DevSecOps-CI-CD-Pipeline/actions/workflows/tests.yaml)
[](https://github.com/ravisinghrajput95/AI-Powered-DevSecOps-CI-CD-Pipeline/actions/workflows/codeql.yaml)
[](tests/)
[](LICENSE)
九个安全扫描器生成了九份互不兼容的报告,没人能告诉你这次发布是否安全。本 Pipeline 将它们整合为**一份带有证据引用的发布建议** —— 每一个结论都通过 ID 追溯到真实的发现,每一个缺失的信号都会被明确声明,而不是被显示为无异常。
[](reports/sample/release_report.md)
*这是一份来自该 Pipeline 的真实报告 —— 包含 240 个发现、4 个领域、9 个工具,全部 19 个扫描器均报告 `SUCCESS`,使用 `claude-sonnet-4-6`。[查看完整版本](reports/sample/release_report.md) ([带样式的 HTML](reports/sample/release_report.html))。每个关联下方的标签是 `finding_id` 引用,指向 `final_release_context.json` 中实际的扫描器发现。格式错误的 ID 会通不过 schema 验证,渲染器将拒绝写入报告;格式正确但找不到匹配发现的 ID 可以渲染,但会在分析和渲染步骤中引发警告。请注意关联本身:将 Checkov 的静态 Terraform 发现与 Kyverno 的实时准入结果结合起来,跨越了应用程序、基础设施和运行时领域,带有九处引用,最终得出容器逃逸将导致整个 GCP 项目被完全攻破的结论。一个静态工具,一个运行时工具,一句话得出了它们单独无法产生的结论。*
**三个特性使其超越了普通的仪表盘:**
- **跨领域关联。** 将静态 Terraform 分析与实时集群准入结果结合,将应用程序代码与容器 CVE 结合 —— 这些是任何单一扫描器都无法得出的声明,也是本项目存在的理由。
- **基于引用的证据。** AI 从不重述发现,只进行引用。格式错误的 `finding_id` 会通不过 schema 验证,渲染器将拒绝写入文件。
- **缺失信号会被明确声明。** `NO_SIGNAL` 区分了“工具运行了但未发现任何东西”和“根本没有东西可发现”,因此未测量的领域绝不会被视为无异常。
| | |
|---|---|
| **查看输出** | [`reports/sample/release_report.md`](reports/sample/release_report.md) — 一份包含 240 个发现的真实报告 |
| **离线运行** | `python3 scripts/demo_report.py` — 无需集群、无需 API 密钥、无需网络 |
| **工作原理** | [ARCHITECTURE.md](ARCHITECTURE.md) — 设计、schema、领域模型 |
| **报告 Bug** | [SECURITY.md](SECURITY.md) — 请先阅读;此处的多数漏洞都是故意的 |
## 目标应用程序 — CloudCart
CloudCart 是一个功能齐全的云原生电子商务应用程序,包含真实的漏洞和配置错误,旨在跨 DevSecOps 工具链生成丰富的发现。它是该 Pipeline 的测试夹具:上面报告中的发现都是真实的,并且都是故意植入在此处的。
## 架构
```
+-------------+ +-------------+ +--------------+
| React | --> | Flask API | --> | PostgreSQL |
| Vite SPA | | SQLAlchemy | | Database |
+-------------+ +------+------+ +--------------+
|
+------v-------+
| Prometheus |
| Grafana |
+--------------+
```
## 技术栈
| 层级 | 技术 |
|-------|------------|
| Frontend | React 18, Vite, Axios |
| Backend | Flask, SQLAlchemy, Gunicorn |
| Database | PostgreSQL 13 |
| Containers | Docker, Docker Compose |
| Orchestration | Kubernetes, Helm |
| Infrastructure | Terraform (GKE) |
| Observability | Prometheus, Grafana |
| CI/CD | GitHub Actions |
| Security | Kyverno, KubeArmor, Cosign, Checkov, Snyk, GitGuardian, Kubelinter, Kubeconform, Syft, SonarCloud, CodeQL, Dependabot, GHAS, SBOM, ZAP |
| **AI 发布智能** | **Claude (强制使用工具) — 请参阅下方的 [AI 发布智能平台](#ai-release-intelligence-platform)** |
## 业务功能
- 用户注册和登录
- 带搜索功能的产品目录
- 购物车和结账
- 产品评论
- 订单管理
- 用户个人资料和文件上传
- 管理后台
## 故意设置的漏洞
### 应用层 (OWASP Top 10)
| 漏洞 | 位置 |
|---------------|----------|
| SQL 注入 | `backend/routes/products.py` - `/api/products/search` |
| 存储型 XSS | `frontend/src/components/ReviewList.jsx` - `dangerouslySetInnerHTML` |
| SSRF | `backend/routes/vulnerable.py` - `/api/vuln/fetch`, `/api/vuln/proxy` |
| 命令注入 | `backend/routes/admin.py` - `/api/admin/exec` |
| 路径遍历 | `backend/routes/vulnerable.py` - `/api/vuln/file` |
| 不安全的文件上传 | `backend/routes/vulnerable.py` - `/api/vuln/upload` |
| 硬编码密钥 | `backend/config.py`, `secrets/credentials.json` |
| 敏感信息暴露 | `/api/config`, `/api/admin/env`, `/api/vuln/debug` |
| 访问控制失效 | 管理员路由、个人资料更新、购物车/订单 IDOR |
| 缺失授权 | 创建产品、更新订单状态、删除评论 |
| 启用调试模式 | 全程 `FLASK_DEBUG=true` |
| 薄弱的会话管理 | 不安全的 Cookie、长期有效的 JWT、localStorage 令牌 |
### 依赖项漏洞
- **Python (Docker / Snyk):** 见 `backend/requirements-vulnerable.txt` - Flask 2.0.1, Pillow 8.3.2, PyJWT 1.7.1 等。
- **Python (本地开发):** `backend/requirements.txt` - 支持 Python 3.11 至 3.13 安装。
- **npm:** axios 0.21.1, lodash 4.17.15, moment 2.29.1 (`frontend/package.json`)。
### 容器安全
- Root 容器(没有 `USER` 指令)
- 缺失 `HEALTHCHECK`
- 存放在 `ENV` 变量中的密钥
- 过期的基础镜像 (`python:3.7-slim`, `node:14-alpine`, `nginx:latest`)
- 可变的 `:latest` 镜像标签
### Kubernetes 配置错误
- 特权容器,`hostNetwork: true`
- `hostPath` 挂载,包括 `/var/run/docker.sock`
- `cluster-admin` RBAC 绑定
- 具有过度权限的默认服务账户
- 缺失资源限制
- 公开的 `LoadBalancer` 服务
- 无 NetworkPolicies
- 明文清单中的密钥
### Terraform 配置错误
- 防火墙规则对 `0.0.0.0/0` 开放
- 过于宽松的 IAM (`roles/owner`, `roles/storage.admin`)
- 公开的 GCS 存储桶
- 禁用了日志记录/监控
- 启用了旧版 ABAC
- 禁用了私有集群
## 工具覆盖矩阵
| 工具 | 发现内容 |
|------|---------------|
| GitHub Advanced Security (CodeQL) | SQLi、命令注入、SSRF 模式 |
| GitGuardian | 代码、配置、工作流中的硬编码密钥 |
| SonarCloud | 代码异味、安全热点、重复代码 |
| Snyk Open Source | 存在漏洞的 Python/npm 依赖项 |
| Snyk Container | Docker 基础镜像中的 CVE |
| Syft / CycloneDX | SBOM 生成 |
| Checkov | Terraform、Kubernetes、Helm 配置错误 |
| Kyverno | 特权 Pod、缺失限制、hostPath |
| KubeArmor | 运行时进程/文件违规 |
| Cosign | 镜像签名和验证 |
| ZAP | DAST |
| Prometheus / Grafana | 应用程序指标仪表盘 |
| **AI 发布智能 Agent** | **跨领域关联、优先级风险推理、发布就绪建议 — 见下文** |
## 项目结构
```
Cloudcart/
|-- frontend/ # React + Vite SPA
| |-- public/images/ # SVG and product catalog image assets
| `-- src/
|-- backend/ # Flask REST API
|-- database/ # PostgreSQL init SQL
|-- helm/
| |-- cloudcart/ # Application Helm chart
| |-- postgresql/ # Database Helm chart
| `-- monitoring/ # Prometheus/Grafana Helm chart
|-- terraform/ # GKE infrastructure
|-- monitoring/ # Prometheus and Grafana configs
|-- policies/
| |-- kyverno/ # 19 Kyverno ClusterPolicies (pod-security, supply-chain)
| `-- kubearmor/ # 8 KubeArmor runtime policies
|-- .github/workflows/ # 14 CI/CD + security workflows
|-- scripts/ # Normalizers, ReleaseContext builders, AI agent, renderers
|-- tests/ # 559 automated tests + golden regression dataset
|-- docker-compose.yml
|-- README.md
```
## 快速开始 (Docker Compose)
### 前置条件
- Python 3.11+(支持 3.13)
- Node.js 18+
- Docker(推荐用于 PostgreSQL)
### 0. 仓库设置(一次性)
在执行以下步骤之前,从仓库根目录运行:
```
# 安装 husky git hooks、lint-staged 和 eslint。
# 没有它,.husky/ 中的 pre-commit hooks 永远不会激活。
npm install
# pre-commit hook 对暂存的 Python 文件运行的 formatters/linters。
pip install -r backend/requirements-dev.txt
```
确认 Git 钩子已配置好 —— 这应该输出 `.husky/_`:
```
git config core.hooksPath
```
可选安装 [ggshield](https://docs.gitguardian.com/ggshield-docs/getting-started)
用于 pre-commit 密钥扫描。如果不存在,它会被跳过并发出警告,但
绝不会阻止提交。
### 1. 启动 PostgreSQL
```
docker compose up -d postgres
```
### 2. 后端 (终端 1)
**Windows (PowerShell):**
```
cd backend
.\run-backend.ps1
```
**macOS / Linux:**
```
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export DATABASE_URL=postgresql://cloudcart:CloudCartDB_Pass123!@localhost:5432/cloudcart
python app.py
```
API 健康检查: http://localhost:5000/health
### 3. 前端 (终端 2)
```
cd frontend
npm install
npm run dev
```
App: http://localhost:3000
### 演示登录
- **admin** / **admin123**
- 或在 http://localhost:3000/register 注册
## 产品图片
产品目录图片的访问路径为:
```
frontend/public/images/products/
```
种子数据和产品 API 返回类似 `/images/products/headphones.jpg` 的图片路径。如果在开发中目录图片看起来有缓存滞后,请重启前端服务器或强制刷新浏览器缓存。
## Kubernetes 部署
### 前置条件
- 已配置 `kubectl`
- 已构建容器镜像并可供目标集群使用
### 构建镜像
```
docker build -t cloudcart-backend:latest ./backend
docker build -t cloudcart-frontend:latest ./frontend
```
### 加载到本地 kind/minikube
kind load docker-image cloudcart-backend:latest
kind load docker-image cloudcart-frontend:latest
### 使用 Helm 部署
```
helm upgrade --install cloudcart ./helm/cloudcart \
--namespace cloudcart \
--create-namespace \
--wait
```
### 应用安全策略
```
# Kyverno policies(audit 模式)
kubectl apply -f policies/kyverno/
# KubeArmor policies
kubectl apply -f policies/kubearmor/
```
## GKE 部署
### 前置条件
- Google Cloud SDK (`gcloud`)
- Terraform >= 1.0
- 启用了结算功能的 GCP 项目
### 步骤
```
# 认证
gcloud auth login
gcloud config set project YOUR_PROJECT_ID
# 配置 Terraform
cd terraform
cp terraform.tfvars.example terraform.tfvars
# 使用你的 project_id 编辑 terraform.tfvars
terraform init
terraform plan
terraform apply
# 获取集群凭据
gcloud container clusters get-credentials cloudcart-gke \
--zone us-central1-a --project YOUR_PROJECT_ID
# 构建并推送镜像到 GCR/Artifact Registry
docker tag cloudcart-backend:latest gcr.io/YOUR_PROJECT_ID/cloudcart-backend:latest
docker push gcr.io/YOUR_PROJECT_ID/cloudcart-backend:latest
# 部署
helm upgrade --install cloudcart ../helm/cloudcart \
--namespace cloudcart \
--create-namespace \
--set image.backend.repository=gcr.io/YOUR_PROJECT_ID/cloudcart-backend \
--set image.frontend.repository=gcr.io/YOUR_PROJECT_ID/cloudcart-frontend
```
## CI/CD Pipeline
该 Pipeline 被拆分为几个专注的工作流,而不是一个单一的庞大文件 —— 每个扫描器的工作流都会记录自己真实的成功/失败状态,AI 发布智能 Pipeline(见下文)会直接读取这些状态,而不是进行假设。
| 工作流 | 触发条件 | 产出 |
|---|---|---|
| `backend-ci.yaml` / `frontend-ci.yaml` | `backend/**` / `frontend/**`,以及 Helm chart 变更 | 构建、单元测试 |
| `app-security-scan-backend.yaml` / `-frontend.yaml` | `backend/**` / `frontend/**` | CodeQL, SonarCloud, GitGuardian, Snyk SCA 发现 + `scan_status_*.json` |
| `infra-security-scan.yaml` | `helm/**`, `terraform/**` | Checkov, kube-linter, kubeconform 发现 |
| `infra-readiness.yml` | 手动 / 定时 | 将基础设施发现合并到 `infra_context.json`,如果不存在精确匹配的提交,则回退到最近一次成功的运行 |
| `runtime-security-scan.yaml` | 部署 / 手动 | 针对实时集群的 Kyverno, KubeArmor, ZAP 发现 |
| `release-readiness.yaml` | 手动 / 发布 | 将上述内容拉取合并到 `final_release_context.json`,运行 AI 发布智能 Agent,渲染报告 |
### 必需的 Secrets
| Secret | 用途 |
|--------|---------|
| `SNYK_TOKEN` | Snyk 漏洞扫描 |
| `SONAR_TOKEN` | SonarCloud 分析 |
| `GITGUARDIAN_API_KEY` | GitGuardian 密钥扫描 |
| `ANTHROPIC_API_KEY` | AI 发布智能 Agent |
扫描被设计为即使未设置密钥也会产生发现;部分工作流步骤在合适的地方使用了 `continue-on-error`。
## AI 发布智能平台
上面的每个扫描器都会产生其原始的、特定于工具的输出。该平台将其转化为一个结构化的、基于证据的发布决策 —— 这不是汇总数字的仪表盘,而是一个实际带有引用的推理建议,可追溯到真实的发现。
### 具象化的基于引用的证据
决定性的限制是 AI 从不重述发现 —— 它只引用发现。在渲染的报告中,每个引用都是一个原生的 `
` 折叠元素,它将一个裸露的 `finding_id` 展开为它所解析到的发现:严重程度、组件、类别和扫描器自己的信息。无需 JavaScript,默认支持访问。

*与上面相同的卡片,展开了四个引用,另外五个仍然折叠。请注意混合的内容:`f1f751c2ee51` 和 `54c214b711d1` 是针对 Terraform 的 Checkov 发现,`f913039e3a2a` 是实时集群上的 Kyverno 准入失败。一个关联,两个工具,静态和运行时证据并排呈现 —— 并且上面正文中的每一个声明都可以追溯到具体的发现,而不是被改写的。*
在本地从提交的测试夹具重现渲染和引用解析过程 —— 无需集群、无需 API 密钥、无需网络:
```
python3 scripts/demo_report.py --list # 9 scenarios, verdicts from APPROVE to DO_NOT_APPROVE
python3 scripts/demo_report.py # renders the real captured run
```
**完整的设计、schema 参考、领域模型和工作流编排图:[ARCHITECTURE.md](ARCHITECTURE.md)**
三层严格分离 —— 安全工具拥有事实,Python 拥有确定性计算,AI 仅拥有推理,人类拥有实际的部署决策:
```
flowchart TD
subgraph Tools["Raw security tool output"]
T1[Checkov]
T2["kube-linter / kubeconform"]
T3[CodeQL]
T4[SonarCloud]
T5[GitGuardian]
T6[Snyk SCA]
T7[Kyverno]
T8[KubeArmor]
T9[ZAP]
end
subgraph Normalize["scripts/normalize_*.py"]
N["One canonical Finding shape
(severity, category, type, confidence, finding_id)"] end T1 --> N T2 --> N T3 --> N T4 --> N T5 --> N T6 --> N T7 --> N T8 --> N T9 --> N N --> B1["build_release_context.py
app + runtime findings"] N --> B2["build_infra_context.py
infra + terraform findings"] B1 --> C["compose_release_context.py
merge · assign_domain · compute statistics"] B2 --> C C --> RC[("final_release_context.json
ReleaseContext v1.0 — frozen")] RC --> AI["AI Release Intelligence Agent
run_security_analysis.py
Claude, forced tool-use, schema-validated"] AI --> ER[("executive_report.json
ExecutiveReport v1.0 — frozen")] ER --> R1["render_report.py → Markdown"] ER --> R2["render_html_report.py → HTML"] RC -. resolves finding_id citations .-> R1 RC -. resolves finding_id citations .-> R2 ``` ### 实际验证的内容,基于真实数据 — 而非假设 | 领域 | 状态 | |---|---| | `infrastructure_security` | 在多次真实的 CI 运行中验证 | | `runtime_security` | 在多次真实的 CI 运行中验证 | | `application_security` | **已使用真实数据验证** — 在一次真实运行中包含来自 CodeQL/SonarCloud/GitGuardian/Snyk SCA 的 119 个真实发现,零无效引用,正确的跨领域关联完整性 | | `container_security` | **确认真实发现已成功流转**(在一次真实运行中包含 8 个真实的 CVE)— 验证范围比 `application_security` 窄:确认了数据路径,但尚未专门针对该领域验证 AI 推理/引用的正确性 | ### 测试套件 559 个自动化测试 (`tests/`) — schema 验证、证据引用完整性、跨领域关联完整性、渲染器正确性,以及涵盖 8 个代表性场景的黄金回归数据集。详见 [ARCHITECTURE.md](ARCHITECTURE.md#test-suite)。 ``` pip install -r tests/requirements.txt python3 -m pytest ``` 已知缺陷和完整的领域分配/schema 参考:请参阅 [ARCHITECTURE.md](ARCHITECTURE.md#known-gaps)。 ## API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | POST | `/api/auth/register` | 注册用户 | | POST | `/api/auth/login` | 登录 | | GET | `/api/products/` | 列出产品 | | GET | `/api/products/search?q=` | 搜索 (SQLi) | | GET/POST | `/api/cart/` | 购物车 | | POST | `/api/orders/checkout` | 下单 | | POST | `/api/reviews/` | 创建评论 (XSS) | | GET | `/api/admin/stats` | 管理员统计 (无身份验证) | | POST | `/api/admin/exec` | 命令执行 | | POST | `/api/vuln/fetch` | SSRF | | POST | `/api/vuln/upload` | 文件上传 | | GET | `/metrics` | Prometheus 指标 | ## AI 平台集成 此代码库生成由 **AI 发布智能平台** 使用的发现(见[上方](#ai-release-intelligence-platform))—— 这是一个单一的 AI Agent,它可以综合分析 CodeQL/Snyk/SonarCloud/GitGuardian (应用程序)、Checkov/kube-linter (基础设施) 和 Kyverno/KubeArmor/ZAP (运行时) 的发现,将它们跨领域进行关联,并生成带有引用的、通过 schema 验证的发布就绪建议。这取代了本 README 早期草稿中描述的一系列独立的、假设的未来工具(漏洞分析器、修复专家、PR 审查器等)—— 这些想法已经融合成了上述文档记录的一个真实的、经过验证的系统,而不是以前在这里列出的多个推测性工具。 ## 安全测试示例 ``` # SQL Injection curl "http://localhost:5000/api/products/search?q=' OR '1'='1" # SSRF curl -X POST http://localhost:5000/api/vuln/fetch \ -H "Content-Type: application/json" \ -d '{"url": "http://169.254.169.254/latest/meta-data/"}' # Path Traversal curl "http://localhost:5000/api/vuln/file?path=etc/passwd" # 暴露的 Config curl http://localhost:5000/api/config ``` ## 推送到 GitHub 本仓库故意包含用于培训的易受攻击的代码、薄弱的配置和示例密钥。除非公开暴露是您培训计划的一部分,否则请使用私有仓库。 ``` git add . git commit -m "Initial commit: CloudCart DevSecOps training application" git branch -M main git remote add origin https://github.com/YOUR_ORG/cloudcart.git git push -u origin main ``` 配置 GitHub Actions 密钥 (`SNYK_TOKEN`, `SONAR_TOKEN` 等) 以进行完整的 Pipeline 运行。扫描被设计为即使未设置密钥也会产生发现;部分工作流步骤在合适的地方使用了 `continue-on-error`。 ## 许可证 MIT 许可证 - 见 [LICENSE](LICENSE)。本项目仅用于**教育和安全培训**。请在隔离的环境中负责任地使用。
(severity, category, type, confidence, finding_id)"] end T1 --> N T2 --> N T3 --> N T4 --> N T5 --> N T6 --> N T7 --> N T8 --> N T9 --> N N --> B1["build_release_context.py
app + runtime findings"] N --> B2["build_infra_context.py
infra + terraform findings"] B1 --> C["compose_release_context.py
merge · assign_domain · compute statistics"] B2 --> C C --> RC[("final_release_context.json
ReleaseContext v1.0 — frozen")] RC --> AI["AI Release Intelligence Agent
run_security_analysis.py
Claude, forced tool-use, schema-validated"] AI --> ER[("executive_report.json
ExecutiveReport v1.0 — frozen")] ER --> R1["render_report.py → Markdown"] ER --> R2["render_html_report.py → HTML"] RC -. resolves finding_id citations .-> R1 RC -. resolves finding_id citations .-> R2 ``` ### 实际验证的内容,基于真实数据 — 而非假设 | 领域 | 状态 | |---|---| | `infrastructure_security` | 在多次真实的 CI 运行中验证 | | `runtime_security` | 在多次真实的 CI 运行中验证 | | `application_security` | **已使用真实数据验证** — 在一次真实运行中包含来自 CodeQL/SonarCloud/GitGuardian/Snyk SCA 的 119 个真实发现,零无效引用,正确的跨领域关联完整性 | | `container_security` | **确认真实发现已成功流转**(在一次真实运行中包含 8 个真实的 CVE)— 验证范围比 `application_security` 窄:确认了数据路径,但尚未专门针对该领域验证 AI 推理/引用的正确性 | ### 测试套件 559 个自动化测试 (`tests/`) — schema 验证、证据引用完整性、跨领域关联完整性、渲染器正确性,以及涵盖 8 个代表性场景的黄金回归数据集。详见 [ARCHITECTURE.md](ARCHITECTURE.md#test-suite)。 ``` pip install -r tests/requirements.txt python3 -m pytest ``` 已知缺陷和完整的领域分配/schema 参考:请参阅 [ARCHITECTURE.md](ARCHITECTURE.md#known-gaps)。 ## API 端点 | 方法 | 端点 | 描述 | |--------|----------|-------------| | POST | `/api/auth/register` | 注册用户 | | POST | `/api/auth/login` | 登录 | | GET | `/api/products/` | 列出产品 | | GET | `/api/products/search?q=` | 搜索 (SQLi) | | GET/POST | `/api/cart/` | 购物车 | | POST | `/api/orders/checkout` | 下单 | | POST | `/api/reviews/` | 创建评论 (XSS) | | GET | `/api/admin/stats` | 管理员统计 (无身份验证) | | POST | `/api/admin/exec` | 命令执行 | | POST | `/api/vuln/fetch` | SSRF | | POST | `/api/vuln/upload` | 文件上传 | | GET | `/metrics` | Prometheus 指标 | ## AI 平台集成 此代码库生成由 **AI 发布智能平台** 使用的发现(见[上方](#ai-release-intelligence-platform))—— 这是一个单一的 AI Agent,它可以综合分析 CodeQL/Snyk/SonarCloud/GitGuardian (应用程序)、Checkov/kube-linter (基础设施) 和 Kyverno/KubeArmor/ZAP (运行时) 的发现,将它们跨领域进行关联,并生成带有引用的、通过 schema 验证的发布就绪建议。这取代了本 README 早期草稿中描述的一系列独立的、假设的未来工具(漏洞分析器、修复专家、PR 审查器等)—— 这些想法已经融合成了上述文档记录的一个真实的、经过验证的系统,而不是以前在这里列出的多个推测性工具。 ## 安全测试示例 ``` # SQL Injection curl "http://localhost:5000/api/products/search?q=' OR '1'='1" # SSRF curl -X POST http://localhost:5000/api/vuln/fetch \ -H "Content-Type: application/json" \ -d '{"url": "http://169.254.169.254/latest/meta-data/"}' # Path Traversal curl "http://localhost:5000/api/vuln/file?path=etc/passwd" # 暴露的 Config curl http://localhost:5000/api/config ``` ## 推送到 GitHub 本仓库故意包含用于培训的易受攻击的代码、薄弱的配置和示例密钥。除非公开暴露是您培训计划的一部分,否则请使用私有仓库。 ``` git add . git commit -m "Initial commit: CloudCart DevSecOps training application" git branch -M main git remote add origin https://github.com/YOUR_ORG/cloudcart.git git push -u origin main ``` 配置 GitHub Actions 密钥 (`SNYK_TOKEN`, `SONAR_TOKEN` 等) 以进行完整的 Pipeline 运行。扫描被设计为即使未设置密钥也会产生发现;部分工作流步骤在合适的地方使用了 `continue-on-error`。 ## 许可证 MIT 许可证 - 见 [LICENSE](LICENSE)。本项目仅用于**教育和安全培训**。请在隔离的环境中负责任地使用。
标签:ASTO, DevSecOps, GPT, LLM防护, 上游代理, 人工智能, 子域名突变, 安全合规, 测试用例, 漏洞管理, 用户模式Hook绕过, 网络代理, 请求拦截