Ibraheemolasupogit/devsecops-application-security-pipeline
GitHub: Ibraheemolasupogit/devsecops-application-security-pipeline
一个以合成 FastAPI 产品为载体的云原生 DevSecOps 应用安全流水线参考实现,完整展示从威胁建模到漏洞治理的安全 SDLC 全流程。
Stars: 0 | Forks: 0
# DevSecOps 应用安全流水线
这是一个基于合成的 FastAPI 产品的作品集仓库,该产品通过完整的本地产品安全运营模型来保障安全:安全设计、API 控制、Terraform 参考架构、AppSec 扫描、动态测试、漏洞发现归一化、发布保障、漏洞生命周期治理、整合证据、开发者赋能、Security Champions 以及 Repository 5 集成契约。
该应用程序仅使用合成的、不可识别的演示数据。它不是生产级别的基因组学平台,不隶属于 Genomics England 也未经其认可,并且不会部署任何 AWS 资源。
## 1. 作品集定位
本仓库展示了如何将产品安全实践实现为可复现的工程工作流,而非仅仅停留在理论幻灯片层面。核心产品被刻意精简,以便围绕它的安全系统能够实现端到端的可审查性。
## 2. 产品接口
参考产品是一个基因组研究访问 API,包含数据集目录、访问请求工作流、批准和拒绝操作、结构化审计事件、本地 JWT 身份验证、基于角色的权限以及对象级授权。
## 3. 安全成果
- 已完成 14 个记录在案的里程碑。
- 25 项产品安全能力已映射至证据。
- 44 个规范漏洞发现处于确定性所有权、发布和生命周期治理之下。
- 保留了 46 个带有来源溯源信息的原始漏洞发现。
- 导出了 178 条集成血缘边缘数据,用于下游验证。
- 在本地验证了 9 个整合的证据域。
## 4. 证据边界
所有保障证据均在本地生成,来源于仓库文件、本地测试、本地扫描器包装器和确定性时间戳。AWS 架构仅作为 Terraform 参考代码存在。Repository 5 集成仅为契约导出,不会修改其他仓库。
## 5. 架构
从以下开始:
- [应用架构](docs/architecture/application-architecture.md)
- [AWS 参考架构](docs/architecture/aws-reference-architecture.md)
- [作品集图表](docs/architecture/diagrams/system-context.md)
- [产品安全运营模型](docs/portfolio/product-security-operating-model.md)
## 6. 安全 SDLC
安全 SDLC 以可运行的本地命令、策略文件、CI 工作流和生成的证据来呈现。最终的验证目标是:
```
make final-validation
```
## 7. 威胁建模
STRIDE 威胁模型产出物位于 [docs/threat-model](docs/threat-model/README.md) 下。它们包括资产、参与者、信任边界、数据流、威胁登记册、需求、可追溯性和残余风险。
## 8. API 安全
身份验证、授权、对象访问、安全标头、CORS 和审计行为由位于 `outputs/security/api-security/` 下的本地测试和证据覆盖。
## 9. 基础设施安全
[infrastructure](infrastructure/README.md) 下的 Terraform 对 ECS Fargate、ALB、VPC、DynamoDB、KMS、Secrets Manager 元数据、ECR、CloudTrail 和可观测性控制进行了建模。这是刻意不应用的。
## 10. AppSec 流水线
里程碑 5 通过固定版本的包装器和受治理的证据添加了 Gitleaks、Semgrep、Bandit、pip-audit、CycloneDX SBOM、Checkov、Docker 镜像构建验证和 Trivy 容器扫描。
## 11. 动态安全
动态验证包括本地 pytest 边界测试、Schemathesis OpenAPI 检查和 OWASP ZAP 本地扫描。动态目标仅限于 localhost 和批准的本地 Docker 使用。
## 12. 漏洞发现管理
来自扫描器、威胁模型、基础设施和动态测试的漏洞发现被归一化为规范漏洞发现,并带有确定性 ID、所有者、SLA、风险评分和抑制治理。
## 13. 发布保障
发布门禁会评估规范漏洞发现,并产生确定性决策、规则评估、批准和操作列表。当前的本地决策为 `conditional_pass`。
## 14. 漏洞生命周期
生命周期治理提供了分类状态、例外批准、到期处理、关闭前验证和审计报告。它是本地的,不与工单系统集成。
## 15. 证据和报告
整合的证据位于 `outputs/security/evidence/` 下。报告位于 `reports/security/` 和 `reports/portfolio/` 下。
## 16. 开发者赋能
开发者指南、安全检查清单和本地工作流说明位于 [docs/developer-security](docs/developer-security/README.md) 下。
## 17. Security Champions
Security Champions 计划位于 [security-champions](security-champions/README.md) 下,包括章程、角色、研讨会、练习、指标和连续性指南。
## 18. 仓库集成契约
Repository 5 契约导出位于 [docs/integration](docs/integration/README.md) 和 `outputs/security/integration/` 下。它是兼容的、带版本控制并在本地验证过的,但不执行实时提取。
## 19. 作品集文档
招聘人员、工程经理和安全审查人员的视图位于 [docs/portfolio](docs/portfolio/project-case-study.md) 下。从以下开始:
- [项目案例研究](docs/portfolio/project-case-study.md)
- [高管案例研究](docs/portfolio/executive-case-study.md)
- [技术案例研究](docs/portfolio/technical-case-study.md)
- [面试谈话要点](docs/portfolio/interview-talking-points.md)
- [简历要点](docs/portfolio/cv-bullets.md)
## 20. 作品集证据
生成作品集证据和报告:
```
make portfolio-full
```
关键产出:
- `outputs/security/portfolio/portfolio-summary.json`
- `outputs/security/portfolio/security-capability-matrix.json`
- `outputs/security/portfolio/portfolio-manifest.json`
- `outputs/portfolio/`
- `reports/portfolio/`
## 21. 本地设置
需要 Python 3.11 或更高版本。
```
make setup
make run
```
打开 `http://127.0.0.1:8000/docs` 访问本地 OpenAPI UI。
## 22. 质量门禁
```
make format-check
make lint
make type-check
make test-coverage
make quality
```
## 23. 安全门禁
```
make appsec-full
make dynamic-full
make findings-full
make release-full
make lifecycle-full
make evidence-full
make integration-full
make security-assurance-full
```
## 24. 最终验证
```
make final-validation
git diff --check
git status --short
```
`final-validation` 会验证质量、现有的证据清单、集成证据和作品集证据。由 Docker 支持的 AppSec 命令仍然单独执行,因为它们依赖于本地 Docker 的可用性。
## 25. 治理
## 26. 局限性
该仓库刻意排除了生产部署、AWS 资源创建、实时身份提供者集成、工单集成、仪表板、消息传递集成、监管认证以及对 Repository 5 的更改。请参阅[局限性和残余风险](docs/portfolio/limitations-and-residual-risk.md)。
标签:LLM防护, 请求拦截, 逆向工具