Jaimin2687/aegis-patch

GitHub: Jaimin2687/aegis-patch

一款利用 LLM 自动检测、修复 JavaScript/Node.js 项目依赖漏洞并生成 PR 的自主安全修补引擎。

Stars: 0 | Forks: 0


``` █████╗ ███████╗ ██████╗ ██╗███████╗ ██████╗ █████╗ ████████╗ ██████╗██╗ ██╗ ██╔══██╗██╔════╝██╔════╝ ██║██╔════╝ ██╔══██╗██╔══██╗╚══██╔══╝██╔════╝██║ ██║ ███████║█████╗ ██║ ███╗██║███████╗ ██████╔╝███████║ ██║ ██║ ███████║ ██╔══██║██╔══╝ ██║ ██║██║╚════██║ ██╔═══╝ ██╔══██║ ██║ ██║ ██╔══██║ ██║ ██║███████╗╚██████╔╝██║███████║ ██║ ██║ ██║ ██║ ╚██████╗██║ ██║ ╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝ ``` **一个用于生成式智能安全补丁的自主引擎。** *提交一个代码仓库。我们检测漏洞、合成补丁、运行回归测试,并提交 Pull Request —— 全程无需任何人工干预。*
[![Node.js](https://img.shields.io/badge/Node.js-18+-green?style=flat-square&logo=node.js)](https://nodejs.org/) [![Next.js](https://img.shields.io/badge/Next.js-15-black?style=flat-square&logo=next.js)](https://nextjs.org/) [![Groq](https://img.shields.io/badge/Groq-Llama%203.3-orange?style=flat-square&logo=groq)](https://groq.com/) [![Gemini](https://img.shields.io/badge/Gemini-2.5%20Flash-blue?style=flat-square&logo=google)](https://deepmind.google/technologies/gemini/) [![OSV.dev](https://img.shields.io/badge/OSV.dev-Vulnerability%20DB-red?style=flat-square)](https://osv.dev/) [![Tailwind](https://img.shields.io/badge/Tailwind-v4-teal?style=flat-square&logo=tailwindcss)](https://tailwindcss.com/)
## 什么是 AEGIS-PATCH? AEGIS-PATCH 本质上**取代了耗时数小时的手动漏洞分类和修补**,它充当了一名自主安全工程师。它能持续监控、识别并解决您的 JavaScript/Node.js 代码仓库中的依赖项和代码级别的漏洞。 您只需输入一个 GitHub 仓库 URL,AEGIS-PATCH 就会执行一个完整的流水线: - 直接根据 lockfile 生成**依赖图** - 将包与实时的 **OSV.dev 漏洞数据库**进行交叉比对 - 将存在漏洞的源文件输送至**4 层 LLM 故障转移引擎**,以合成安全、直接可替换的代码 - 执行本地**回归测试**,以确保补丁不会破坏现有功能 - 自动推送修补后的代码,并**生成 GitHub Pull Request** - 将整个过程实时流式传输到一个精美的**类 IDE 仪表板** ## ✨ 核心功能集 ### 🧠 4 层 LLM 故障转移引擎(高可用性补丁) 补丁合成需要高正常运行时间和深度推理。AEGIS-PATCH 采用级联故障转移架构,确保即使主要 API 达到速率限制或遇到停机,也能始终生成补丁。 **路由:** Groq (`llama-3.3-70b-versatile`) → Cerebras → Gemini (`gemini-2.5-flash`)。 ### 🔍 深度 OSV 扫描器 AEGIS-PATCH 并非仅仅依赖 `npm audit`,而是直接解析 `package-lock.json` lockfile 以构建高度精确的依赖图。它将这些依赖项分批,并查询开源漏洞 (OSV.dev) 数据库,以提取精确的 CVSS 分数、受影响范围和 CVE 标识符。 ### 🛠️ 智能补丁合成 一旦发现漏洞,AEGIS-PATCH 就会定位该包源代码中确切的漏洞入口点。它将原始代码、CVE 详情和严格的约束条件输入 LLM 引擎,以合成**语义等效但安全的**替代代码。 ### 🛡️ 回归引擎 如果补丁破坏了构建,那么它就是无用的。AEGIS-PATCH 会在隔离的临时目录中,针对新修补的代码运行仓库的原生测试套件(`npm test`、Mocha、Jest)。如果测试失败,它会捕获 `stderr`,将其反馈给 LLM,并不断迭代直到测试通过。 ### 🔄 自动 PR 生成 无需任何人工干预。一旦测试通过,AEGIS-PATCH 就会配置安全的远程仓库,将修补后的代码提交到一个新分支,推送到 GitHub,并使用 GitHub REST API 创建一个详细的 Pull Request,概述已修复的 CVE、CVSS 分数和测试结果。 ### 💻 实时执行仪表板 观察自主 agent 工作。Next.js 前端通过 WebSockets 连接,以流式传输实时的流水线日志、当前阶段指示器(CLONING → SCANNING → PATCHING → TESTING → COMPLETE),以及在发现漏洞时展示严重程度和 CVSS 分数的动态漏洞卡片。 ## 🛠️ 技术栈 ### ⚡ 后端与基础设施 | 层级 | 技术 | |---|---| | 服务器运行时 | Node.js (原生 `http` + 事件驱动架构) | | 实时通信 | `ws` (WebSockets) | | 编排 | 原生子进程 (`execFile`) 实现安全隔离 | | HTTP 客户端 | `undici` (高性能 fetch) | ### 🎨 前端与 UI | 层级 | 技术 | |---|---| | 框架 | Next.js 15 (App Router) | | 样式 | Tailwind CSS v4 | | 主题 | 深空暗色模式,毛玻璃效果,脉冲动画 | | 状态 | React Hooks (`useEffect`, `useState`) + 自定义 WebSocket hooks | ### 🧠 智能与数据 | 层级 | 技术 | |---|---| | 漏洞数据库 | OSV.dev REST API | | LLM 编排 | 自定义故障转移流水线 (Groq, Cerebras, Gemini) | | Git 集成 | `simple-git` + Octokit (GitHub API) | ## 🗺️ 流水线架构 ``` graph TD A[Frontend UI] -->|POST Repo URL| B(Pipeline Orchestrator) B --> C[Repo Ingestor] C -->|Clone & Parse Lockfile| D[Vuln Scanner] D -->|OSV.dev Batch Query| E{Vulns Found?} E -->|No| F[Complete Pipeline] E -->|Yes| G[Patch Synthesizer] G -->|Extract vulnerable code| H[LLM Failover Engine] H -->|Groq / Cerebras / Gemini| I[Synthesize Patch] I --> J[Regression Engine] J -->|npm test| K{Tests Pass?} K -->|No - retry limit| H K -->|Yes| L[PR Generator] L -->|Push & Create PR| F ``` ## 🏗️ 项目结构 ``` . ├── backend/ │ ├── server.js # HTTP + WebSocket entry point │ ├── src/ │ │ ├── core/ # Config, Pipeline Orchestrator, EventBus │ │ ├── llm/ # Prompts, Failover logic, Provider integrations │ │ ├── modules/ # Ingestion, Scanning, Patching, Regression, PRs │ │ └── utils/ # Logger, Process Runner, depGraph parser │ └── temp/ # Isolated clone directories (auto-cleaned) │ ├── frontend/ │ ├── src/ │ │ ├── app/ # Next.js App Router (page.js, globals.css, layout) │ │ ├── components/ # Terminal, StatusPanel, VulnCard, UrlInput │ │ └── lib/ # WebSocket hook, Log formatters │ └── public/ # Static assets │ └── task-distribution.md # Internal team task tracking ``` ## 🚀 快速开始 ### 前置条件 - **Node.js** 18+ - **Git** 已安装并添加到 PATH 中 - **GitHub Personal Access Token**(具有 `repo` 权限范围) - 至少一个 **LLM API Key**(Groq、Cerebras 或 Gemini) ### 1. 克隆与安装 ``` git clone https://github.com/Jaimin2687/aegis-patch.git cd aegis-patch ``` 安装后端依赖: ``` cd backend npm install ``` 安装前端依赖: ``` cd ../frontend npm install ``` ### 2. 环境配置 在 `backend/` 目录下,创建一个 `.env` 文件: ``` # LLM API 密钥(均为免费层级) GROQ_API_KEY=gsk_your_key_here GEMINI_API_KEY=AIzaSy_your_key_here CEREBRAS_API_KEY=csk-your_key_here # GitHub Personal Access Token(repo scope - 打开 PR 所需) GITHUB_TOKEN=ghp_your_token_here # Server 配置 PORT=3001 FRONTEND_URL=http://localhost:3000 # Pipeline 配置 MAX_RETRIES=5 TEST_TIMEOUT_MS=30000 MAX_MEMORY_MB=512 ``` ### 3. 本地运行 您需要同时运行后端和前端。 **启动后端(端口 3001):** ``` cd backend npm start ``` **启动前端(端口 3000):** ``` cd frontend npm run dev ``` 在浏览器中打开 `http://localhost:3000`。粘贴一个有漏洞的仓库 URL,然后看着 AEGIS-PATCH 开始工作。
**为现代安全架构师而生。专注于产品交付,让 AI 处理补丁。** *AEGIS-PATCH — © 2026 版权所有*
标签:DevSecOps, MITM代理, 上游代理, 安全, 漏洞修复, 网络安全培训, 网络调试, 自动化, 自定义脚本, 超时处理