Segurança e confiança

Segurança construída em etapas verificáveis.

Acompanhe controles em vigor, frentes em construção e próximas etapas do programa de segurança.

Em vigor

22

Exercendo efeito hoje, com evidência conferível no repositório ou na resposta HTTP.

Em construção

2

Etapa definida e em evolução técnica.

Próxima etapa

6

Item previsto na evolução do programa.

Controles

Transporte e navegador

O que protege a entrega da página e restringe o que o navegador pode executar ou carregar.

  • HTTPS obrigatório

    Em vigor

    Todo acesso é servido por HTTPS, e a política de conteúdo eleva requisições inseguras.

    Evidência: firebase.json — upgrade-insecure-requests na CSP

  • HSTS

    Em vigor

    A resposta declara Strict-Transport-Security por um ano, abrangendo os subdomínios. O domínio não está na lista de pré-carregamento dos navegadores: entrar nela é uma decisão de difícil reversão, e o plano prevê subdomínios que ainda não existem.

    Evidência: firebase.json — Strict-Transport-Security com includeSubDomains

  • Content Security Policy

    Em vigor

    A política restringe origens de script, estilo, fonte, imagem e conexão, bloqueia objetos e proíbe que o site seja embutido em moldura de terceiro.

    Evidência: firebase.json — content-security-policy com frame-ancestors 'none'

  • Cabeçalhos de endurecimento

    Em vigor

    Estão ativos X-Content-Type-Options, Referrer-Policy restritiva, Cross-Origin-Opener-Policy e Permissions-Policy negando câmera, microfone e geolocalização.

    Evidência: firebase.json — bloco de headers aplicado a todas as rotas

Controles

Aplicação e cadeia de build

Como o código chega à produção e o que impede que algo indevido entre junto.

  • Ausência de segredo no front-end

    Em vigor

    Nenhuma chave privada, token ou credencial é embarcada no pacote publicado. As variáveis públicas do Firebase são tratadas como públicas por natureza.

    Evidência: src/lib/firebase.ts e .env.example

  • Build reprodutível

    Em vigor

    As dependências são fixadas por arquivo de bloqueio versionado, e a publicação usa instalação limpa a partir dele.

    Evidência: package-lock.json e npm ci no fluxo de publicação

  • Publicação sem chave de longa duração

    Em vigor

    A automação de publicação autentica por federação de identidade de carga de trabalho. Não existe chave JSON de conta de serviço nem token pessoal no processo.

    Evidência: Fluxo de publicação em .github/workflows

  • Portões de qualidade antes da publicação

    Em vigor

    Verificação de tipos, análise estática, testes e testes das regras do Firestore em emulador precisam passar antes de qualquer publicação.

    Evidência: package.json — scripts de verificação executados na integração contínua

  • Auditoria de dependências

    Em vigor

    A auditoria bloqueia achados de severidade alta. Achados moderados transitivos permanecem registrados e revisados.

    Evidência: npm audit --audit-level=high no fluxo de publicação

  • Inventário de licenças e SBOM

    Em vigor

    Cada componente do build é inventariado com versão, licença declarada e classificação, e a lista de materiais é publicada em SPDX. A triagem é de engenharia, não parecer jurídico: componentes de copyleft fraco ficam marcados para decisão humana.

    Evidência: docs/LICENSE_INVENTORY.md e docs/sbom.spdx.json

  • Portão de licença na publicação

    Em vigor

    A publicação falha quando um componente distribuído ao usuário tem licença de copyleft forte ou sem identificador declarado. Dependências apenas de desenvolvimento geram aviso, porque não são distribuídas.

    Evidência: scripts/license-policy.mjs e o passo de licenças na integração contínua

Controles

Identidade e acesso

Quem consegue entrar no console administrativo e sob quais condições.

  • Identidade gerenciada

    Em vigor

    O console administrativo aceita apenas o provedor corporativo aprovado. Não há autenticação por senha própria nem acesso anônimo.

    Evidência: src/features/admin/use-admin-session.ts

  • Papel e segundo fator exigidos em conjunto

    Em vigor

    O acesso administrativo exige papel atribuído, e-mail verificado, segundo fator provisionado e comprovação desse segundo fator na sessão corrente. Faltando qualquer um, o acesso é negado.

    Evidência: src/features/admin/admin-access.ts e firestore.rules

  • Atribuição de papel fora do navegador

    Em vigor

    Papel e política de segundo fator são atribuídos por processo administrativo com credencial privilegiada. Nenhuma identidade se autopromove pelo próprio login, e lista de e-mails não substitui a atribuição.

    Evidência: scripts/provision-admin.mjs

  • Revogação

    Em vigor

    A retirada do papel ou a revogação das sessões remove o acesso na renovação do token.

    Evidência: scripts/provision-admin.mjs — revogação de tokens no provisionamento

