返回更新列表
新发布Aug 12, 2026

isms-builder v1.37.2

自托管的信息安全管理体系 — ISO 27001、NIS2、GDPR/DSGVO、BSI IT-Grundschutz

分享

ISMS Builder Banner

ISMS Builder

自托管信息安全管理体系 — 开源,无需云端

CI Tests License: AGPL-3.0 Node.js Version


⚠️ 安全警告:假冒仓库与分发恶意软件的副本

ISMS Builder 没有任何打包的"发行版"、安装程序或可下载的 ZIP 文件 — 唯一 合法的来源是本仓库,即以纯源代码形式直接从 GitHub 克隆或下载。 我们已知至少有一个冒充本项目的恶意仓库(伪造 README、伪造"下载"按钮指向伪装成截图的 ZIP,其中包含 Windows 恶意软件加载器 — .cmd.exe → Lua-DLL 载荷链)。 请勿从本仓库以外的任何地方下载或运行任何 "isms_builder" ZIP/安装程序/exe。 如果您发现冒充本项目的可疑仓库或网站,请提交 issue 或发起 discussion,以便我们进行标记。


状态:积极开发中 — 尚未完工。 核心模块已可正常使用并投入实际运行,但部分功能尚不完整, 平台仍在持续发展。非常欢迎贡献、反馈和真实环境测试 — 这正是本项目开源的原因。


什么是 ISMS Builder?

ISMS Builder 是一个用于管理信息安全管理体系(ISMS)的自托管 Web 平台。 它覆盖完整的合规生命周期 — 从方针编写到审核证据 — 适用于 ISO 27001:2022、NIS2、 GDPR/DSGVO、BSI IT-Grundschutz 及其他框架。

无需云端。无 SaaS 费用。您的数据保留在您自己的服务器上。

专为需要真正 ISMS 工具、又不想签五位数厂商合同的中小企业、IT 团队和顾问而设计。


预期用途与范围

本项目最初是为一位置身实际工作的 ISMS 从业者打造的工作工具,并由此发展而来。它之所以 开源,是因为这项工作可能对他人有用 — 而不是因为它是一个伪装成开源产品的商业项目。 把这一点讲清楚,有助于您判断它是否适合您的情况。

**它的设计目标。**一个规模较小的 ISMS 团队 — 通常只有一个人,有时也就几个人 — 负责编写 和维护管理体系的文档:方针、风险、资产、控制措施、证据。需要账号的人数预计会一直很少。 无需账号也能触达大量受众:方针确认以基于令牌的链接发送,收件人无需登录即可阅读和确认文档, 也不会出现在任何用户列表中。

**它对你的要求。**ISMS Builder 是自托管的,由此带来的一切都归您负责:部署、TLS、加固、 备份、更新、访问控制,以及您在其中存储任何数据所对应的数据保护义务。本项目提供一套合理的 默认配置,而不是托管服务。

**它不是什么。**没有托管式 SaaS 服务,没有商业支持合同,也没有服务水平协议。它不是多租户 托管产品。它不会让您获得任何标准的认证,也不是法律建议 — 它帮助您组织和证明相关工作, 但评估仍由您和您的审核员负责。

**谁在维护它。**一个人,利用全职工作之余的时间。Issue 和讨论都会被阅读并回复,通常几天 之内;安全报告会被优先处理。功能请求非常欢迎,并确实会影响路线图,但它们要与有限的业余 时间竞争。如果您的组织依赖固定的时间表或保证的响应,那么商业厂商是诚实的建议 — 这不是 回避本项目的理由,只是需要现实地做好规划。


截图

登录仪表盘
登录仪表盘
适用性声明风险管理
SoA风险
GDPR 与数据保护资产管理
GDPR资产
指南与文档报告
指南报告

运行 npm start 并打开 https://localhost:3000,即可在本地探索完整的演示数据集。


功能概览

