alaeddinejebali/rampart-api

GitHub: alaeddinejebali/rampart-api

一个集攻击模拟与防御检测于一体的云原生安全 API 网关实验室,帮助开发者在无风险环境中学习 DevSecOps 实践和安全攻防技能。

Stars: 0 | Forks: 0

# Rampart API ## 概述 **Rampart API** 是一个云原生、以安全为核心的 API 网关,旨在模拟、检测和缓解真实的 Web 攻击。 本项目是一个实践性的 DevSecOps 与网络安全实验室,演示了如何使用多层防御方法来保护现代微服务架构。 ## 面临的问题 大多数开发者都是在遭遇入侵*之后*才开始学习安全知识。本实验室提供了一个安全的环境,用于: - 了解攻击者的思维方式与操作手法。 - 在发生生产环境事故之前构建防御能力。 - 在没有实际后果的情况下练习事件响应。 ## 技术栈 ### 前端 - React (Vite + TypeScript) - TailwindCSS - Recharts(数据可视化) ### 后端 - Node.js (NestJS 框架) - MongoDB(应用数据) - Redis(会话、速率限制) - TypeScript ### 基础设施 - Docker & Docker Compose - Kubernetes (k3s/kind/minikube) - Helm(包管理) ### 安全工具 - ModSecurity + OWASP CRS (WAF) - OWASP ZAP(攻击模拟) - Trivy(容器扫描) - Falco(运行时安全) ### 可观测性 - Prometheus(指标) - Grafana(仪表盘) - Loki(日志聚合) ## 架构 ``` ┌─────────────────────────────────────────────┐ │ Attack Simulation Layer │ │ (OWASP ZAP, Custom Scripts) │ └──────────────────┬──────────────────────────┘ │ ┌──────────────────▼──────────────────────────┐ │ Rampart API Gateway │ │ ┌────────────────────────────────────────┐ │ │ │ WAF Layer (ModSecurity + OWASP CRS) │ │ │ ├────────────────────────────────────────┤ │ │ │ Rate Limiter (Redis-backed) │ │ │ ├────────────────────────────────────────┤ │ │ │ JWT Validator │ │ │ ├────────────────────────────────────────┤ │ │ │ Request Logger (Structured) │ │ │ ├────────────────────────────────────────┤ │ │ │ Threat Analyzer (Pattern Matching) │ │ │ └────────────────────────────────────────┘ │ └──────────────────┬──────────────────────────┘ │ ┌────────────┼────────────┬────────────┐ │ │ │ │ ┌──▼───┐ ┌───▼────┐ ┌───▼────┐ ┌──▼─────┐ │ User │ │ Payment│ │ Upload │ │ Admin │ │Svc │ │Svc │ │Svc │ │Svc │ └──┬───┘ └───┬────┘ └───┬────┘ └───┬────┘ │ │ │ │ └────────────┴────────────┴────────────┘ │ ┌──────────────────▼──────────────────────────┐ │ Data Layer │ │ ├─ MongoDB (Application Data) │ │ ├─ Redis (Sessions, Rate Limits) │ │ └─ Loki (Security Events) │ └─────────────────────────────────────────────┘ │ ┌──────────────────▼──────────────────────────┐ │ Security Operations Center │ │ ├─ Prometheus (Metrics) │ │ ├─ Grafana (Dashboards) │ │ └─ Alert Manager (Incidents) │ └─────────────────────────────────────────────┘ ``` ### 数据流 1. 攻击流量命中 WAF → 被检查、记录、评分。 2. 合法请求通过速率限制器。 3. JWT 验证确保身份认证。 4. 路由到相应的微服务。 5. 所有事件流式传输到可观测性技术栈。 ## 项目结构 ``` rampart-api/ ├── apps/ │ ├── gateway/ # Core API gateway (Node.js) │ ├── dashboard/ # Security monitoring UI (React) │ ├── user-service/ # Example microservice (vulnerable) │ ├── payment-service/ # Example microservice (vulnerable) │ └── attack-simulator/ # Automated attack scripts ├── infra/ │ ├── docker/ # Dockerfiles & compose files │ ├── kubernetes/ # K8s manifests │ └── helm/ # Helm charts ├── security/ │ ├── waf-rules/ # ModSecurity custom rules │ ├── policies/ # OPA policies (future) │ └── threat-intel/ # Attack signatures ├── observability/ │ ├── prometheus/ │ ├── grafana/ │ └── loki/ ├── docs/ │ ├── architecture.md │ ├── attack-playbook.md │ └── deployment.md ├── scripts/ │ ├── setup.sh │ ├── attack.sh │ └── benchmark.sh └── .github/ └── workflows/ ``` ## 快速开始 ### 克隆与设置 ``` git clone https://github.com/alaeddinejebali/rampart-api.git cd rampart-api ./scripts/setup.sh ``` ### 本地部署 ``` make dev ``` 访问地址: - **Dashboard(仪表盘)**:http://localhost:3000 - **API 网关**:http://localhost:8080 - **Grafana**:http://localhost:9000 ### 运行你的第一次攻击 ``` npm run attack:sqli -- --target=user-service --severity=high ``` 看着仪表盘上亮起检测到的威胁! ## 攻击模拟矩阵 | 攻击类型 | 工具 | 检测方式 | 缓解措施 | |------------|------|----------|------------| | SQL 注入 | Custom | WAF 规则 | 参数化查询 | | NoSQL 注入 | Custom | 查询分析 | 输入清理 | | XSS | ZAP | CSP 验证 | 输出编码 | | 暴力破解 | Hydra | 速率限制 | 账户锁定 | | IDOR | Custom | 认证检查 | UUID 资源 | | 路径遍历 | DirBuster | 路径验证 | 白名单 | | XXE | Custom | 解析器加固 | 禁用实体 | | SSRF | Custom | 出站监控 | URL 白名单 | ## 展示的技能 ### 安全工程 - ✅ WAF 规则开发 (ModSecurity DSL) - ✅ 威胁建模 (STRIDE 框架) - ✅ 攻击模式识别 - ✅ 安全的 JWT 实现 (RS256) ### DevSecOps - ✅ 容器安全(Trivy 扫描) - ✅ 运行时安全(Falco 规则) - ✅ 安全即代码(OPA 策略) - ✅ SIEM 集成(结构化日志) ### 云原生架构 - ✅ Kubernetes 安全(RBAC、网络策略) - ✅ 可观测性技术栈(Prometheus、Grafana) - ✅ 微服务架构 ### 攻防安全 - ✅ OWASP Top 10 漏洞利用 - ✅ 攻击自动化工具 - ✅ 红队方法论 ## 截图 ### 安全仪表盘 *即将推出:实时威胁检测与缓解分析* ### 攻击时间线 *即将推出:攻击链的法证重建* ### Kubernetes 安全视图 *即将推出:Pod 安全态势与网络策略* ## 路线图 ### 第一阶段:核心网关(当前) - [x] WAF 集成 - [x] JWT 身份验证 - [x] 速率限制 - [x] 基础可观测性 ### 第二阶段:高级安全(下一步) - [ ] 服务网格 (Istio + mTLS) - [ ] OPA 策略引擎 - [ ] 行为异常检测 - [ ] 自动化威胁响应 ### 第三阶段:企业级功能(未来) - [ ] SIEM 集成 (Splunk/Elastic) - [ ] 混沌工程(攻击韧性) - [ ] 多租户隔离 - [ ] 合规性报告(SOC 2、PCI DSS) ## 许可证 MIT License
标签:API安全, API网关, API集成, AppImage, CISA项目, DevSecOps, Docker, Docker Compose, Falco, GNU通用公共许可证, Grafana, Helm, IP 地址批量处理, JSON输出, k3s, kind, Loki, minikube, MITM代理, ModSecurity, MongoDB, NestJS, Node.js, OWASP CRS, OWASP ZAP, React, Recharts, Redis, Syscalls, TailwindCSS, TypeScript, URL发现, Vite, WAF, Web应用防火墙, Web截图, 上游代理, 可观测性, 后端开发, 子域名突变, 安全, 安全培训, 安全插件, 安全检测, 安全防御评估, 容器安全, 微服务安全, 搜索引擎查询, 攻击模拟, 敏感词过滤, 日志聚合, 监控, 缓解措施, 网络安全实验室, 自定义请求头, 请求拦截, 超时处理, 配置错误, 防御体系, 驱动签名利用