Skip to content
StableAudienceSécuritéAudit banqueOwner@security-teamDernière revue2026-05-21

Trust boundaries

Zones de confiance de la plateforme Nex et contrôles qui régissent leur traversée. Livrable typiquement demandé par un pentester ou un auditeur dès le J1 d’une mission.

Diagramme

Zones de confiance

#ZoneConfianceComposants
1Untrusted (Internet)aucuneApps installées chez les utilisateurs, navigateurs externes
2Edge (Cloudflare)partielleWAF, CDN, rate limiting au niveau edge
3API publiquerestreinteOrchestrator NestJS — validation JWT, guards, throttle
4Internal servicesélevée10 microservices backend, communication JWT internal-service
5Datastorestrès élevéePostgreSQL schémas isolés, Redis, S3
6SecretsmaximaleDoppler + K8s External Secrets Operator
7Admin planeélevéeDashboards CMMS / Backoffice (auth renforcée à durcir)

Crossings et contrôles

B1 — Internet → Edge Cloudflare

AspectContrôleStatut
Confidentialité transitTLS 1.2 minimum (Cloudflare)
Authenticité serveurCertificat Let's Encrypt via cert-manager
Anti-DDoS / scrapingCloudflare WAF + rate limiting✅ partiel (plan Free)
Bruteforce sur OTP / loginWAF rules + rate limit applicatif✅ (cf. /operations/gateway-cdn-securisation)

B2 — Edge Cloudflare → Orchestrator

AspectContrôleStatut
Confidentialité transitTLS Cloudflare ↔ NLB (Full strict)
Authentification clientFirebase ID token vérifié par JWKS✅ (cf. ADR-0002)
AutorisationGuards NestJS (@Roles, @UseGuards)
CORSorigin: true permissifknown-gap
Headers de sécuritéPas de Helmet / CSP / X-Frame-Options visiblesknown-gap

B3 — Orchestrator → Microservices back

AspectContrôleStatut
Authentification inter-serviceJWT internal-service avec scope
Confidentialité transitHTTP intra-cluster (mTLS à confirmer)⚠ à documenter
Segmentation réseauNetworkPolicy K8s default-deny + same-namespace allow
Prefetched policy / data trustChamp prefetched rejette policy/eligibility/limits✅ (cf. ADR-0007)

B4 — Microservices → Datastores

AspectContrôleStatut
Authentification DBUser PostgreSQL dédié par service✅ (cf. ADR-0014)
Périmètre DBUSAGE + CRUD limité au schéma propre du service
Chiffrement at-restRDS encryption⚠ à confirmer / documenter
Pas de jointures cross-schemaConvention architecturale
Stockage fichiers (S3)Signed URLs, ACL, expiration⚠ à documenter /services/file-service/

B5 — Microservices → Doppler

AspectContrôleStatut
Pull secretsExternal Secrets Operator → K8s secrets
RotationManuelle / planifiée — procédure à documenterknown-gap
Audit accèsLogs Doppler natifs

B6 — Admin plane → Orchestrator

AspectContrôleStatut
Authentification CMMS / BackofficeÀ documenter
MFA adminÀ évaluer / implémenter
Audit actions adminService logs-reporting (à enrichir)

Modèle STRIDE simplifié par zone

ZoneS (spoofing)T (tampering)R (repudiation)I (info disclosure)D (DoS)E (elevation of privilege)
1→2TLS, JWTTLS auth taglogs edgeRate limitWAF
2→3JWT verifyTLSaudit trailguardsthrottleguards
3→4JWT scopeTLSauditNetworkPolicyrate limitscopes
4→5DB userTLSDB auditRBAC schémapool limitDB privileges
4→6API key DopplerTLSDoppler auditESO secrets

Suite

Une page de threat model STRIDE détaillé sera produite par service dans /services/<service>/threat-model (Lot 5).

Nex — Plateforme fintech CEMAC