anlehtouf/AegisFlow-DevSecOps

GitHub: anlehtouf/AegisFlow-DevSecOps

AegisFlow 是一个内置 22 阶段安全流水线的 DevSecOps 参考平台,通过 AWS 原生供应链强制执行策略,实现从代码提交到运行时的全流程安全门禁。

Stars: 0 | Forks: 0

# AegisFlow [![CI Pipeline](https://static.pigsec.cn/wp-content/uploads/repos/cas/b5/b5d95410764721d616c9b9f1d5662981d05624ffafc72f7cc4d70664e9eec1f6.svg)](./.github/workflows/ci-pipeline.yml) [![Security](https://img.shields.io/badge/security-DevSecOps-success)]() [![Signed](https://img.shields.io/badge/images-cosign%20signed-blueviolet)]() [![SBOM](https://img.shields.io/badge/SBOM-SPDX-orange)]() [![Cloud](https://img.shields.io/badge/cloud-AWS-ff9900)]() [![IaC](https://img.shields.io/badge/IaC-Terraform-7B42BC)]() [![License](https://img.shields.io/badge/license-MIT-yellow)](./LICENSE) ## 为什么选择 AegisFlow 大多数软件组织将安全视为开发后的审计步骤。 **AegisFlow 颠覆了这一模式**:在交付生命周期的每个阶段都强制执行安全, 每次构建都会生成可验证的供应链制品,并且 每次部署都会落地于由已签名、已扫描的 Terraform 配置的 AWS 基础设施。 该平台围绕一个故意带有漏洞的演示应用程序构建 — **SecureTrack**,一个事件报告平台 — 包含 15 个故意的 安全缺陷(`V1`–`V15`)。流水线会捕获所有这些缺陷并阻止 部署,直到每个缺陷被修复,从而产生一个可衡量的 **30+ 严重/高危发现 → 0** 的过程记录。 ## 目录 - [架构](#architecture) - [安全控制](#security-controls) - [流水线阶段](#pipeline-stages) - [云基础设施](#cloud-infrastructure) - [技术栈](#tech-stack) - [快速开始](#quick-start) - [演示应用程序](#demo-application) - [漏洞目录](#vulnerability-catalogue) - [前后对比](#before-vs-after) - [文档](#documentation) - [仓库结构](#repository-structure) - [许可证](#license) ## 架构 完整部署拓扑 — AWS 原生,OIDC 联合,端到端签名: ![部署图](https://static.pigsec.cn/wp-content/uploads/repos/cas/13/13c53c75a7cd5508979151fa3966f4e20f212bbbefe0f8b2f76a83c07f5135c5.png) 完整图表集:[`docs/diagrams/`](./docs/diagrams/) — MCD、用例、类、 时序图 (×2)、部署、活动、组件。 ## 安全控制 | 控制 | 工具 | 阶段 | 阻断 | |---------|------|-------|----------| | 密钥检测 | Gitleaks | 预构建 | 是 | | SAST | Semgrep (+ 自定义规则) | 构建 | 是 | | 代码质量 | SonarCloud | 构建 | 是 | | 依赖扫描 | Trivy + npm audit | 构建 | 是 | | Dockerfile lint | Hadolint | 打包 | 是 | | 镜像扫描 | Trivy + ECR 原生 | 打包 | 是 | | Policy-as-code | Conftest / OPA | 打包 | 是 | | IaC 扫描 | tfsec | 基础设施 | 是 | | SBOM | Syft (SPDX) | 打包 | 建议 | | 镜像签名 | Cosign keyless (OIDC) | 打包 | 建议 | | DAST | OWASP ZAP | 部署后 | 建议 | | 运行时 CVE | Amazon Inspector v2 | 运行时 | 持续 | | 威胁检测 | Amazon GuardDuty | 运行时 | 持续 | | L7 防护 | AWS WAF (OWASP CRS) | 边缘 | 持续 | 请参阅 [`docs/security-controls.md`](./docs/security-controls.md) 获取包含控制 ID 和 合规映射的完整清单。 ## 流水线阶段 CI/CD 流水线运行 22 个阶段,带有 5 个明确的阻断门: ![流水线活动图](https://static.pigsec.cn/wp-content/uploads/repos/cas/6c/6cd44a8f529201cee1e5894fd58be50961f4571948ec134232a395f7508284dc.png) 请参阅 [`.github/workflows/ci-pipeline.yml`](./.github/workflows/ci-pipeline.yml) 查看实现。 ## 云基础设施 AegisFlow 附带了一个完整的 **Terraform module**,用于为应用程序配置 完整的 AWS landing zone: - **VPC** — 跨越两个 AZ 的三层子网(公共 · 私有应用 · 私有 DB) - **ECS Fargate** — 无服务器 container runtime,无需节点管理 - **ECR** — 具有原生漏洞扫描的镜像仓库 - **RDS PostgreSQL 16** — 静态加密,无公共访问,自动备份 - **ALB + AWS WAF** — 带有 OWASP Core Rule Set 的 L7 负载均衡 - **ACM + Route 53** — 自动续订的 TLS 证书和 DNS - **Secrets Manager** — DB 凭证和 JWT secret,受 IAM 限制 - **S3** — 用于 SBOM、扫描报告、附件的版本化、加密存储桶 - **CloudWatch Logs + Metrics** — 集中式可观测性 - **GuardDuty + Inspector v2** — 运行时威胁检测和持续 CVE 扫描 - **IAM OIDC Provider** — GitHub Actions 联合身份验证,**零静态 AWS 凭证** Terraform 代码本身在流水线中由 [`tfsec`](https://aquasecurity.github.io/tfsec) 扫描。 请参阅 [`infrastructure/terraform/README.md`](./infrastructure/terraform/README.md) 获取部署说明。 ## 技术栈 **应用程序** - 后端:Node.js 20 + Express.js + Prisma ORM - 前端:React 18 + Vite + React Router - 数据库:PostgreSQL 16 **DevSecOps 平台** - CI/CD:GitHub Actions - 镜像仓库:GitHub Container Registry (GHCR) + Amazon ECR - 密钥扫描:Gitleaks - SAST:Semgrep(社区版 + 自定义规则) - 代码质量:SonarCloud - SCA:Trivy + npm audit - 容器:Docker + BuildKit - Dockerfile lint:Hadolint - 镜像扫描:Trivy + ECR 原生 - SBOM:Syft (Anchore) — SPDX 格式 - 签名:Cosign keyless (Sigstore) - Policy-as-code:Conftest / OPA (Rego) - IaC:Terraform - IaC 扫描:tfsec - DAST:OWASP ZAP - 运行时安全:Amazon Inspector v2, Amazon GuardDuty - 可观测性:Prometheus + Grafana + CloudWatch **云 (AWS)** - 计算:ECS Fargate - 数据库:RDS PostgreSQL - 网络:VPC, ALB, WAF, Route 53, ACM - 身份:IAM + GitHub OIDC 联合身份验证 - 存储:S3 - 密钥:AWS Secrets Manager ## 快速开始 ### 本地开发(不使用云) ``` git clone https://github.com/anlehtouf/AegisFlow-DevSecOps.git cd AegisFlow-DevSecOps chmod +x scripts/*.sh ./scripts/setup.sh cd infrastructure docker compose up -d docker compose -f docker-compose.yml -f docker-compose.monitoring.yml up -d ``` 访问点: - 前端:http://localhost:3000 - 后端:http://localhost:5000 - Prometheus:http://localhost:9090 - Grafana:http://localhost:3001 (admin/admin) 默认初始化凭证: - 管理员:`admin@securetrack.local` / `admin123` - 报告者:`reporter@securetrack.local` / `reporter123` ### 云部署 (AWS) ``` cd infrastructure/terraform cp terraform.tfvars.example terraform.tfvars # edit values terraform init terraform plan terraform apply ``` 请参阅 [`infrastructure/terraform/README.md`](./infrastructure/terraform/README.md) 获取包含 OIDC 角色设置在内的完整说明。 ## 演示应用程序 **SecureTrack** 是一个事件报告和跟踪平台: - 基于 JWT 的身份验证(注册 / 登录) - 事件 CRUD(创建、列表、查看、更新状态) - 通过 S3 presigned URLs 上传文件附件 - 基于角色的访问(REPORTER、ADMIN、AUDITOR) - 每次变更的审计日志 - 健康检查和 Prometheus metrics endpoint 请参阅 [`docs/architecture.md`](./docs/architecture.md) 和 [类图](./docs/diagrams/03-class-diagram.png) 了解详情。 ## 漏洞目录 该应用程序以 **15 个故意设置的漏洞**(在源码注释中标记为 `V1`–`V15`) 开始,每个漏洞都由流水线中的特定工具检测: | # | 漏洞 | 检测工具 | 严重程度 | OWASP Top 10 | |----|--------------|-------------|----------|--------------| | V1 | 硬编码的 API key | Gitleaks | HIGH | A07 | | V2 | 硬编码的 JWT secret | Gitleaks + Semgrep | HIGH | A02 / A07 | | V3 | SQL injection(原始查询) | Semgrep | CRITICAL | A03 | | V4 | 通过 `dangerouslySetInnerHTML` 的 XSS | Semgrep | HIGH | A03 | | V5 | 存在漏洞的 `lodash@4.17.20` | Trivy + npm audit | HIGH | A06 | | V6 | 存在漏洞的 `node:16` 基础镜像 | Trivy image | HIGH/CRIT | A06 | | V7 | 容器以 root 身份运行 | Hadolint + Conftest | MEDIUM | A05 | | V8 | Dockerfile 中没有 HEALTHCHECK | Hadolint + Conftest | LOW | A05 | | V9 | 错误处理程序中的调试模式 | Semgrep | MEDIUM | A05 | | V10 | 缺少 helmet 安全标头 | OWASP ZAP | MEDIUM | A05 | | V11 | 身份验证没有速率限制 | Semgrep (自定义) + ZAP | LOW | A07 | | V12 | 密码策略薄弱 | Semgrep (自定义) | MEDIUM | A07 | | V13 | 密码被记录到控制台 | Semgrep (自定义) | MEDIUM | A09 | | V14 | CORS 通配符来源 | Semgrep (自定义) + ZAP | MEDIUM | A05 | | V15 | 过时的 Express 版本 | Trivy | HIGH | A06 | ## 前后对比 | 指标 | 前 | 后 | 减少 | |--------|--------|-------|-----------| | 代码中的密钥 | 2 | 0 | 100% | | SAST 高危/严重 | 6 | 0 | 100% | | 存在漏洞的依赖项(严重) | 2 | 0 | 100% | | 镜像严重 CVE | 15+ | 0 | 100% | | Dockerfile lint 错误 | 3 | 0 | 100% | | 策略违规 | 2 | 0 | 100% | | DAST 高危发现 | 2 | 0 | 100% | | **高危/严重总计** | **30+** | **0** | **100%** | ## 文档 - [项目蓝图](./PROJECT_BLUEPRINT.md) — 完整规范(33 个部分) - [图表](./docs/diagrams/) — MCD + UML 包(8 个图表) - [架构](./docs/architecture.md) — 技术架构 - [安全控制](./docs/security-controls.md) — 控制清单 - [合规映射](./docs/compliance-mapping.md) — OWASP SAMM, NIST SSDF, ISO 27001 - [威胁模型](./security/threat-model/threat-model.md) — STRIDE 分析 - [运行手册](./docs/runbook.md) — 运维指南 - [Terraform Module](./infrastructure/terraform/README.md) — AWS 部署 ## 仓库结构 ``` AegisFlow-DevSecOps/ ├── .github/workflows/ GitHub Actions CI/CD pipelines ├── app/ │ ├── backend/ Node.js + Express API │ └── frontend/ React + Vite SPA ├── security/ │ ├── gitleaks/ Secret scanning rules │ ├── semgrep/ SAST custom rules │ ├── trivy/ Trivy configuration │ ├── policies/ OPA / Rego policies │ ├── zap/ ZAP scan config │ └── threat-model/ STRIDE threat model ├── infrastructure/ │ ├── docker-compose.yml Local staging stack │ ├── docker-compose.monitoring.yml │ ├── prometheus/ │ ├── grafana/ │ └── terraform/ AWS landing zone (IaC) ├── scripts/ Setup, deploy, health, reporting ├── docs/ │ ├── diagrams/ MCD + UML diagram pack │ ├── architecture.md │ ├── security-controls.md │ ├── compliance-mapping.md │ └── runbook.md ├── evidence/ Screenshots and scan reports ├── reports/ Generated scan outputs (gitignored) └── README.md ``` ## 许可证 MIT — 请参阅 [LICENSE](./LICENSE)。 ## 致谢 作为展示生产级 DevSecOps 实践的毕业设计 (PFE) 项目构建。 完全使用免费和开源工具,以确保完全的可重复性。
标签:AI应用开发, AWS, DevSecOps, DPI, ECS, LLM防护, MITM代理, Terraform, 上游代理, 代码安全扫描, 自动化运维, 自定义脚本, 自定义请求头, 请求拦截