unterdacker/venshield
GitHub: unterdacker/venshield
这是一个符合 NIS2 和 DORA 标准的供应商风险管理平台,利用 AI 辅助分析和可追溯的审计日志来简化供应链安全评估流程。
Stars: 0 | Forks: 0
 [](https://github.com/unterdacker/venshield/actions/workflows/ci.yml) [](https://nextjs.org) [](https://www.postgresql.org) [](https://www.docker.com) 
[](https://skillicons.dev)
# Venshield — 主权供应商风险评估平台
Venshield 帮助安全和合规团队管理第三方供应商风险,符合 **NIS2** 和 **DORA** 的要求。它用一个可审计的工作区取代了分散的电子表格和收件箱,覆盖供应商入驻、问卷执行、AI 辅助文档分析、证据审查和补救跟踪。
### 主要优势
- **符合 NIS2 和 DORA 标准** — 结构化的供应商问卷、控制可追溯性以及与 NIS2 第 21 条供应链义务保持一致的补救工作流。
- **数据驻留欧洲** — AI 分析通过 [Ollama](https://ollama.com/) 在您自己的基础设施上运行,或由欧盟托管的提供商提供。不向美国云服务发送任何评估数据。
- **符合欧盟 AI 法案设计** — 每一项 AI 辅助操作均可追溯、可由人工审查并记录在案。开箱即用即可满足透明度和监管要求。
- **加密审计跟踪** — 针对所有合规事件的防篡改监管链,可导出给审计员和监管机构。
- **支持气隙环境** — 完全可自托管,无强制外部依赖。
- **企业级 SSO(高级版)** — 支持 PKCE 的 OIDC 单点登录、实时用户配置以及按公司配置身份提供商。仅限高级版计划。
- **高级报告(高级版)** — AI 生成的合规报告,支持一键导出 PDF、高管摘要和内置报告编辑器。仅限高级版计划。
**技术栈:** Next.js 15.1 · React 19 · TypeScript 5.7 · Prisma 6 · PostgreSQL 16 · Tailwind CSS 3 · Radix UI · next-intl 4
## 截图
新截图正在准备中。以下是五个关键屏幕的概览,稍后将提供可视化文档。
### 1 — 仪表板:供应链风险一目了然
供应商组合的任务控制概览:NIS2 合规评分汇总、待处理和已完成评估计数器、类别合规雷达图、按风险分布的供应商条形图,以及 AI 生成的高管风险摘要。这是安全和合规团队开始晨检的理想首屏。
### 2 — 供应商评估工作区:NIS2 审查一站式
实时供应商评估的内部审计师视图:20 个 NIS2 控制问题(含 AI 预填答案)、嵌入式证据文档查看器、侧边栏合规评分面板以及补救操作面板。完全取代了电子表格和收件箱的工作流。
### 3 — 审计跟踪:加密监管链
每一个合规事件 —— 登录、评估、文件上传、AI 操作、角色变更 —— 均进行哈希链式处理、添加时间戳、截断 IP 并可导出供监管机构使用。直观展示内置的 NIS2 第 21 条、DORA 第 9 条和欧盟 AI 法案第 12/14 条就绪状态。
### 4 — 高级报告:AI 合规报告与 PDF 导出 *(高级版)*
报告仪表板,列出了所有生成的合规报告。打开报告可查看 AI 撰写的高管摘要、分类别风险细目,以及用于与董事会、审计员和监管机构分享的一键 PDF 导出按钮。仅限高级版计划。
### 5 — 企业级 SSO:身份提供商配置 *(高级版)*
**设置 → SSO** 管理面板,管理员可在此配置 OIDC 颁发者 URL、客户端凭据以及实时配置规则(包括电子邮件域名允许列表)。企业级身份管理,具备完整的加密审计跟踪。仅限高级版计划。
## 快速开始
**前置条件:** Node.js 20+、npm 10+、Docker Desktop
```
git clone https://github.com/unterdacker/venshield.git
cd venshield
npm install
```
创建 `.env`:
```
DATABASE_URL="postgresql://postgres:postgres@localhost:5432/venshield?schema=public"
```
```
docker-compose up -d
npx prisma generate
npx prisma db push
npx prisma db seed
npm run dev
```
打开 `http://localhost:3000`。
## 演示账号(仅限开发环境)
| 角色 | 邮箱 | 密码 |
|---------|----------------------------|------------|
| Admin | `admin@venshield.local` | `admin123` |
| Auditor | `auditor@venshield.local` | `auditor123` |
## 命令
```
npm run dev # development server
npm run build # production build
npm run test # unit tests (Vitest)
npm run test:e2e # E2E tests (Playwright)
npm run test:coverage # unit tests with coverage report
npm run lint # linter
npm run audit:verify-chain # audit trail integrity
npm run audit:tamper-test # forensic tamper simulation
npm run env:validate # environment validation
npm run db:migrate # create and apply a named migration
npm run db:push # push schema without a migration file (dev only)
npm run db:seed # re-seed demo data
npm run db:studio # open Prisma Studio
```
## 集成
Venshield 与以下外部服务集成。除 PostgreSQL 外,所有服务均为可选 —— 平台完全支持在气隙环境下运行,其他类别均有本地回退方案。
### 邮件
| 提供商 | 类型 | 链接 |
|---|---|---|
| **SMTP** | 任何符合 RFC 5321 的中继(如 Postfix、AWS SES、Mailgun) | — |
| **Resend** | SaaS 邮件 API,对开发者友好 | [resend.com](https://resend.com) |
| **Mailpit** | 本地开发 SMTP 陷阱(仅限开发环境,生产环境已阻止) | [mailpit.axllent.org](https://mailpit.axllent.org) |
配置方式:`MAIL_STRATEGY=smtp|resend|log`
### 短信
短信用于 MFA 令牌传递。所有支持的提供商均为符合 GDPR 的欧盟公司。
| 提供商 | 总部 | 链接 |
|---|---|---|
| **46elks** | 瑞典 | [46elks.com](https://46elks.com) |
| **Sinch** | 瑞典 | [sinch.com](https://www.sinch.com) |
| **Infobip** | 克罗地亚 / 欧盟 | [infobip.com](https://www.infobip.com) |
配置方式:`SMS_PROVIDER=46elks|sinch|infobip`
### AI / LLM
所有 AI 分析均在您控制的基础设施上运行。不向美国云服务发送任何评估数据。
| 提供商 | 类型 | 链接 |
|---|---|---|
| **Ollama** | 自托管、本地 LLM 推理 | [ollama.com](https://ollama.com) |
| **Mistral AI** | 欧盟托管的 SaaS LLM | [mistral.ai](https://mistral.ai) |
配置方式:`AI_PROVIDER=local|mistral`
### 对象存储
| 提供商 | 类型 | 链接 |
|---|---|---|
| **本地文件系统** | 默认 —— 无需配置 | — |
| **AWS S3** | 托管云对象存储 | [aws.amazon.com/s3](https://aws.amazon.com/s3) |
| **MinIO** | 自托管 S3 兼容存储 | [min.io](https://min.io) |
| **任何 S3 兼容服务** | Hetzner Object Storage、Backblaze B2、Cloudflare R2 等 | — |
配置方式:`S3_ENDPOINT`、`S3_BUCKET`、`S3_ACCESS_KEY_ID`、`S3_SECRET_ACCESS_KEY`
### 身份提供商 (SSO) *(高级版)*
Venshield 支持通过 PKCE 集成任何符合 [OpenID Connect](https://openid.net/connect/) 标准的身份提供商。
| 提供商 | 链接 |
|---|---|
| **Microsoft Entra ID** (Azure AD) | [microsoft.com/entra](https://www.microsoft.com/en-us/security/business/microsoft-entra) |
| **Okta** | [okta.com](https://www.okta.com) |
| **Keycloak** | [keycloak.org](https://www.keycloak.org) |
| **Google Workspace** | [workspace.google.com](https://workspace.google.com) |
| **Auth0** | [auth0.com](https://auth0.com) |
| **任何符合 OIDC 的 IdP** | — |
通过 **设置 → SSO**(高级版计划)按公司配置。
## 计划
| 计划 | 描述 |
|------|-------------|
| **免费版** | 完全访问 NIS2 问卷、供应商门户、AI 分析、审计跟踪和仪表板。 |
| **高级版** | 包含免费版所有功能,外加 **OIDC/SSO**(带实时配置的单点登录)、**高级报告**(AI 合规报告、PDF 导出、高管摘要)以及优先支持。 |
## 文档
完整文档可在 [wiki](docs/wiki/Home.md) 中获取:
- [入门指南](docs/wiki/Getting-Started.md)
- [架构概览](docs/wiki/Architecture-Overview.md)
- [企业功能(SSO 与高级报告)](docs/wiki/Enterprise-Features.md)
- [部署](docs/wiki/Deployment.md)
- [安全架构](docs/wiki/Security-Architecture.md)
## 高级版分发
高级版计划作为托管在 **GitHub Container Registry (GHCR)** 上的预构建 Docker 镜像提供。付费客户将获得为其组织授予的镜像拉取权限。无需管理许可证文件 —— 访问权限在注册表级别控制。
[联系我们](mailto:venshield@proton.me) 以订阅。有关详细信息,请参阅 [企业功能](docs/wiki/Enterprise-Features.md)。
标签:Docker, DORA, EU AI Act, JSONLines, LLM评估, NIS2, OIDC, Ollama, PostgreSQL, Prisma, Redis, SSO, TypeScript, 人机协同, 供应商风险管理, 取证审计日志, 安全插件, 安全防御评估, 数据主权, 文档分析, 本地AI, 欧盟AI法案, 测试用例, 离线部署, 第三方风险评估, 网络安全合规, 自动化攻击, 自托管, 请求拦截, 零信任, 风控仪表盘