herwonowr/veilence-mx
GitHub: herwonowr/veilence-mx
面向 Python 和 NPM 生态的开源实时供应链监控平台,利用 LLM 对包版本 diff 进行自动化威胁分类与告警。
Stars: 0 | Forks: 0
# Veilence-MX
为 Python 和 NPM 生态系统提供实时供应链监控,并具备由 LLM 驱动的 diff 分析功能。
## 概述
Veilence-MX 监控包生态系统的新发布版本,生成版本间的 diff,并使用 LLM 将代码更改分类为良性、可疑或恶意。威胁会通过警报管理仪表板展示,供安全团队进行分类审查。
包以两种模式进行监控:Top-N(根据下载量自动追踪最受欢迎的包)和手动(用户指定的包)。
## 截图
| | | |
|---|---|---|
|  |  |  |
| 仪表板 | 包 | 版本分析 |
|  |  |  |
| 警报 | 通知 | 设置 |
## 功能
### 包监控
- ✅ 支持 Python 和 NPM 生态系统
- ✅ 根据下载量自动发现 Top-N 包
- ✅ 手动添加包
- ✅ 批量导入(requirements.txt / package.json)
- ✅ 带有批准/拒绝工作流的包建议
- ✅ 阻止/取消阻止包
- ✅ 过期包检测与自动移除
- ✅ 按生态系统、来源、状态进行搜索、排序和过滤
### 版本分析
- ✅ 自动检测新发布版本
- ✅ 生成版本间的统一 diff
- ✅ 由 LLM 驱动的威胁分类(良性、可疑、恶意)
- ✅ 置信度分数与推理说明
- ✅ 每个版本的分析历史
- ✅ 重新分析单个或所有版本
- ✅ 状态追踪(待处理、比对中、分析中、已完成、错误)
### 警报
- ✅ 为可疑和恶意发布版本自动创建警报
- ✅ 分类工作流(新建 -> 已确认 -> 已解决)
- ✅ 严重程度等级(严重、高、中、低)
- ✅ 带有时间线视图的警报备注
- ✅ 按状态、严重程度、生态系统进行搜索和过滤
### 仪表板
- ✅ 概览统计数据(包、发布版本、待处理分析、活动警报)
- ✅ 发布活动图表(时间序列)
- ✅ 分类分布图表
- ✅ 生态系统分布图表
- ✅ 按严重程度划分的警报图表
- ✅ 发布版本状态细分图表
- ✅ 可点击的统计卡片,带导航至已过滤视图
- ✅ 自定义日期范围过滤
### 认证
- ✅ 邮箱/密码注册,支持可选的域名白名单
- ✅ 使用 JWT 登录(access + refresh token)
- ✅ 邮箱验证与重新发送
- ✅ 忘记密码/重置密码流程
- ✅ 修改密码
- ✅ 首次登录强制修改密码
- ✅ 会话管理(列出、撤销)
- ✅ 注册开关(启用/禁用公开注册)
### 工作空间
- ✅ 多租户工作空间隔离
- ✅ 创建、更新、删除工作空间
- ✅ 工作空间切换
- ✅ 成员管理(添加、移除、更改角色)
- ✅ 邀请流程(邀请、接受、拒绝、重新发送、撤销)
### RBAC
- ✅ 四种系统角色:所有者、管理员、成员、查看者
- ✅ 资源-操作权限模型
- ✅ 基于角色的 UI 权限控制(侧边栏、命令面板、操作)
- ✅ API 密钥角色作用域限制
### 通知
- ✅ 带有未读计数的应用内通知
- ✅ 邮件渠道(支持每个渠道单独配置的 SMTP)
- ✅ Slack webhook 渠道
- ✅ 自定义 webhook 渠道
- ✅ 根据警报严重程度设置的路由规则
- ✅ 渠道测试/启用/禁用
- ✅ 批量及全部删除操作
- ✅ 邮件摘要(每日/每周/每月)
### API 密钥
- ✅ 创建密钥并分配角色(查看者、成员、管理员)
- ✅ 支持设置过期日期
- ✅ 列出密钥并追踪上次使用时间
- ✅ 撤销单个密钥
- ✅ 仅显示安全前缀
### 审计日志
- ✅ 所有用户操作的完整操作记录
- ✅ 按操作、资源、用户、日期范围进行过滤
- ✅ IP 地址和 User-Agent 追踪
- ✅ 用于请求追踪的关联 ID
### 队列监控
- ✅ 任务统计概览(待处理、处理中、已完成、已死亡)
- ✅ 按状态查看任务详情
- ✅ 已死亡任务重试(单个及批量)
- ✅ 仅限管理员访问
### 设置
- ✅ 发现扫描深度与间隔
- ✅ 发现自动批准开关
- ✅ 监控轮询间隔
- ✅ 过期自动移除阈值
- ✅ 包数量警告阈值
- ✅ 邮件摘要配置
### LLM 提供商
- ✅ copilot-api(GitHub Copilot 代理,默认)
- ✅ OpenAI
- ✅ Anthropic
- ✅ Ollama(本地)
### UI
- ✅ 命令面板(Cmd+K / Ctrl+K)
- ✅ 深色/浅色/跟随系统主题
- ✅ 响应式布局
- ✅ 交互式新手引导
- ✅ 初始设置向导(首个管理员 + 工作空间)
- ✅ 可折叠侧边栏(带状态持久化)
### 系统
- ✅ 健康与就绪端点
- ✅ 版本报告
- ✅ CSRF 防护
- ✅ 速率限制(auth、API、同步)
- ✅ 输入清理
- ✅ 请求关联 ID
## 技术栈
- **后端:** Go 1.23+, Chi v5, GORM, PostgreSQL 16, Redis 7
- **前端:** Next.js 16 (App Router), React 19, TypeScript, TailwindCSS v4, shadcn/ui
- **LLM:** copilot-api (默认), OpenAI, Anthropic, Ollama
- **认证:** JWT (access + refresh), RBAC (Owner/Admin/Member/Viewer)
- **通知:** Email (SMTP), Slack webhooks, 自定义 webhooks
## 前置条件
- Go 1.23+
- Node.js 22+
- Docker 和 Docker Compose(用于 PostgreSQL + Redis)
- GitHub Copilot 订阅(用于 copilot 提供商),或 OpenAI/Anthropic API 密钥,或本地 Ollama 实例
- 已认证的 GitHub CLI (`gh`) - 仅在配置 copilot 提供商时需要
## 快速开始
### 1. 启动基础设施
```
make db-up
```
### 2. 配置环境
```
cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env.local
```
默认设置适用于本地开发。关键配置项:`REGISTRATION_ENABLED`(默认:false),`ALLOWED_EMAIL_DOMAINS`。
### 3. 启动 copilot-api (LLM 代理)
```
make dev-copilot
```
在 4141 端口启动一个 OpenAI 兼容的代理,通过你的 GitHub Copilot 订阅路由请求。请将其保持在单独的终端中运行。
### 4. 启动后端
```
make dev-backend
```
在 `http://localhost:8080` 启动,自动迁移数据库,并开始轮询生态系统。
### 5. 初始设置
首次运行时,前端会重定向到 `/setup`,你可以在此创建首个管理员用户和工作空间。或者:
```
curl -X POST http://localhost:8080/api/setup/initialize \
-H "Content-Type: application/json" \
-d '{"email":"admin@example.com","password":"yourpassword","firstName":"Admin","lastName":"User","workspaceName":"My Workspace","workspaceSlug":"my-workspace"}'
```
默认情况下公开注册是禁用的。在 `backend/.env` 中设置 `REGISTRATION_ENABLED=true` 以允许公开注册。
### 6. 启动前端
```
cd frontend && npm install
make dev-frontend
```
在 `http://localhost:3000` 启动。
### 多合一启动
```
make dev
```
### Docker (完整技术栈)
```
make docker-up # Build and start all services (dev)
make docker-down # Stop all services
make docker-destroy # Stop and remove all data
make docker-prod-up # Build and start (production)
make docker-prod-down # Stop production services
```
## Makefile 参考
```
# Infrastructure
make db-up # Start PostgreSQL + Redis
make db-down # Stop infrastructure
make db-destroy # Stop and remove all data volumes
# Docker (full stack)
make docker-up # Start full stack (dev)
make docker-down # Stop full stack
make docker-destroy # Stop and remove all data volumes
make docker-build # Build Docker images
make docker-prod-up # Start full stack (production)
make docker-prod-down # Stop production services
# Development
make dev-copilot # Start copilot-api proxy
make dev-backend # Start backend
make dev-frontend # Start frontend
make dev # Start infra + backend + frontend
# Build
make build-backend # Build Go binary
make build-frontend # Build Next.js
make build # Build both
# Lint
make lint-backend # Go vet
make lint-frontend # ESLint
make lint # Lint both
```
## 贡献
1. Fork 本仓库
2. 创建你的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交你的更改 (`git commit -m 'Add amazing feature'`)
4. 推送到该分支 (`git push origin feature/amazing-feature`)
5. 发起一个 Pull Request
## 许可证
[MIT](LICENSE)
标签:AI代码审查, AI风险缓解, GPT, LLM安全分析, NPM包监控, Python包监控, 代码差异分析, 威胁情报, 安全警报管理, 安全运营, 开发者工具, 扫描框架, 搜索引擎查询, 文档安全, 日志审计, 测试用例, 漏洞管理, 自动化攻击, 请求拦截, 防御绕过检测