Documentation Index
Fetch the complete documentation index at: https://docs.snakysec.com/llms.txt
Use this file to discover all available pages before exploring further.
Inventaire des actifs et analyse d’impact métier (BIA)
1. Objet
Recensement exhaustif des actifs informationnels critiques de la plateforme
MSSP SnakySec, classés selon leur criticité métier et associés à un objectif
RPO/RTO. Cet inventaire alimente :
- La stratégie de sauvegarde (03-backup-strategy.md)
- La matrice RPO/RTO formalisée (04-rto-rpo-matrix.md)
- Les runbooks de restauration (
docs/dr/runbooks/*)
- L’analyse de risques EBIOS RM (à formaliser Phase 1)
2. Méthodologie BIA
2.1 Critères de criticité
Chaque actif est évalué sur 4 axes (alignement DICT ANSSI) :
| Axe | Question |
|---|
| Disponibilité | Combien de temps peut-on tolérer son indisponibilité avant impact contractuel ? |
| Intégrité | Quelle est la conséquence d’une altération non détectée ? |
| Confidentialité | Quelle est la conséquence d’une divulgation non autorisée ? |
| Traçabilité | A-t-on besoin de prouver l’historique des accès/modifications ? |
2.2 Échelle de criticité
| Niveau | Description | Exemple |
|---|
| Critique | Indisponibilité = arrêt complet du service, impact contractuel immédiat | PostgreSQL, Vault |
| Importante | Indisponibilité = dégradation fonctionnelle, impact contractuel modéré | Artifacts audit, Redis |
| Modérée | Indisponibilité = inconfort utilisateur, pas d’impact contractuel | TLS certs (re-issuables auto) |
| Faible | Indisponibilité = aucun impact direct | Logs Traefik (régénérables) |
3. Inventaire infrastructure
3.1 Hébergement et réseau
| Asset | Localisation | Criticité | RPO | RTO | Source recovery |
|---|
| VPS OVH (production) | OVH Gravelines (France) | Critique | N/A (stateless) | 1h | Image OVH + bootstrap script |
| Domaine snakysec.com | Registrar (Gandi/OVH) | Critique | N/A | 24h | Récupération via support registrar |
| Zone DNS snakysec.com | OVH DNS | Critique | 30j | 1h | Backup mensuel YAML zone (cf. runbooks/09-restore-dns.md) |
| Certificats TLS Let’s Encrypt | Volume Docker traefik-acme | Modérée | N/A | 15min | Re-issue automatique via traefik ACME |
3.2 Stack applicative Docker
| Asset | Container | Criticité | RPO | RTO | Source recovery |
|---|
| Reverse proxy | traefik | Importante | N/A | 15min | Recreate from compose, ACME re-issue |
| App Next.js | next-app | Importante | N/A (stateless) | 30min | Pull image registry + restart |
| PostgreSQL 16 | postgres | Critique | 5min | 2h | pgbackrest WAL streaming + base full |
| Redis | redis | Faible | N/A (jobs idempotents) | 30min | Recreate empty, re-trigger pending jobs |
| HashiCorp Vault | vault | Critique | 24h | 1h | Snapshot raft chiffré + unseal Shamir 3/5 |
| Worker BullMQ | worker | Importante | N/A | 30min | Pull image + restart, jobs re-pickup auto |
3.3 Volumes Docker persistants
| Volume | Contenu | Criticité | RPO | RTO | Source recovery |
|---|
postgres-data | Base PostgreSQL prod | Critique | 5min | 2h | pgbackrest restore PITR |
vault-data | Storage raft Vault | Critique | 24h | 1h | restic restore + unseal |
traefik-acme | Certs Let’s Encrypt | Modérée | N/A | 15min | Re-issue ACME |
artifacts | Audits JSON, rapports GRC, exports CSV | Importante | 24h | 4h | restic restore depuis OVH/Scaleway |
redis-data | AOF Redis (jobs en cours) | Faible | N/A | N/A | Pas de restore (jobs idempotents) |
4. Inventaire applicatif (données)
4.1 Modèles Prisma critiques
| Table | Volumétrie estimée | Criticité | Justification |
|---|
User | <100 (V1) | Critique | Identités, rôles, permissions |
Role + UserPermissionGrant | <500 | Critique | RBAC granulaire, audit trail |
Client (tenants) | <50 (V1) | Critique | Configurations multi-tenants |
ClientSecret | <200 (chiffré AES-256-GCM) | Critique | Secrets Entra par client |
AuditRun | ~12/mois × 50 clients = 600/an | Importante | Historique audits CIS/SCuBA |
ControlResult | ~600 audits × 220 contrôles = 132k/an | Importante | Résultats détaillés audits |
GapFinding | ~600 audits × ~30 findings = 18k/an | Importante | Findings remédiation |
Baseline + BaselineControl | <200 | Critique | Référentiels client (justifications, exceptions) |
PlatformAuditLog | ~10k entrées/mois | Critique | Audit trail scellé Ed25519, intégrité non négociable |
LogAnchor | 1/jour = ~365/an | Critique | Anchors signés Ed25519 quotidiens |
PlatformState | <20 | Critique | État lockdown chaîne hash, anchors latest |
4.2 Données stockées hors base
| Asset | Localisation | Criticité | RPO | RTO |
|---|
| Audits JSON bruts (schema 3.0) | artifacts/audit/<client>/<run-id>/ | Importante | 24h | 4h |
| Rapports GRC générés (8 docs × clients) | artifacts/grc/<client>/<doc-type>/ | Importante | 24h | 4h |
| Exports CSV access-review | artifacts/exports/ | Faible | N/A | Régénérables |
| PDF certifiés (Phase 2) | artifacts/certified/ | Critique | 24h | 4h |
5. Inventaire secrets
5.1 Vault — paths de production
| Path Vault | Contenu | Criticité | Rotation |
|---|
mssp/data/platform/auth_secret | NextAuth JWT signing key | Critique | Annuel + immédiat sur incident |
mssp/data/platform/encryption_key | AES-256-GCM master key | Critique | Annuel + procédure ré-encryption |
mssp/data/platform/entra_cert_pem | Cert X.509 plateforme | Critique | Annuel |
mssp/data/platform/entra_cert_private_key | Clé privée X.509 | Critique | Annuel |
mssp/data/platform/log_anchor_private_key | Ed25519 signing key audit log | Critique | Annuel + invalide chain anchors antérieurs si rotation |
mssp/data/platform/log_anchor_public_key | Ed25519 verify key | Importante | Annuel (synchronisé avec privée) |
mssp/data/platform/postgres_password | Mot de passe DB | Critique | Annuel |
mssp/data/platform/redis_password | Mot de passe Redis | Importante | Annuel |
mssp/data/platform/gitlab_token | Token API GitLab | Importante | 90j |
mssp/data/platform/sentry_dsn | DSN Sentry SaaS | Modérée | Sur demande |
mssp/data/platform/sentry_auth_token | Token MCP Sentry | Importante | Annuel |
mssp/data/clients/<slug>/entra_* | Credentials SSO clients | Critique | Sur demande client ou rotation cert annuel |
mssp/data/dr/pgbackrest_cipher_pass | Clé chiffrement repo pgbackrest | Critique | Annuel |
mssp/data/dr/restic_password | Passphrase restic snapshots | Critique | Annuel |
mssp/data/dr/ovh_s3_access_key + _secret_key | Accès bucket OVH | Critique | Annuel |
mssp/data/dr/scaleway_s3_access_key + _secret_key | Accès bucket Scaleway | Critique | Annuel |
5.2 Shares Shamir Vault
Cf. 01-keyholders.md pour la répartition complète.
6. Inventaire comptes externes
| Service | Usage | Criticité | Récupération |
|---|
| OVH Cloud | VPS prod + DNS + Object Storage primary | Critique | Compte personnel Nicolas, 2FA YubiKey, codes de récup en KeePass |
| Scaleway | Object Storage secondary backup | Critique | Compte personnel Nicolas, 2FA YubiKey |
| GitLab.com | Repos source code + CI/CD | Critique | Compte personnel Nicolas, 2FA YubiKey, SSH keys backup |
| Microsoft Entra (snakysec.onmicrosoft.com) | Tenant MSSP, app registrations | Critique | Comptes Global Admin × 2 (Nicolas + break-glass) avec MFA strict |
| Sentry SaaS EU | Monitoring runtime | Importante | Compte personnel Nicolas, 2FA |
| Functional Software / NameCheap (registrar) | Domaine snakysec.com | Critique | Compte personnel Nicolas, 2FA, contact admin technique |
| Stoik / Acheel (assurance cyber) | Couverture incidents | Importante | Contrat papier + email |
| Notaire (trustee Shamir) | Détention shares S4-S5 | Critique | Coordonnées dans 01-keyholders.md |
6.1 Compte break-glass Entra
Un compte Global Admin break-glass (non utilisé en quotidien, MFA exclu,
mot de passe long stocké en KeePass + papier coffre domicile) garantit
l’accès au tenant Entra SnakySec en cas de perte du compte principal.
| Asset | Détail |
|---|
| UPN | breakglass@snakysec.onmicrosoft.com |
| Mot de passe | 32 chars random, dans KeePass + papier coffre |
| MFA | Exclu intentionnellement (sinon bricked sur perte device) |
| Surveillance | Conditional Access alerte sur connexion (Sentry alert) |
| Test | Annuel, login + déconnexion immédiate, journalisé |
7. Inventaire dépendances tierces
| Dépendance | Type | Criticité runtime | Mitigation |
|---|
| Microsoft Graph API | API externe | Critique (audits) | SLA Microsoft 99.9%, monitoring uptime |
| Microsoft Entra (auth) | API externe | Critique (login) | SLA Microsoft 99.9%, fallback session courte |
| Functional Software Sentry | SaaS observabilité | Importante | Dégradation = perte logs runtime, pas blocage |
| GitLab.com CI | SaaS CI/CD | Importante | Dégradation = pas de deploy, mais prod tourne |
| Let’s Encrypt | ACME cert provider | Modérée | Failover manuel ZeroSSL si LE down |
| OVH/Scaleway S3 | Object Storage backups | Importante | Multi-fournisseur découplé, single failure tolérée |
8. Volumétrie totale estimée (V1)
| Catégorie | Volumétrie | Croissance/an |
|---|
| PostgreSQL data | ~5 GB | ~2 GB/an (audits + logs) |
| Vault data (raft) | <100 MB | Stable |
| Artifacts (audits + GRC) | ~50 GB | ~30 GB/an (50 clients × 12 audits + GRC packs) |
| WAL Postgres / 90j | ~20 GB | Stable (rétention fixe) |
| Total backups chiffrés | ~80 GB | ~50 GB/an |
Coût stockage estimé :
- OVH Object Storage Standard : 80 GB × 0.014 €/GB/mois = ~1.10 €/mois
- Scaleway Object Storage Standard : 80 GB × 0.014 €/GB/mois = ~1.10 €/mois
- Total backups : ~2.20 €/mois (négligeable)
9. Validation
| Version | Date | Auteur | Approbateur |
|---|
| 1.0 | 2026-04-26 | Nicolas Schiffgens | Nicolas Schiffgens |