odonnkongolo/snyk-cloud-security

GitHub: odonnkongolo/snyk-cloud-security

该项目演示了如何在 GitHub Actions 流水线中集成 Snyk AI 安全引擎,构建从代码扫描到云部署的全链路 DevSecOps 安全门禁体系。

Stars: 0 | Forks: 0

# 🛡️ AI 增强的 DevSecOps Pipeline(Snyk 集成) ## 🚀 架构概述 本仓库演示了如何将业界标准、AI 增强的安全引擎(Snyk)直接集成到 GitHub Actions 持续集成(CI)pipeline 中。突破了传统的基于正则表达式的 SAST 扫描器,该架构利用 Snyk Code AI 和 Snyk IaC 执行语义分析、预测逻辑缺陷,并在云部署之前强制执行严格的基础设施规范。 ## 🛠️ 技术栈 * **CI/CD 编排:** GitHub Actions * **AI 安全引擎:** Snyk(Code & Infrastructure as Code) * **应用程序:** Python / Flask(通过 Docker 容器化) * **容器镜像仓库:** Amazon ECR * **基础设施:** Terraform(AWS EKS, VPC, IAM, KMS) * **容器编排:** Kubernetes(Amazon EKS) ## 🏗️ 核心工程机制 1. **静态代码检查门禁:** 每次向 `main` 分支推送代码时,pipeline 会对 Python 应用程序运行 Ruff、Flake8 和 Bandit,对所有 Terraform HCL 文件运行 TFLint,并运行 Trivy 进行容器文件系统扫描。这些检查必须全部通过,才会触发任何 Snyk 扫描。 2. **AI 应用程序逻辑扫描:** Snyk Code 使用机器学习对 Python 应用程序源码进行语义静态分析——利用 Snyk 的机器学习模型检测注入风险、硬编码的 secrets 以及不安全的模式。 3. **基础设施安全态势扫描:** Snyk IaC 扫描所有 Terraform(`.tf`)和 Kubernetes(`.yaml`)配置文件,以便在它们被部署到 AWS 之前拦截配置错误(例如,暴露的端口、未加密的卷)。 4. **部署与执行:** 只有在所有安全门禁顺利通过的情况下,应用程序才会被容器化、推送到 ECR 并部署到 EKS 集群。如果检测到任何高严重性或严重级别的漏洞,pipeline 将返回非零退出代码,从而中止部署。 ## 📂 仓库结构 * `/app`:包含 Python Flask 应用程序代码和依赖项(`requirements.txt`)。 * `/infrustructure`:包含 Terraform 配置,用于规划 VPC、EKS 集群、节点组和 IAM 执行角色。 * `/kubernetes`:包含 Kubernetes 清单(`prod-flask-app.yaml`),定义了 Deployment 和 Service 配置。 * `/.github/workflows`:包含 CI/CD pipeline 自动化工作流,定义了严格的安全门禁和部署流程。 ## 🚀 事件响应与修复手册 **1. 拦截基础设施配置错误:** 首次 GitHub Actions 运行在 Snyk IaC 扫描期间失败,标记出了一个高危公共访问漏洞。 ``` # SNYK-CC-TF-94: EKS API endpoint 可公开访问 # 已应用于 infrustructure/eks.tf 的修复: endpoint_public_access = false endpoint_private_access = true ``` **2. 加固 Kubernetes 工作负载:** 通过 Snyk IaC 在 Kubernetes Deployment 中发现了几个从低到中等严重级别的漏洞。应用了严格的安全上下文(security contexts),以缓解权限提升和容器逃逸(container breakout)风险: ``` # 已应用于 kubernetes/prod-flask-app.yaml 的修复: readOnlyRootFilesystem: true allowPrivilegeEscalation: false runAsNonRoot: true runAsUser: 1000 capabilities: drop: - ALL ``` **3. 自动修复传递依赖项:** Snyk Cloud Console 通过仪表盘的 AI 生成的优先级评分识别出了一个残留的中等严重级别漏洞(`zipp@3.15.0` 中的 `CVE-2024-5569`)。锁定了安全版本以覆盖该传递依赖项。 ``` # 在 zipp@3.19.1 (SNYK-PYTHON-ZIPP-7430899) 中已修复 # 已应用于 app/requirements.txt 的修复: zipp>=3.19.1 ``` ## 📸 安全态势证据 Snyk IaC scan output showing 1 high severity EKS public access finding before remediation Snyk Cloud Console showing all 8 scanned project files with severity breakdown Snyk dashboard showing zipp@3.15.0 infinite loop vulnerability with priority score 666 and fix recommendation GitHub Actions log showing Snyk Code scan completed with 0 total issues GitHub Actions log showing Snyk IaC scan completed with 0 critical, 0 high, 0 medium, 0 low issues Screenshot 2026-06-15 at 23 45 50
标签:DevSecOps, ECS, SAST, Terraform, 上游代理, 子域名突变, 漏洞利用检测, 盲注攻击, 请求拦截, 逆向工具, 错误基检测, 静态代码分析