Sécurité
Dernière mise à jour : 16 mars 2026
1. Engagement en matière de sécurité
sh0 prend la sécurité au sérieux. Nous mettons en oeuvre des pratiques de pointe pour protéger vos données, comptes et applications déployées contre tout accès, modification et divulgation non autorisés.
2. Architecture de sécurité
2.1 Sécurité réseau
- TLS 1.3 : Toutes les données en transit chiffrées selon la dernière norme
- HSTS : HTTP Strict Transport Security activé
- CORS : Cross-Origin Resource Sharing configuré de manière sécurisée
- WAF : Pare-feu applicatif web pour prévenir les attaques
- Protection DDoS : Atténuation DDoS par Cloudflare
- Limitation de débit : Limitation de débit API pour prévenir les abus
2.2 Sécurité de l'infrastructure
- Fournisseurs : Contabo et Hetzner (certifiés ISO 27001)
- Pare-feu : Pare-feu matériels et logiciels configurés
- Segmentation réseau : Réseaux séparés pour les différents services
- Isolation des conteneurs : Chaque déploiement s'exécute dans son propre conteneur isolé
- Systèmes de sauvegarde : Sauvegardes isolées et chiffrées avec rétention configurable
3. Authentification et autorisation
3.1 Sécurité des mots de passe
- Hachage : Argon2 avec sel pour tous les mots de passe
- Exigences minimales : 8+ caractères, majuscules/minuscules, chiffres/symboles
- Réinitialisation du mot de passe : Réinitialisation sécurisée par jeton (expiration 1 heure)
- Pas de stockage : Nous ne stockons jamais de mots de passe en clair
3.2 Authentification à deux facteurs (2FA)
- TOTP : Mot de passe à usage unique basé sur le temps (Google Authenticator, Authy)
- Codes de secours : Codes de récupération pour la restauration du compte
- Recommandé : Disponible pour tous les utilisateurs, requis pour l'accès administrateur
3.3 Gestion des sessions
- Jetons JWT : Signés, expirent en 24 heures
- Jetons de rafraîchissement : Rotation sécurisée des jetons de rafraîchissement
- Expiration de session : Déconnexion automatique après 30 minutes d'inactivité
- Sessions simultanées : Limite pour prévenir les accès non autorisés
- Cookies sécurisés : Indicateurs HttpOnly, Secure, SameSite
4. Chiffrement des données
4.1 En transit
- Protocole : TLS 1.3 (minimum)
- Certificat : SSL automatique via Caddy (Let's Encrypt / ZeroSSL)
- Perfect Forward Secrecy : Activé (clés éphémères)
4.2 Au repos
- Algorithme : Chiffrement AES-256-GCM
- Secrets : Tous les secrets, clés API et variables d'environnement chiffrés
- Base de données : SQLite avec chiffrement intégral du disque sur le stockage
- Gestion des clés : Clés stockées séparément des données via la bibliothèque de cryptographie ring
4.3 Clés de chiffrement
- Génération de clés : Génération aléatoire cryptographiquement sécurisée
- Rotation des clés : Rotation annuelle pour les clés à longue durée de vie
- Contrôle d'accès : Restreint aux systèmes autorisés uniquement
5. Sécurité applicative
5.1 Sécurité du code
- OWASP Top 10 : Atténuations pour toutes les vulnérabilités courantes
- Validation des entrées : Validation stricte de toutes les entrées
- Injection SQL : Requêtes paramétrées via rusqlite
- Prévention XSS : Content Security Policy (CSP) activée
- Protection CSRF : Jetons CSRF sur toutes les requêtes modifiant l'état
5.2 Gestion des dépendances
- Analyse de vulnérabilités : cargo-audit pour les dépendances Rust
- Verrouillage des versions : La production utilise des versions verrouillées (Cargo.lock)
- Sécurité de la chaîne d'approvisionnement : Paquets vérifiés uniquement
5.3 Gestion des erreurs
- Messages d'erreur sécurisés : Pas d'informations sensibles dans les réponses d'erreur
- Journalisation : Erreurs journalisées de manière sécurisée via tracing sans exposer de données
- Traces de pile : Masquées en production
- Surveillance : Alertes en temps réel pour les anomalies
6. Sécurité de l'API
- Clés API : Chiffrées, limitées, renouvelables
- Limitation de débit : Limites par utilisateur et par IP
- Vérification de signature : HMAC-SHA256 pour l'authenticité des webhooks
- Bearer Tokens : Authentification par JWT pour tous les appels API
7. Sécurité des conteneurs
- Conteneurs non-root : Tous les conteneurs s'exécutent en tant que non-root par défaut
- Isolation réseau : Les réseaux Docker isolent les stacks les uns des autres
- Limites de ressources : Limites CPU et mémoire appliquées par conteneur
- Analyse d'images : Images de base analysées pour les vulnérabilités connues
- Systèmes de fichiers en lecture seule : Lorsqu'applicable, les conteneurs utilisent des systèmes de fichiers racine en lecture seule
8. Surveillance et journalisation
8.1 Surveillance de sécurité
- Alertes : Alertes en temps réel pour les activités suspectes
- Réponse aux incidents : Temps de réponse de 15 minutes pour les incidents critiques
- Bilans de santé : Surveillance continue de la santé des conteneurs et des services
8.2 Journalisation d'audit
- Quoi : Qui a accédé à quoi, quand, depuis où, ce qui a changé
- Rétention : 1 an pour les journaux d'audit
- Immuabilité : Les journaux ne peuvent pas être modifiés après création
- Chiffrement : Journaux chiffrés en transit et au repos
9. Contrôle d'accès
- Principe du moindre privilège : Les utilisateurs n'ont que l'accès nécessaire
- Contrôle d'accès basé sur les rôles : Rôles administrateur, membre et lecteur
- MFA requis : Pour tout accès administratif
- Journalisation des accès : Toutes les actions administratives journalisées
10. Sécurité du reverse proxy
- Caddy : HTTPS automatique avec agrafage OCSP
- Gestion des certificats : Renouvellement automatique, rotation sans interruption
- Sécurité des en-têtes : X-Frame-Options, X-Content-Type-Options, Referrer-Policy
- HTTP/2 et HTTP/3 : Support des protocoles modernes
11. Tests de sécurité
11.1 Tests réguliers
- SAST : Test de sécurité statique des applications (clippy, cargo-audit)
- DAST : Test de sécurité dynamique des applications (analyse à l'exécution)
- Tests de pénétration : Tests de pénétration externes annuels
11.2 Gestion des vulnérabilités
- Programme de divulgation : Politique de divulgation responsable
- Temps de réponse : Critique = 24 heures, Élevé = 7 jours
- Correctifs : Correctifs d'urgence déployés en quelques heures si nécessaire
12. Réponse aux incidents
En cas d'incident de sécurité :
- Détection et analyse : Identifier la portée et la gravité (1 heure)
- Confinement : Isoler les systèmes affectés (4 heures)
- Enquête : Déterminer la cause profonde et l'impact
- Notification : Informer les utilisateurs affectés (72 heures maximum)
- Récupération : Restaurer les opérations normales
- Post-incident : Examiner et améliorer les processus
13. Conformité et certifications
- RGPD : Conforme (protection des données UE)
- CCPA : Conforme (confidentialité Californie)
- SOC 2 Type II : Prévu
- ISO 27001 : Prévu
14. Signalement de sécurité
Vous avez trouvé une vulnérabilité de sécurité ?
- Email: [email protected]
- Ne pas : Divulguer publiquement avant que nous ayons eu 90 jours pour corriger
- Nous nous engageons à : Accusé de réception sous 24 heures, mises à jour régulières
- Remerciements : Chercheurs en sécurité crédités (si souhaité)
15. Contacter l'équipe de sécurité
- Email: [email protected]
- General: [email protected]