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(根据下载量自动追踪最受欢迎的包)和手动(用户指定的包)。 ## 截图 | | | | |---|---|---| | ![Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4a282b3953032954.png) | ![Packages](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b2b120d9be032956.png) | ![Release Analysis](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/15ad134a13032958.png) | | 仪表板 | 包 | 版本分析 | | ![Alerts](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/f0edae0ba0033000.png) | ![Notifications](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/2a305f575d033002.png) | ![Settings](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/3357542d8f033004.png) | | 警报 | 通知 | 设置 | ## 功能 ### 包监控 - ✅ 支持 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包监控, 代码差异分析, 威胁情报, 安全警报管理, 安全运营, 开发者工具, 扫描框架, 搜索引擎查询, 文档安全, 日志审计, 测试用例, 漏洞管理, 自动化攻击, 请求拦截, 防御绕过检测