
isms-builder v1.37.1
Sistema de Gestão de Segurança da Informação auto-hospedado — ISO 27001, NIS2, GDPR/DSGVO, BSI IT-Grundschutz

ISMS Builder
Sistema de Gestão de Segurança da Informação auto-hospedado — código aberto, sem necessidade de nuvem
📖 Wiki — Utilização de imagens Docker & variáveis de ambiente, arquitetura & módulos, FAQ, contribuição (DE/EN)
⚠️ Aviso de Segurança: Repositórios falsos e cópias que distribuem malware
O ISMS Builder não tem "releases" empacotadas, instaladores ou ficheiros ZIP para download — a única fonte legítima é este repositório, clonado ou descarregado diretamente do GitHub como código-fonte simples. Temos conhecimento de pelo menos um repositório malicioso que se faz passar por este projeto (README falso, botão "Download" falso que liga a um ZIP disfarçado de captura de ecrã, contendo um carregador de malware para Windows — cadeia de payload
.cmd→.exe→ DLL-Lua). Não descarregue nem execute qualquer ZIP/instalador/exe "isms_builder" de qualquer outro lugar que não seja este repositório. Se encontrar um repositório ou site suspeito que se faça passar por este projeto, abra uma issue ou uma discussão para que possamos sinalizá-lo.
Estado: Desenvolvimento ativo — ainda não é um produto finalizado. Os módulos principais estão funcionais e em uso, mas algumas funcionalidades estão incompletas e a plataforma ainda está em crescimento. Contribuições, feedback e testes em cenários reais são muito bem-vindos — foi exatamente por isso que este projeto foi aberto ao público.
🛡️ Projeto relacionado: NIS2 Quick-Check — uma autoavaliação NIS2 gratuita e autónoma (10 domínios × 5 perguntas, todos os 27 estados-membros da UE, todas as 24 línguas oficiais da UE). Funciona inteiramente no navegador, sem backend, sem instalação. Não faz parte do ISMS Builder e não é necessário para o utilizar — apenas uma ferramenta complementar para uma primeira orientação rápida.
O que é o ISMS Builder?
O ISMS Builder é uma plataforma web auto-hospedada para gerir um Sistema de Gestão de Segurança da Informação (ISMS). Cobre todo o ciclo de vida de conformidade — desde a redação de políticas até à evidência de auditoria — para ISO 27001:2022, NIS2, GDPR/DSGVO, BSI IT-Grundschutz e outros referenciais.
Sem nuvem. Sem taxas SaaS. Os seus dados permanecem no seu servidor.
Concebido para PME, equipas de TI e consultores que precisam de uma ferramenta ISMS real sem um contrato de fornecedor de cinco dígitos.
Utilização Pretendida e Âmbito
Este projeto começou como uma ferramenta de trabalho para um único profissional de ISMS e cresceu a partir daí. É código aberto porque o trabalho pode ser útil para outros — não porque seja um produto comercial disfarçado. Ser explícito sobre isso ajuda-o a decidir se se adequa à sua situação.
Para que foi construído. Uma pequena equipa de ISMS — muitas vezes uma pessoa, por vezes um punhado — que redige e mantém a documentação de um sistema de gestão: políticas, riscos, ativos, controlos, evidências. Espera-se que o número de pessoas que precisam de uma conta permaneça pequeno. Alcançar um público alargado funciona sem contas: os reconhecimentos de políticas são enviados como links baseados em tokens, para que os destinatários leiam e confirmem um documento sem nunca iniciar sessão, e sem aparecerem em qualquer lista de utilizadores.
O que espera de si. O ISMS Builder é auto-hospedado, e tudo o que daí decorre é seu: implementação, TLS, endurecimento, backups, atualizações, controlo de acesso e as obrigações de proteção de dados para tudo o que armazenar nele. O projeto inclui uma configuração padrão razoável, não um serviço gerido.
O que não é. Não existe oferta SaaS hospedada, contrato de suporte comercial ou acordo de nível de serviço. Não é um produto de hospedagem multi-inquilino. Não certifica contra qualquer norma e não é aconselhamento jurídico — ajuda a organizar e evidenciar o trabalho, mas a avaliação continua a ser sua e do seu auditor.
Quem o mantém. Uma pessoa, em paralelo com um emprego a tempo inteiro. As issues e discussões são lidas e respondidas, normalmente em poucos dias; os relatórios de segurança são priorizados. Os pedidos de funcionalidades são bem-vindos e moldam genuinamente o roteiro, mas competem por noites limitadas. Se a sua organização depende de um cronograma fixo ou de resposta garantida, um fornecedor comercial é a recomendação honesta — e isso não é motivo para evitar o projeto, apenas uma razão para planear de forma realista.
Capturas de Ecrã
| Início de Sessão | Painel de Controlo |
|---|---|
![]() | ![]() |
| Declaração de Aplicabilidade | Gestão de Riscos |
|---|---|
![]() | ![]() |
| GDPR & Proteção de Dados | Gestão de Ativos |
|---|---|
![]() | ![]() |
| Orientação & Documentação | Relatórios |
|---|---|
![]() | ![]() |
Execute
npm starte abrahttps://localhost:3000para explorar o conjunto completo de dados de demonstração localmente.
Visão Geral das Funcionalidades
| Módulo | Descrição | Normas |
|---|---|---|
| Gestão de Políticas | CRUD de modelos, versionamento, ciclo de vida (rascunho → revisão → aprovado → arquivado), hierarquia de espaços, anexos | ISO 27001 §5 |
| Declaração de Aplicabilidade | 313 controlos em 8 referenciais, edição inline, análise de lacunas, mapeamento cruzado | ISO 27001 A / BSI / NIS2 / EUCS / EUAI / ISO 9001 / CRA |
| Gestão de Riscos | Registo de riscos, planos de tratamento, função de auditor | ISO 27001 §6.1 |
| Objetivos de Segurança | Acompanhamento de KPIs com barras de progresso, integração de calendário | ISO 27001 §6.2 |
| GDPR & Privacidade | VVT, contratos AV, DSFA, TOMs, fila DSAR, temporizador de 72h, registo de eliminação com alertas por e-mail | DSGVO Art. 13–35 |
| Gestão de Ativos | Registo de ativos, tipos de ativos editáveis, objetivos de proteção (CIA + autenticidade) com herança de dependências, níveis de classificação, acompanhamento de fim de vida | ISO 27001 A.5.9–5.12 |
| BCM / BCP | Análise de Impacto no Negócio, planos de continuidade, exercícios | ISO 27001 A.5.29–5.30 / NIS2 |
| Registos de Formação | Catálogo de formação, acompanhamento de conclusão, carregamento de certificados | ISO 27001 A.6.3 |
| Gestão de Fornecedores | Registo de fornecedores, agendamento de auditorias, avaliação de riscos | ISO 27001 A.5.19–5.22 |
| Legal & Contratos | Contratos, NDAs, políticas de privacidade, calendário de expiração | |
| Caixa de Incidentes | Caixa de entrada do CISO + formulário de reporte público (sem necessidade de início de sessão) | NIS2 / BSI |
| Governança | Revisões de gestão, acompanhamento de ações | ISO 27001 §9.3 |
| Relatórios | Matriz de conformidade (Controlo × Entidade), relatório de lacunas, ciclos de revisão, exportação CSV | |
| Conclusões de Auditoria | Registo de conclusões (IST→SOLL→Risco→Recomendação), planos de ação, acompanhamento de gravidade/estado, ref FIND-YYYY-NNNN | ISO 27001 §9.2 |
| Rastreabilidade | Cada registo liga-se a controlos SoA + documentos de política — bidirecional | |
| Pesquisa Semântica | Pesquisa IA local via Ollama (nomic-embed-text) com recurso a palavras-chave | |
| Multi-Entidade | Árvore de estrutura corporativa, aplicabilidade por entidade para controlos e políticas | |
| UI Multilingue & Dados de Demonstração | UI completa e conteúdo de demonstração em 🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL; idiomas disponíveis controlados pelo administrador |
⚠ IMPORTANTE: Os Controlos ISO Requerem Instalação Manual pelo Administrador
ISO 27001:2022, ISO 9000:2015 e ISO 9001:2015 são normas protegidas por direitos de autor publicadas pela Organização Internacional de Normalização (ISO, © ISO). As definições de controlos (títulos, descrições, texto de requisitos) não estão incluídas neste software e não devem ser redistribuídas sem uma licença ISO válida.
O que isto significa na prática: Os módulos SoA para ISO 27001, ISO 9000 e ISO 9001 são fornecidos sem conteúdo de controlos. O administrador deve importar manualmente os controlos antes de estes referenciais serem utilizáveis:
- Obtenha uma cópia licenciada da norma em iso.org ou num organismo nacional autorizado
- Prepare um ficheiro JSON com as suas definições de controlos (formato documentado em
scripts/import-iso-controls.sh) - Execute o script de importação: ```bash
bash scripts/import-iso-controls.sh path/to/iso-controls.json
- Reinicie o servidor do ISMS Builder
Frameworks incluídos de fábrica (sem licença ISO necessária): BSI IT-Grundschutz, EU NIS2, EUCS, EU AI Act e CRA são baseados em legislação da UE e publicações federais alemãs disponíveis publicamente e estão totalmente pré-instalados.
Operar os módulos de framework ISO sem uma licença válida para o respetivo padrão é de responsabilidade exclusiva do operador. O projeto ISMS Builder e os seus contribuidores não aceitam qualquer responsabilidade pela utilização não licenciada de conteúdo protegido por ISO.
Início Rápido```bash
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
Entre com **`[email protected]` / `adminpass`**. No primeiro login, você será solicitado a escolher o **idioma dos dados de demonstração** (🇩🇪 DE / 🇬🇧 EN / 🇫🇷 FR / 🇳🇱 NL) ou começar com um sistema vazio. Altere a senha do administrador imediatamente após.
Para uso em produção com HTTPS:```bash
# .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
Vai entrar em produção depois de avaliar com dados de demonstração? Execute a ferramenta interativa de preparação para produção em vez de começar com uma instalação limpa — ela limpa o conteúdo de demonstração/teste módulo por módulo (ou tudo de uma vez), para que quaisquer dados reais que você já tenha inserido (ex.: riscos, ativos) não precisem ser reinseridos:```bash bash stop.sh node scripts/prepare-production.js bash start.sh
Sempre cria um backup (`data.bak.<timestamp>/`, ao lado do seu diretório `data/`) antes
de alterar qualquer coisa, e nunca toca em `STORAGE_BACKEND` — ao contrário da ação administrativa "Demo Reset" dentro do aplicativo,
que é destinada à instância de demonstração e ainda alterna para `sqlite` por razões históricas
(veja [Issue #42](https://github.com/coolstartnow/isms-builder/issues/42)).
---
## Docker
Cada versão é publicada como um GitHub Package no GitHub Container Registry, para
`linux/amd64` e `linux/arm64` — marcadas com `:latest` e `:<version>` (ex.: `:1.37.5.2`):```bash
docker compose up -d
# App runs at http://localhost:3000
Ou sem Compose (data/ deve ser um bind mount — os dados nunca são embutidos na imagem):```bash
docker run -d --name isms-builder -p 3000:3000
-e JWT_SECRET="$(openssl rand -hex 32)"
-v "$PWD/data:/app/data"
ghcr.io/coolstartnow/isms-builder:latest
Este é o padrão, armazenando dados como arquivos JSON simples em `./data` — nenhum contêiner de banco de dados é necessário
de forma alguma. É a configuração recomendada para equipes pequenas e é o que os dois comandos acima usam.
**Usando PostgreSQL (ou MariaDB) em vez de JSON.** A imagem suporta isso prontamente, mas —
diferentemente da configuração JSON acima — precisa de um segundo contêiner (o banco de dados real) além de um punhado de
variáveis de ambiente informando ao aplicativo como alcançá-lo. Se você apenas baixou a imagem em si
(`docker pull ghcr.io/coolstartnow/isms-builder`) sem nunca clonar este repositório, esses
nomes de variáveis não estão visíveis em lugar nenhum por padrão — `docker-compose.yml` e `.env.example`, onde
estão documentados, são arquivos neste repositório Git, não parte da imagem. Esta seção existe
para que essa informação não seja um segredo exclusivo do repositório.
A imagem `isms-builder` em si nunca inclui um servidor de banco de dados — `postgres:17` (ou `mariadb:11`)
é um mecanismo de banco de dados completamente genérico e vazio do Docker Hub, sem nenhum conhecimento das
tabelas deste projeto. Essas tabelas (riscos, ativos, controles de SoA e assim por diante) são criadas automaticamente
pelo próprio aplicativo no momento em que ele inicia e encontra um banco de dados vazio — nenhuma importação SQL manual,
nenhuma etapa de migração separada que você precise executar. Veja "Como o esquema do banco de dados é
criado?" abaixo se quiser os detalhes completos.
Dois contêineres, uma rede Docker compartilhada, e então o aplicativo é informado onde encontrar o banco de dados:```bash
# 1) An isolated network so the two containers can reach each other by name
docker network create isms-net
# 2) The database — empty until the app first connects and creates its tables
docker run -d --name isms-postgres --network isms-net \
-e POSTGRES_DB=isms_builder \
-e POSTGRES_USER=isms \
-e POSTGRES_PASSWORD="$(openssl rand -hex 16)" \
-v isms-postgres-data:/var/lib/postgresql/data \
postgres:17-alpine
# 3) The app, pointed at that database by container name (isms-postgres) via
# Docker's built-in DNS on the shared network — no host/port juggling needed
docker run -d --name isms-builder --network isms-net -p 3000:3000 \
-e JWT_SECRET="$(openssl rand -hex 32)" \
-e STORAGE_BACKEND=postgres \
-e DB_HOST=isms-postgres \
-e DB_PORT=5432 \
-e DB_USER=isms \
-e DB_PASS="<same password as POSTGRES_PASSWORD above>" \
-e DB_NAME=isms_builder \
ghcr.io/coolstartnow/isms-builder:latest
O que cada variável significa:
| Variável | Finalidade |
|---|---|
STORAGE_BACKEND | postgres (ou pg) para PostgreSQL, mariadb para MariaDB/MySQL. Deixe sem definir (ou json) para a configuração JSON padrão. |
DB_HOST | Nome do host do contêiner do banco de dados. Em uma rede Docker compartilhada, este é apenas o --name do contêiner — o Docker o resolve automaticamente. |
DB_PORT | 5432 para PostgreSQL, 3306 para MariaDB. |
DB_USER / DB_PASS / DB_NAME | Devem corresponder ao que você definir no contêiner do banco de dados (POSTGRES_USER/POSTGRES_PASSWORD/POSTGRES_DB acima, ou os equivalentes do MariaDB). |
Para MariaDB, troque postgres:17-alpine por mariadb:11, use suas variáveis MARIADB_DATABASE /
MARIADB_USER / MARIADB_PASSWORD na etapa 2, e STORAGE_BACKEND=mariadb /
DB_PORT=3306 na etapa 3. A lista completa e com referências cruzadas de todas as variáveis de ambiente que este
projeto entende — incluindo as não abordadas aqui (SSL, confiança de proxy reverso, SMTP,
2FA, …) — está em .env.example neste repositório.
Usuários do Compose obtêm isso de graça: docker-compose.yml já inclui perfis de serviço mariadb e postgres
(comentados por padrão, junto com as explicações equivalentes das variáveis de ambiente) —
docker compose --profile postgres up -d inicia ambos os contêineres conectados automaticamente,
sem necessidade de rede manual ou copiar e colar senhas.
Como o esquema do banco de dados é criado? Nem a imagem postgres:17 nem a mariadb:11
sabem nada sobre este projeto — são mecanismos de banco de dados genéricos e vazios direto do
Docker Hub. Não há arquivo de dump SQL para importar nem comando de migração separado para executar manualmente.
Em vez disso, no momento em que o contêiner isms-builder inicia e se conecta a um banco de dados vazio, seu
próprio código de aplicação (não a imagem do banco de dados) cria todas as tabelas necessárias na hora — veja
server/db/knexDatabase.js: uma lista de definições de tabelas, cada uma
verificada com hasTable() e criada com createTable() se estiver ausente, tudo antes de o aplicativo começar
a aceitar solicitações HTTP. Isso o torna idempotente — a primeira inicialização constrói o esquema completo
do zero, e cada reinicialização posterior contra o mesmo banco de dados é um no-op silencioso porque as
tabelas já existem. Este é o mesmo mecanismo, sem modificações, que foi verificado ao vivo contra
SQLite, MariaDB 11 e PostgreSQL 17 (veja #70).
Para compilar a partir do código-fonte, remova os comentários do bloco build: em docker-compose.yml e execute
docker compose up -d --build.
As imagens carregam uma atestação de procedência de build assinada:```bash gh attestation verify oci://ghcr.io/coolstartnow/isms-builder:latest --owner coolstartnow
---
## Requisitos
- **Node.js 18+** (testado: 18, 20, 22)
- npm 9+
- (Opcional) Docker + Docker Compose
- (Opcional) [Ollama](https://ollama.ai) para pesquisa semântica local com IA
---
## Configuração (`.env`)
| Variável | Padrão | Descrição |
|---|---|---|
| `JWT_SECRET` | *(obrigatório)* | Segredo para assinatura JWT — use 32+ caracteres aleatórios |
| `PORT` | `3000` | Porta de escuta HTTP/HTTPS |
| `STORAGE_BACKEND` | `json` | `json` (dev/demo) ou `sqlite` (produção) |
| `SSL_CERT_FILE` | — | Caminho para o certificado TLS → ativa HTTPS |
| `SSL_KEY_FILE` | — | Caminho para a chave privada TLS |
| `DATA_DIR` | `./data` | Substitui o diretório de dados (volumes Docker) |
| `SMTP_HOST` | — | Servidor SMTP para alertas por e-mail |
| `SMTP_PORT` | `587` | Porta SMTP |
| `SMTP_USER` | — | Usuário SMTP |
| `SMTP_PASS` | — | Senha SMTP |
| `SMTP_FROM` | — | Endereço do remetente para notificações |
---
## Arquitetura```
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)
- Auth: Cookie JWT (
sm_session), senhas bcrypt, 2FA TOTP (aplicável em toda a organização) - RBAC:
reader→editor/dept_head→contentowner/auditor→admin - Persistência: Arquivos JSON (padrão/demo) ou SQLite via
better-sqlite3 - IA: Ollama local opcional (nomic-embed-text); pesquisa por palavras-chave sempre disponível como fallback
- Log de Auditoria: Cada ação de criar/atualizar/excluir/login é registrada, filtrável e exportável
Consulte docs/architecture/ para diagramas C4, modelo de dados completo e especificação OpenAPI 3.0.3 (mais de 80 endpoints).
Executando Testes
Nota: O conjunto de testes em
tests/são os testes de desenvolvimento pessoal do autor e são fornecidos junto ao projeto por transparência. Eles não fazem parte da aplicação em si e não são necessários para executar o aplicativo. Os testes cobrem o comportamento interno da API e usam credenciais de teste codificadas que existem apenas no ambiente de teste isolado — elas não têm nenhuma relação com dados de produção ou demo.```bash npm test # runs all 423 tests npm run preflight # exactly what CI gates on (tests + pinning + audit) npm test -- --verbose # with test names
Os testes usam um diretório temporário isolado — nenhum dado de produção é tocado.
---
## Contribuindo
Contribuições são muito bem-vindas! Consulte [CONTRIBUTING.md](https://github.com/coolstartnow/isms-builder/blob/main/CONTRIBUTING.md) para:
- Configuração do ambiente de desenvolvimento (5 minutos até a primeira execução de testes)
- Estilo de código e convenções
- Como abrir uma boa issue ou PR
**Encontrou um problema de segurança?** Por favor, não abra uma issue pública — use
[relatório privado de vulnerabilidades](https://github.com/coolstartnow/isms-builder/security/advisories/new).
O [SECURITY.md](https://github.com/coolstartnow/isms-builder/blob/main/SECURITY.md) descreve o escopo, a proteção legal (safe harbour) e o que esperar de forma realista.
**Boas primeiras issues** estão marcadas com o rótulo [`good first issue`](https://github.com/coolstartnow/isms-builder/issues?q=label%3A%22good+first+issue%22) no rastreador de issues.
---
## Roadmap
| Status | Funcionalidade |
|---|---|
| ✅ Concluído | Pesquisa semântica (Ollama / nomic-embed-text) |
| ✅ Concluído | Backend SQLite, Docker, CI/CD |
| ✅ Concluído | Alertas por e-mail do registo de eliminação GDPR |
| ✅ Concluído | Pacotes de demonstração multilingues (DE / EN / FR / NL) |
| ✅ Concluído | Módulo de Constatações de Auditoria com planos de ação (V 1.37.2.0) |
| ✅ Concluído | Traduções das Orientações FR/NL + configuração de idioma do administrador (V 1.37.2.0) |
| ✅ Concluído | Backend MariaDB/MySQL (`STORAGE_BACKEND=mariadb`, V 1.37.2.1) |
| ✅ Concluído | Scanner → Rascunho de risco (importação XML + PDF Greenbone/OpenVAS, V 1.37.2.0) |
| ✅ Concluído | Reconhecimento de Políticas — os colaboradores confirmam políticas digitalmente com trilha de auditoria (V 1.37.2.0) |
| ✅ Concluído | CRUD de Orientações — criar, editar e carregar documentação própria (V 1.37.2.0) |
| ✅ Concluído | Pesquisa de Orientações — pesquisa de texto completo entre categorias com excerto (V 1.37.2.0) |
| ✅ Concluído | Objetivos de proteção de ativos — CIA + autenticidade (1–4), dependências e herança do princípio máximo BSI (V 1.37.2.0) |
| ✅ Concluído | Lista de verificação de governança NIS2 Art. 21 (30 itens) e prazos de comunicação Art. 23 com alertas automáticos (V 1.37.2.0) |
| ✅ Concluído | Backend PostgreSQL (`STORAGE_BACKEND=pg`) — mesma camada de armazenamento Knex que o MariaDB, verificado contra uma instância real de PostgreSQL 17 incluindo o caminho completo de `docker compose` (V 1.37.5) |
| ✅ Concluído | Integração ownCloud / Nextcloud — políticas aprovadas publicadas automaticamente como PDF via WebDAV, visibilidade opcional de favorito/ligação pública, verificado ao vivo contra uma instância real de NextcloudPi (#66, V 1.37.5.1) |
| ✅ Concluído | Imagem Docker publicada no GitHub Container Registry após cada lançamento (`ghcr.io/coolstartnow/isms-builder`, `linux/amd64` + `linux/arm64`, proveniência de compilação assinada) — contribuição de @bucherfa (#71, V 1.40.0). Ensaio de esforço de manutenção: removida novamente se se revelar mais trabalho do que o esperado. |
| 🔜 Próximo | Assistente de Políticas com IA — Ollama redige conteúdo de políticas a partir de título + estrutura |
| 🔜 Próximo | Relatórios Agendados — relatório de conformidade semanal/mensal entregue por e-mail |
| 🔜 Próximo | Deteção de anomalias no registo de auditoria (lote LLM) |
| 🚀 Mais tarde | Pontuação de risco quantitativa (valores em €, inspirada em FAIR) |
| 🚀 Mais tarde | Portal de colaboração para auditores — acesso externo só de leitura para auditores |
| 🚀 Mais tarde | Análise de lacunas de políticas (LLM) |
| 🏁 V 2.x | Categorias de Orientações configuráveis — administradores definem categorias personalizadas (ex.: fluxos de trabalho, documentos organizacionais) |
---
## Sobre o Autor
**Claude Hecker** trabalha em TI há mais de 35 anos. Após cerca de 15 anos como CIO,
transitou para os papéis de CISO e Encarregado de Proteção de Dados (DSO/DSB). Durante a sua carreira,
concebeu e implementou infraestrutura de TI empresarial e conectividade de rede de longa distância
(VPN, MPLS) para uma grande empresa europeia — responsável por operações fiáveis e seguras em
vários locais e jurisdições.
O ISMS Builder nasceu diretamente dessa experiência: construir e manter um SGSI conforme no
mundo real, através de auditorias reais, com pressão regulatória real. A ferramenta reflete o que os
profissionais realmente precisam — não o que um gestor de produto acha que precisam.
**Porquê código aberto?**
As PME merecem acesso a uma plataforma SGSI adequada sem taxas de licença de cinco dígitos. O esforço
de integração é real independentemente da ferramenta que escolher — mas esse custo não deve ser agravado
por dependência do fornecedor ou por dados a saírem da sua própria infraestrutura. Este projeto defende a
liberdade do software e o princípio de que os seus dados de conformidade lhe pertencem.
---
## Aviso de Referência a Normas
Este software referencia identificadores de controlos e títulos curtos de normas
publicadas apenas para fins de interoperabilidade e gestão de conformidade.
- **ISO/IEC 27001, ISO 9000, ISO 9001** são normas publicadas pela
Organização Internacional de Normalização (ISO). As definições de controlos
para estas normas **não estão incluídas** nesta distribuição de software —
os direitos de autor da ISO não permitem a redistribuição do texto dos controlos. Os utilizadores devem
fornecer o seu próprio ficheiro JSON (ver secção acima e `scripts/import-iso-controls.sh`).
As normas devem ser obtidas na [ISO](https://www.iso.org/) ou num
distribuidor nacional autorizado.
- **Material BSI IT-Grundschutz** é publicado pelo Gabinete Federal Alemão
para a Segurança da Informação (BSI) e está disponível gratuitamente em
[bsi.bund.de](https://www.bsi.bund.de).
- **NIS2, CRA, EUCS, EU AI Act** são atos legislativos da UE e estão publicamente
disponíveis via [eur-lex.europa.eu](https://eur-lex.europa.eu).
---
## Licença
Copyright (C) 2026 Claude Hecker
Este programa é software livre licenciado sob a
[GNU Affero General Public License v3.0](https://github.com/coolstartnow/isms-builder/blob/main/LICENSE).
Se executar uma versão modificada como serviço de rede, deve disponibilizar o
código-fonte completo aos utilizadores desse serviço (AGPL §13).
Este projeto inclui componentes de terceiros sob licenças MIT, BSD-2-Clause e
Apache-2.0. Consulte [THIRD-PARTY-LICENSES.md](https://github.com/coolstartnow/isms-builder/blob/main/THIRD-PARTY-LICENSES.md)
para atribuição completa e textos de licença.






