
isms-builder v1.37.2
자체 호스팅 정보보안 관리 시스템 — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz

ISMS Builder
자체 호스팅 정보 보안 관리 시스템 — 오픈 소스, 클라우드 불필요
⚠️ 보안 경고: 악성코드를 배포하는 가짜 리포지토리 및 복제본
ISMS Builder에는 패키지된 "릴리스", 설치 프로그램, 다운로드 가능한 ZIP 파일이 없습니다 — 유일한 정식 소스는 이 리포지토리로, GitHub에서 일반 소스 코드로 직접 클론하거나 다운로드할 수 있습니다. 현재 이 프로젝트를 사칭하는 악성 리포지토리가 최소 하나 이상 존재한다는 것을 알고 있습니다 (가짜 README, 스크린샷으로 위장한 ZIP으로 연결되는 가짜 "Download" 버튼, Windows 악성코드 로더 —
.cmd→.exe→ Lua-DLL 페이로드 체인 포함). 이 리포지토리가 아닌 다른 곳에서 "isms_builder" ZIP/설치 프로그램/exe를 다운로드하거나 실행하지 마십시오. 이 프로젝트를 사칭하는 의심스러운 리포지토리나 사이트를 발견하면 issue 또는 discussion을 열어 알려주시면 표시해 두겠습니다.
상태: 활발한 개발 중 — 아직 완성된 제품이 아닙니다. 핵심 모듈은 기능하며 사용 중이지만 일부 기능은 아직 완성되지 않았고 플랫폼은 계속 성장하고 있습니다. 기여, 피드백, 실제 환경 테스트를 매우 환영합니다 — 이것이 바로 이 프로젝트를 오픈 소스로 공개한 이유입니다.
ISMS Builder란?
ISMS Builder는 정보 보안 관리 시스템(ISMS)을 관리하기 위한 자체 호스팅 웹 플랫폼입니다. ISO 27001:2022, NIS2, GDPR/DSGVO, BSI IT-Grundschutz 및 기타 프레임워크에 대해 정책 작성부터 감사 증거까지 전체 컴플라이언스 수명 주기를 다룹니다.
클라우드 없음. SaaS 비용 없음. 데이터는 서버에 그대로 유지됩니다.
5자리수 벤더 계약 없이 실제 ISMS 도구가 필요한 중소기업, IT 팀, 컨설턴트를 위해 설계되었습니다.
사용 목적 및 범위
이 프로젝트는 한 명의 ISMS 실무자를 위한 작업 도구로 시작해 여기까지 성장했습니다. 다른 사람들에게 유용할 수 있기 때문에 오픈 소스로 공개된 것이지, 상업 제품을 위장한 것이 아닙니다. 이를 명확히 하는 것이 이 프로젝트가 자신의 상황에 맞는지 판단하는 데 도움이 됩니다.
어떤 용도로 만들어졌는가. 하나의 관리 시스템에 대한 문서(정책, 위험, 자산, 통제, 증거)를 작성하고 유지 관리하는 소규모 ISMS 팀(보통 한 명, 때로는 소수의 인원)을 위한 것입니다. 계정이 필요한 인원은 적게 유지될 것으로 예상됩니다. 계정 없이도 많은 사람에게 도달할 수 있습니다: 정책 확인(acknowledgement)은 토큰 기반 링크로 전송되므로 수신자는 로그인 없이 문서를 읽고 확인할 수 있으며, 어떤 사용자 목록에도 나타나지 않습니다.
무엇을 기대하는가. ISMS Builder는 자체 호스팅 방식이므로 그에 따른 모든 것(배포, TLS, 하드닝, 백업, 업데이트, 접근 제어, 저장하는 데이터에 대한 개인정보 보호 의무)은 사용자의 책임입니다. 이 프로젝트는 합리적인 기본 구성을 제공할 뿐, 관리형 서비스가 아닙니다.
무엇이 아닌가. 호스팅 SaaS 제공, 상업용 지원 계약, 서비스 수준 계약(SLA)이 없습니다. 멀티 테넌트 호스팅 제품이 아닙니다. 어떤 표준에 대한 인증을 부여하지 않으며 법률 자문도 아닙니다 — 작업을 체계화하고 증거를 확보하는 데 도움을 줄 뿐, 평가는 여전히 사용자와 감사인의 몫입니다.
누가 유지 관리하는가. 정규 직업이 있는 한 사람이 유지 관리합니다. 이슈와 토론은 일반적으로 며칠 내에 읽고 답변하며, 보안 보고가 우선 처리됩니다. 기능 요청은 환영하며 실제로 로드맵을 형성하지만, 제한된 저녁 시간을 두고 경쟁합니다. 조직이 고정된 일정이나 보장된 응답에 의존한다면 상용 벤더를 선택하는 것이 정직한 권고입니다 — 이것은 프로젝트를 피해야 할 이유가 아니라 현실적으로 계획해야 할 이유일 뿐입니다.
스크린샷
| 로그인 | 대시보드 |
|---|---|
![]() | ![]() |
| 적용성 명세서(SoA) | 위험 관리 |
|---|---|
![]() | ![]() |
| GDPR 및 데이터 보호 | 자산 관리 |
|---|---|
![]() | ![]() |
| 가이드 및 문서 | 보고서 |
|---|---|
![]() | ![]() |
전체 데모 데이터 세트를 로컬에서 탐색하려면
npm start를 실행하고https://localhost:3000을 여십시오.
기능 개요
| 모듈 | 설명 | 표준 |
|---|---|---|
| 정책 관리 | 템플릿 CRUD, 버전 관리, 수명 주기(초안 → 검토 → 승인 → 보관), 공간 계층 구조, 첨부 파일 | ISO 27001 §5 |
| 적용성 명세서(SoA) | 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, TOM, 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 내보내기 | |
| 감사 발견 사항 | 발견 사항 레지스터(현황→목표→위험→권고), 조치 계획, 심각도/상태 추적, FIND-YYYY-NNNN 참조 | ISO 27001 §9.2 |
| 추적성 | 모든 레코드는 SoA 통제 및 정책 문서와 연결 — 양방향 | |
| 시맨틱 검색 | 키워드 폴백이 있는 Ollama(nomic-embed-text) 기반 로컬 AI 검색 | |
| 멀티 엔티티 | 기업 구조 트리, 통제 및 정책에 대한 엔티티별 적용 범위 | |
| 다국어 UI 및 데모 데이터 | 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL로 제공되는 전체 UI 및 데모 콘텐츠; 관리자가 사용 가능한 언어 제어 |
⚠ 중요: ISO 통제는 관리자가 수동으로 설치해야 합니다
ISO 27001:2022, ISO 9000:2015, ISO 9001:2015은 국제표준화기구(ISO, © ISO)가 발행한 저작권 보호 표준입니다. 통제 정의(제목, 설명, 요구 사항 텍스트)는 이 소프트웨어에 포함되어 있지 않으며 유효한 ISO 라이선스 없이 재배포해서는 안 됩니다.
실제로 의미하는 바: ISO 27001, ISO 9000, ISO 9001용 SoA 모듈은 통제 콘텐츠 없이 제공됩니다. 관리자는 이러한 프레임워크를 사용할 수 있게 하려면 통제를 수동으로 가져와야 합니다:
- 표준의 라이선스 사본을 iso.org 또는 공인된 국가 기관에서 구입하십시오
- 통제 정의가 포함된 JSON 파일을 준비하십시오(형식은
scripts/import-iso-controls.sh에 문서화되어 있음) - 가져오기 스크립트를 실행하십시오:
bash scripts/import-iso-controls.sh path/to/iso-controls.json - ISMS Builder 서버를 다시 시작하십시오
기본 포함 프레임워크(ISO 라이선스 불필요): BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act, CRA는 공개된 EU 법률 및 독일 연방 공식 간행물을 기반으로 하며 완전히 사전 설치되어 있습니다.
해당 표준에 대한 유효한 라이선스 없이 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**로 로그인하십시오. 첫 로그인 시 데모 데이터 언어
(🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL)를 선택하거나 빈 시스템으로 시작하라는 메시지가 표시됩니다.
이후 즉시 관리자 비밀번호를 변경하십시오.
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로 전환되는 앱 내 "Demo Reset" 관리자 작업과는 다릅니다
(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
- (선택 사항) 로컬 AI 시맨틱 검색용 Ollama
구성 (.env)
| 변수 | 기본값 | 설명 |
|---|---|---|
JWT_SECRET | (필수) | JWT 서명용 비밀 — 32자 이상의 임의 문자 사용 |
PORT | 3000 | HTTP/HTTPS 수신 포트 |
STORAGE_BACKEND | json | json(개발/데모) 또는 sqlite(프로덕션) |
SSL_CERT_FILE | — | TLS 인증서 경로 → HTTPS 활성화 |
SSL_KEY_FILE | — | TLS 개인 키 경로 |
DATA_DIR | ./data | 데이터 디렉터리 재정의(Docker 볼륨) |
SMTP_HOST | — | 이메일 알림용 SMTP 서버 |
SMTP_PORT | 587 | SMTP 포트 |
SMTP_USER | — | SMTP 사용자 이름 |
SMTP_PASS | — | SMTP 비밀번호 |
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 쿠키(
sm_session), bcrypt 비밀번호, TOTP 2FA(조직 전체에 적용 가능) - RBAC:
reader→editor/dept_head→contentowner/auditor→admin - 영속성: 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분)
- 코드 스타일 및 규칙
- 좋은 이슈 또는 PR을 여는 방법
보안 문제를 발견하셨나요? 공개 이슈를 열지 말고 비공개 취약점 신고를 이용하십시오. SECURITY.md에는 범위, 세이프 하버, 현실적으로 기대할 수 있는 사항이 설명되어 있습니다.
좋은 첫 이슈는 이슈 트래커에서
good first issue
라벨로 표시되어 있습니다.
로드맵
| 상태 | 기능 |
|---|---|
| ✅ 완료 | 시맨틱 검색(Ollama / nomic-embed-text) |
| ✅ 완료 | SQLite 백엔드, Docker, CI/CD |
| ✅ 완료 | GDPR 삭제 로그 이메일 알림 |
| ✅ 완료 | 다국어 데모 번들(DE / EN / FR / NL) |
| ✅ 완료 | 조치 계획이 포함된 감사 발견 사항 모듈(V 1.37.2.0) |
| ✅ 완료 | FR/NL 가이드 번역 + 관리자 언어 구성(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) |
| ✅ 완료 | 가이드 CRUD — 자체 문서 생성, 편집 및 업로드(V 1.37.2.0) |
| ✅ 완료 | 가이드 검색 — 발췌문이 포함된 카테고리 간 전체 텍스트 검색(V 1.37.2.0) |
| ✅ 완료 | 자산 보호 목표 — CIA + 진위성(1–4), 종속성 및 BSI 최대 원칙 상속(V 1.37.2.0) |
| ✅ 완료 | NIS2 Art. 21 거버넌스 체크리스트(30개 항목) 및 자동 알림이 있는 Art. 23 보고 기한(V 1.37.2.0) |
| 🔜 다음 | AI 정책 어시스턴트 — Ollama가 제목 + 프레임워크로 정책 콘텐츠 초안 작성 |
| 🔜 다음 | 예약 보고서 — 주간/월간 컴플라이언스 보고서 이메일 전송 |
| 🔜 다음 | PostgreSQL 백엔드 |
| 🔜 다음 | 감사 로그 이상 탐지(LLM 일괄 처리) |
| 🚀 추후 | 정량적 위험 점수 산정(€ 가치, FAIR 기반) |
| 🚀 추후 | 감사자 협업 포털 — 감사자를 위한 외부 읽기 전용 액세스 |
| 🚀 추후 | ownCloud / Nextcloud 통합 |
| 🚀 추후 | 정책 갭 분석(LLM) |
| 🏁 V 2.x | 구성 가능한 가이드 카테고리 — 관리자가 사용자 정의 카테고리 정의(예: 워크플로, 조직 문서) |
작성자 소개
Claude Hecker는 35년 이상 IT 분야에서 일해 왔습니다. 약 15년간 CIO로 근무한 후 CISO 및 데이터 보호 책임자(DSO/DSB) 역할로 전환했습니다. 경력 동안 유럽의 주요 기업을 위해 전사적 IT 인프라와 광역 네트워크 연결(VPN, MPLS)을 설계하고 구현했습니다 — 여러 사이트와 관할 구역에 걸친 안정적이고 안전한 운영을 책임졌습니다.
ISMS Builder는 바로 그 경험에서 비롯되었습니다: 실제 감사와 실제 규제 압력 속에서 컴플라이언스 ISMS를 구축하고 유지 관리하는 일. 이 도구는 실무자가 실제로 필요로 하는 것을 반영합니다 — 제품 관리자가 필요할 것이라고 생각하는 것이 아니라.
왜 오픈 소스인가? 중소기업은 5자리수 라이선스 비용 없이 제대로 된 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, EU AI Act는 EU 입법안이며 eur-lex.europa.eu를 통해 공개적으로 이용할 수 있습니다.
라이선스
Copyright (C) 2026 Claude Hecker
이 프로그램은 GNU Affero General Public License v3.0에 따라 라이선스가 부여된 자유 소프트웨어입니다.
수정 버전을 네트워크 서비스로 실행하는 경우 해당 서비스 사용자에게 전체 소스 코드를 제공해야 합니다(AGPL §13).
이 프로젝트에는 MIT, BSD-2-Clause 및 Apache-2.0 라이선스의 타사 구성 요소가 포함되어 있습니다. 전체 저작자 표시 및 라이선스 텍스트는 THIRD-PARTY-LICENSES.md를 참조하십시오.