Controles

Dados

O que é lido, o que é gravado e por qual identidade.

  • Negação por padrão

    Em vigor

    As regras do banco negam leitura e escrita para qualquer caminho não autorizado explicitamente.

    Evidência: firestore.rules — regra final negando todos os documentos

  • Navegador sem escrita administrativa

    Em vigor

    Nenhuma identidade de navegador consegue gravar nas coleções administrativas. A escrita ocorre apenas por processo autorizado fora do navegador.

    Evidência: firestore.rules — escrita negada nas coleções administrativas

  • Identidade dedicada de ingestão

    Em vigor

    A carga do panorama de governança usa uma identidade técnica dedicada, separada da identidade que publica o site e sem permissão de administração de identidade.

    Evidência: scripts/ingest-governance-snapshot.mjs

  • Regras exercitadas em emulador

    Em vigor

    As regras são testadas na integração contínua contra acesso anônimo, ausência de papel, ausência de segundo fator, papel inválido e tentativa de escrita.

    Evidência: scripts/firestore-rules.integration.node-test.mjs

  • Demonstrações sintéticas

    Em vigor

    Todo dado exibido em demonstração é sintético. Nenhum ambiente de terceiro é capturado e nenhuma informação pessoal aparece.

    Evidência: src/data/demos.ts

  • Coleta somente leitura na origem

    Em construção

    A coleta é desenhada para ler metadados sem editar a fonte observada. Como nenhum conector existe, o princípio ainda não foi exercido contra ambiente real.

    Evidência: docs/CONTENT_GOVERNANCE.md e catálogo de integrações

  • Isolamento entre organizações

    Em construção

    O isolamento entre organizações é requisito de desenho registrado no modelo de ameaça da Suíte. Não há organização conectada, portanto o isolamento não foi exercido em uso real.

    Evidência: nodrail-suite/docs/THREAT_MODEL.md

Controles

Operação

Registro, resposta a incidente e canal para relatar uma falha de segurança.

  • Trilha de auditoria administrativa

    Em vigor

    A carga do panorama de governança registra um evento com o commit de origem e o horário, legível apenas por identidade autorizada.

    Evidência: scripts/ingest-governance-snapshot.mjs — evento de auditoria

  • Histórico de incidentes

    Próxima etapa

    Não há histórico a publicar: não existe serviço em produção tratando dado de organização cliente.

    Evidência: Relatórios da Suíte — ausência de organização conectada

  • Divulgação de vulnerabilidade

    Próxima etapa

    Não existe programa formal de divulgação com escopo, prazo e política de porto seguro. Relatos podem ser enviados pelo formulário de contato e serão respondidos, sem compromisso de prazo publicado.

    Evidência: docs/CONTENT_GOVERNANCE.md §8 — registrado como pendência

  • Teste de intrusão independente

    Próxima etapa

    Nenhum teste de intrusão por terceiro independente foi realizado.

    Evidência: Ausência de relatório; nada a apresentar

Controles

Conformidade e certificação

O que a NODRAIL pode e o que não pode afirmar sobre normas e auditoria.

  • Certificação

    Próxima etapa

    A NODRAIL não possui certificação emitida para este escopo. Qualquer material que sugira o contrário está incorreto.

    Evidência: Panorama de governança da Suíte — estado declarado como não certificada

  • Eficácia de controle

    Próxima etapa

    O sistema de gestão da Suíte registra controles e riscos, e nenhum controle teve eficácia comprovada. Eficácia exige teste independente com amostra, que não foi executado. Contagem de evidência não é prova de eficácia.

    Evidência: Panorama de governança da Suíte — zero controles eficazes

  • Tratamento de dados pessoais

    Em vigor

    O Portal coleta apenas os dados informados voluntariamente em formulário de contato, com finalidade e direitos do titular descritos na política de privacidade. Não há tratamento de dado operacional de organização cliente, porque não há organização conectada.

    Evidência: src/routes/privacidade.tsx e src/lib/validation.ts

  • Subprocessadores

    Próxima etapa

    Não há lista publicada de subprocessadores, porque ainda não há tratamento de dado operacional de organização cliente que a exija.

    Evidência: docs/CONTENT_GOVERNANCE.md §8 — registrado como pendência

Relatar

Encontrou uma falha de segurança?

Use o formulário de contato para encaminhar o relato ao time responsável por segurança.

Sua operação depende de ativos que ninguém consegue afirmar se estão saudáveis?

Descreva as fontes, a recorrência e o impacto. A NODRAIL organiza o contexto e identifica o melhor próximo passo para a evolução da operação.

Cloud-first • Microsoft-first • Somente leitura por padrão • Evolução contínua