SarahGamalKotb/container-vulnerability-scanner

GitHub: SarahGamalKotb/container-vulnerability-scanner

一个基于 Trivy 的容器漏洞扫描平台,用于自动检测 Docker 镜像中的安全漏洞并提供可视化仪表板。

Stars: 0 | Forks: 0

# 🛡️ 容器漏洞扫描平台 **工程技术学院 — 计算机科学专业** **Elsewedy 工程技术大学 | 2026 年春季学期** ## 📌 项目概述 该平台允许用户通过 API 提交 Docker 镜像名称,对其进行安全漏洞扫描,将结果存储在数据库中,并在一个实时仪表板上可视化展示所有信息。 ### 系统组件 | 组件 | 描述 | |------|------| | **API 服务** | 用于提交 Docker 镜像名称的 FastAPI 后端 | | **Worker 服务** | 基于 Trivy 的扫描器,在 Kubernetes Job 内运行 | | **PostgreSQL 数据库** | 存储扫描结果、镜像元数据和历史记录 | | **仪表板** | 基于 React 的 UI,用于可视化漏洞 | | **ArgoCD** | GitOps 部署自动化 | ## 🏗️ 系统架构 ``` User → API Service → Kubernetes Job (Trivy Scanner) ↓ PostgreSQL DB ↓ React Dashboard ↑ ArgoCD (GitOps sync) ``` ## 🛠️ 使用技术 | 技术 | 用途 | |------|------| | **Docker** | 对 API、Worker 和仪表板进行容器化 | | **KinD** | 本地 Kubernetes 集群 | | **Kubernetes YAML** | 部署所有服务 | | **Trivy CLI** | 在 K8s Job 内扫描 Docker 镜像的 CVE | | **FastAPI** | REST API 端点 | | **PostgreSQL** | 存储扫描结果和历史记录 | | **ArgoCD** | GitOps 部署自动化 | | **React + Vite** | 漏洞可视化仪表板 | ## 📁 项目结构 ``` container-scanner/ │ ├── api/ # FastAPI backend │ ├── main.py # API routes and logic │ ├── requirements.txt │ └── Dockerfile │ ├── worker/ # Trivy scanner worker │ ├── scanner.py # Scanning logic │ ├── requirements.txt │ └── Dockerfile │ ├── dashboard/ # React frontend │ ├── src/ │ │ ├── App.jsx # Main dashboard component │ │ ├── main.jsx │ │ └── index.css │ ├── dist/ # Built production files │ ├── Dockerfile │ ├── nginx.conf │ └── vite.config.js │ ├── database/ │ └── init.sql # PostgreSQL schema │ ├── k8s/ # Kubernetes manifests │ ├── base/ │ │ ├── namespace.yaml │ │ ├── api.yaml │ │ ├── worker.yaml │ │ ├── dashboard.yaml │ │ └── postgres.yaml │ └── argocd/ │ ├── application.yaml │ └── README.md │ ├── kind-config.yaml # KinD cluster config └── docker-compose.yml # Local dev setup ``` ## 🚀 如何运行 ### 选项 1 — 使用 Docker Compose 本地运行 (快速开始) ``` git clone cd container-scanner docker-compose up --build ``` 然后打开:`http://localhost:3000` ### 选项 2 — 完整 Kubernetes 部署 **步骤 1 — 创建 KinD 集群:** ``` kind create cluster --config kind-config.yaml ``` **步骤 2 — 应用 Kubernetes 清单:** ``` kubectl apply -f k8s/base/namespace.yaml kubectl apply -f k8s/base/postgres.yaml kubectl apply -f k8s/base/api.yaml kubectl apply -f k8s/base/worker.yaml kubectl apply -f k8s/base/dashboard.yaml ``` **步骤 3 — 部署 ArgoCD:** ``` kubectl create namespace argocd kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml kubectl apply -f k8s/argocd/application.yaml ``` **步骤 4 — 访问仪表板:** ``` kubectl port-forward svc/dashboard -n scanner 3000:80 ``` ## ☁️ 扩展云服务选项 ### 亚马逊云科技 - 扫描来自 **Amazon ECR** 的镜像 - 在 **EKS** 上部署 - 将结果存储在 **RDS** 中 ### 微软 Azure - 扫描来自 **Azure Container Registry** 的镜像 - 在 **AKS** 上部署 - 使用 **Azure SQL** ### 谷歌云平台 - 扫描来自 **Artifact Registry** 的镜像 - 在 **GKE** 上部署 - 使用 **Cloud SQL** ## 📚 课程信息 - **课程:** 云计算
标签:ArgoCD, AV绕过, Claude, CVE检测, Docker镜像扫描, FastAPI, GitOps, PostgreSQL, React仪表盘, Web截图, 子域名突变, 容器化安全, 容器安全, 微服务安全, 测试用例, 特权提升, 自动化部署, 请求拦截, 镜像漏洞检测