模块描述适用标准
方针管理模板增删改查、版本管理、生命周期(草稿 → 评审 → 已批准 → 已归档)、空间层级、附件ISO 27001 §5
适用性声明8 个框架、313 项控制措施,支持内联编辑、差距分析、交叉映射ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA
风险管理风险登记册、处理计划、审核员角色ISO 27001 §6.1
安全目标带进度条的 KPI 跟踪、日历集成ISO 27001 §6.2
GDPR 与隐私VVT(处理活动目录)、AV 合同(委托处理协议)、DSFA(数据保护影响评估)、TOMs(技术与组织措施)、DSAR 队列、72 小时计时器、带邮件提醒的删除日志DSGVO Art. 13–35
资产管理资产登记册、可编辑资产类型、保护目标(CIA + 真实性)及依赖继承、分级分类、EoL(生命周期结束)跟踪ISO 27001 A.5.9–5.12
BCM / BCP业务影响分析、连续性计划、演练ISO 27001 A.5.29–5.30 / NIS2
培训记录培训目录、完成情况跟踪、证书上传ISO 27001 A.6.3
供应商管理供应商登记册、审核排程、风险评估ISO 27001 A.5.19–5.22
法律与合同合同、保密协议(NDA)、隐私政策、到期日历
事件收件箱CISO 收件箱 + 公开举报表单(无需登录)NIS2 / BSI
治理管理评审、行动跟踪ISO 27001 §9.3
报告合规矩阵(控制措施 × 实体)、差距报告、评审周期、CSV 导出
审核发现发现登记册(IST→SOLL→风险→建议)、行动计划、严重性/状态跟踪、FIND-YYYY-NNNN 引用ISO 27001 §9.2
可追溯性每条记录均链接到 SoA 控制措施与方针文档 — 双向关联
语义搜索通过 Ollama(nomic-embed-text)进行本地 AI 语义搜索,并提供关键词搜索回退
多实体企业结构树、控制措施与方针的按实体适用性
多语言界面与演示数据完整界面与演示内容支持 🇩🇪 德语 / 🇬🇧 英语 / 🇫🇷 法语 / 🇳🇱 荷兰语;管理员可配置可用语言

⚠ 重要:ISO 控制措施需要管理员手动安装

ISO 27001:2022、ISO 9000:2015 和 ISO 9001:2015 是国际标准化组织(ISO,© ISO)发布的 受版权保护的标准。其控制措施定义(标题、描述、要求文本)未包含在本软件中,未经有效的 ISO 许可不得重新分发。

这在实践中意味着什么: ISO 27001、ISO 9000 和 ISO 9001 的 SoA 模块在交付时不包含控制措施内容。 管理员在启用这些框架之前必须手动导入控制措施:

  1. iso.org 或授权的国家标准机构获取标准的有许可副本
  2. 准备一个包含控制措施定义的 JSON 文件(格式见 scripts/import-iso-controls.sh 文档)
  3. 运行导入脚本:
    bash scripts/import-iso-controls.sh path/to/iso-controls.json
    
  4. 重启 ISMS Builder 服务器

开箱即用的框架(无需 ISO 许可): BSI IT-Grundschutz、欧盟 NIS2、EUCS、欧盟《人工智能法案》和 CRA 基于公开可用的 欧盟立法和德国联邦出版物,已完整预装。

在未获得相应标准有效许可的情况下运行 ISO 框架模块,其全部责任由运营者承担。 ISMS Builder 项目及其贡献者不对未经许可使用受 ISO 保护的内容承担任何责任。


快速开始

git clone https://github.com/coolstartnow/isms-builder.git
cd isms-builder
npm install
cp .env.example .env          # set JWT_SECRET to a long random string
npm start                     # http://localhost:3000

使用 [email protected] / adminpass 登录。首次登录时,系统会提示您选择演示数据语言 (🇩🇪 德语 / 🇬🇧 英语 / 🇫🇷 法语 / 🇳🇱 荷兰语)或从空系统开始。请立即修改管理员密码。

用于 HTTPS 生产环境:

# .env
JWT_SECRET=your-very-long-random-secret
STORAGE_BACKEND=json
SSL_CERT_FILE=/etc/ssl/certs/your.crt
SSL_KEY_FILE=/etc/ssl/private/your.key

