Jaimin2687/aegis-patch
GitHub: Jaimin2687/aegis-patch
一款利用 LLM 自动检测、修复 JavaScript/Node.js 项目依赖漏洞并生成 PR 的自主安全修补引擎。
Stars: 0 | Forks: 0
```
█████╗ ███████╗ ██████╗ ██╗███████╗ ██████╗ █████╗ ████████╗ ██████╗██╗ ██╗
██╔══██╗██╔════╝██╔════╝ ██║██╔════╝ ██╔══██╗██╔══██╗╚══██╔══╝██╔════╝██║ ██║
███████║█████╗ ██║ ███╗██║███████╗ ██████╔╝███████║ ██║ ██║ ███████║
██╔══██║██╔══╝ ██║ ██║██║╚════██║ ██╔═══╝ ██╔══██║ ██║ ██║ ██╔══██║
██║ ██║███████╗╚██████╔╝██║███████║ ██║ ██║ ██║ ██║ ╚██████╗██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
```
**一个用于生成式智能安全补丁的自主引擎。**
*提交一个代码仓库。我们检测漏洞、合成补丁、运行回归测试,并提交 Pull Request —— 全程无需任何人工干预。*
[](https://nodejs.org/)
[](https://nextjs.org/)
[](https://groq.com/)
[](https://deepmind.google/technologies/gemini/)
[](https://osv.dev/)
[](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代理, 上游代理, 安全, 漏洞修复, 网络安全培训, 网络调试, 自动化, 自定义脚本, 超时处理