**用演示数据评估完后准备上线?**请运行交互式生产准备工具,而不是全新安装 — 它会按模块 (或一次性)清除演示/测试内容,因此您已经录入的真实数据(如风险、资产)无需重新录入:

bash stop.sh
node scripts/prepare-production.js
bash start.sh

在任何更改之前,它始终会创建备份(data.bak.<timestamp>/,位于您的 data/ 目录旁边), 并且绝不会修改 STORAGE_BACKEND — 这与应用内的"演示重置"管理员操作不同,后者面向演示实例, 并且出于历史原因仍会切换到 sqlite(参见 Issue #42)。


Docker

docker compose up -d --build
# App runs at http://localhost:3000

系统要求

  • Node.js 18+(已测试:18、20、22)
  • npm 9+
  • (可选)Docker + Docker Compose
  • (可选)Ollama 用于本地 AI 语义搜索

配置(.env

变量默认值说明
JWT_SECRET(必填)JWT 签名密钥 — 请使用 32 个以上随机字符
PORT3000HTTP/HTTPS 监听端口
STORAGE_BACKENDjsonjson(开发/演示)或 sqlite(生产)
SSL_CERT_FILETLS 证书路径 → 启用 HTTPS
SSL_KEY_FILETLS 私钥路径
DATA_DIR./data覆盖数据目录(Docker 卷)
SMTP_HOST用于邮件提醒的 SMTP 服务器
SMTP_PORT587SMTP 端口
SMTP_USERSMTP 用户名
SMTP_PASSSMTP 密码
SMTP_FROM通知的发件人地址

架构

server/
  index.js          — Express app setup, router mounts
  auth.js           — JWT auth, RBAC ranks, session
  routes/           — 17 Express route modules (one per domain)
  db/               — Data stores (jsonStore / sqliteStore / orgSettingsStore / …)
  ai/               — Semantic search (embedder, embeddingStore, lexicalSearch)
  reports.js        — Report generation logic
ui/
  index.html        — SPA shell (Atlassian Dark Theme)
  app.js            — All render functions, ~6000 lines vanilla JS
  style.css         — CSS variables, dark theme
data/               — JSON files / SQLite DB (gitignored)
docs/
  ISMS-build-documentation.md  — Full architecture reference
  architecture/                — C4 diagrams, data model, OpenAPI 3.0.3 spec
tests/              — Jest + Supertest (176 tests, --runInBand)
  • **认证:**JWT Cookie(sm_session)、bcrypt 密码、TOTP 双重认证(可在全组织强制启用)
  • RBAC:readereditor / dept_headcontentowner / auditoradmin
  • **持久化:**JSON 文件(默认/演示)或通过 better-sqlite3 使用 SQLite
  • **AI:**可选的本地 Ollama(nomic-embed-text);始终提供关键词搜索作为回退方案
  • **审计日志:**记录所有创建/更新/删除/登录操作,可筛选、可导出

有关 C4 图、完整数据模型和 OpenAPI 3.0.3 规范(80+ 端点),请参阅 docs/architecture/


运行测试

注意:tests/ 目录下的测试套件是作者个人的开发测试,随项目一起发布以保证透明度。 它不是应用程序本身的组成部分,也不是运行应用所必需的。测试覆盖内部 API 行为,并使用 仅存在于隔离测试环境中的硬编码测试凭据 — 它们与任何生产或演示数据无关。

npm test                  # runs all 423 tests
npm run preflight         # exactly what CI gates on (tests + pinning + audit)
npm test -- --verbose     # with test names

测试使用隔离的临时目录 — 不会触碰生产数据。


参与贡献

非常欢迎贡献!请参阅 CONTRIBUTING.md 了解:

  • 开发环境搭建(5 分钟即可运行首个测试)
  • 代码风格与约定
  • 如何提交高质量的 issue 或 PR

**发现了安全问题?**请勿公开提交 issue — 请使用 私有漏洞报告SECURITY.md 描述了范围、安全港条款以及您可以合理预期的内容。

适合新手的议题在问题跟踪器中标记为 good first issue


路线图

状态功能
✅ 已完成语义搜索(Ollama / nomic-embed-text)
✅ 已完成SQLite 后端、Docker、CI/CD
✅ 已完成GDPR 删除日志邮件提醒
✅ 已完成多语言演示包(德语 / 英语 / 法语 / 荷兰语)
✅ 已完成带行动计划的审核发现模块(V 1.37.2.0)
✅ 已完成法语/荷兰语指南翻译 + 管理员语言配置(V 1.37.2.0)
✅ 已完成MariaDB/MySQL 后端(STORAGE_BACKEND=mariadb,V 1.37.2.1)
✅ 已完成扫描器 → 风险草稿(Greenbone/OpenVAS XML + PDF 导入,V 1.37.2.0)
✅ 已完成方针确认 — 员工以数字方式确认方针并保留审计追踪(V 1.37.2.0)
✅ 已完成指南增删改查 — 创建、编辑和上传自己的文档(V 1.37.2.0)
✅ 已完成指南搜索 — 跨类别全文搜索并显示摘要(V 1.37.2.0)
✅ 已完成资产保护目标 — CIA + 真实性(1–4)、依赖关系及 BSI 最大原则继承(V 1.37.2.0)
✅ 已完成NIS2 第 21 条治理检查清单(30 项)及第 23 条报告截止日期自动提醒(V 1.37.2.0)
🔜 下一步AI 方针助手 — Ollama 根据标题 + 框架起草方针内容
🔜 下一步定时报告 — 通过邮件发送每周/每月合规报告
🔜 下一步PostgreSQL 后端
🔜 下一步审计日志异常检测(LLM 批处理)
🚀 后续定量风险评分(€ 数值,受 FAIR 启发)
🚀 后续审核员协作门户 — 为审核员提供外部只读访问
🚀 后续ownCloud / Nextcloud 集成
🚀 后续方针差距分析(LLM)
🏁 V 2.x可配置的指南类别 — 管理员可定义自定义类别(例如工作流、组织文档)

关于作者

Claude Hecker 在 IT 领域工作了 35 年以上。在担任 CIO 约 15 年后,他转任 CISO 和数据保护官 (DSO/DSB)。在其职业生涯中,他曾为一家欧洲大型企业设计和实施了企业级 IT 基础设施和广域网连接 (VPN、MPLS)— 负责跨多个站点和司法管辖区的可靠、安全运营。

ISMS Builder 正是直接源于这段经历:在真实世界中、经历真实审核、承受真实监管压力的情况下构建和 维护合规的 ISMS。这个工具反映的是从业者的实际需求 — 而不是产品经理臆想的需求。

为什么开源? 中小企业理应无需五位数的许可证费用即可使用合适的 ISMS 平台。无论您选择哪种工具,上手成本都 客观存在 — 但这一成本不应再叠加供应商锁定或数据离开自有基础设施的代价。本项目代表着软件自由, 以及"您的合规数据属于您自己"这一原则。


标准引用声明

本软件引用已发布标准中的控制措施标识符和简短标题,仅用于互操作性和合规管理目的。

  • ISO/IEC 27001、ISO 9000、ISO 9001 是国际标准化组织(ISO)发布的标准。这些标准的 控制措施定义未包含在本软件发行版中 — ISO 版权不允许重新分发控制措施文本。用户必须 自行提供 JSON 文件(参见上文和 scripts/import-iso-controls.sh)。标准文本必须从 ISO 或授权的国家分销商处获取。
  • BSI IT-Grundschutz 材料由德国联邦信息安全办公室(BSI)发布,可在 bsi.bund.de 免费获取。
  • **NIS2、CRA、EUCS、欧盟《人工智能法案》**是欧盟立法法案,可通过 eur-lex.europa.eu 公开获取。

许可证

Copyright (C) 2026 Claude Hecker

本程序是自由软件,采用 GNU Affero 通用公共许可证 v3.0 授权。

如果您以网络服务形式运行修改版本,必须向该服务的用户提供完整源代码(AGPL §13)。

本项目包含采用 MIT、BSD-2-Clause 和 Apache-2.0 许可证的第三方组件。有关完整的署名和许可证 文本,请参阅 THIRD-PARTY-LICENSES.md

分类