Sécurité
Posture sécurité de Tendro et procédure de divulgation responsable. Mis à jour le 15 juillet 2026.
Divulgation responsable
Si vous identifiez une vulnérabilité dans Tendro, contactez-nous à anthony@train-ia.fr (PGP key disponible sur demande).
Nos engagements :
- Accusé de réception sous 5 jours ouvrés.
- Pas d'action légale tant que la divulgation est responsable : pas d'exfiltration de données utilisateur, pas de DoS, pas de disclosure publique avant correctif.
- Mention dans le hall-of-fame ci-dessous (avec votre accord) après correction.
- Délai cible de correction : 30 jours pour les vulns critiques, 90 jours pour les autres.
Hébergement & sous-traitants
L'hébergement et le stockage des données Tendro sont dans l'Union européenne. Quelques prestataires sont des sociétés établies aux États-Unis (Anthropic, Resend, hCaptcha) ; ces transferts sont encadrés par les Clauses Contractuelles Types :
- Application web : Vercel (région Europe).
- Base de données + Auth + fichiers : Supabase (région UE, Paris).
- Queue & rate-limit : Upstash Redis (région UE).
- Worker parsing : VPS IONOS (datacenter Allemagne / France).
- OCR (PDFs scannés) : Mistral AI (entreprise française, API EU).
- Analyse & rédaction IA : Anthropic (Claude, appel API direct, États-Unis) — transfert encadré par les Clauses Contractuelles Types.
- Emails & alertes de sécurité : Resend (États-Unis, CCT) — invitations, notifications, alerte de nouvelle connexion.
- Anti-bot à la connexion : hCaptcha / Intuition Machines (États-Unis, CCT).
- Tracking d'erreurs : Sentry (région UE — résidence des données EU).
La liste détaillée des sous-traitants avec leur DPA est disponible sur demande à des fins de conformité Article 28 RGPD.
Mesures techniques
- Chiffrement : TLS 1.2+ partout, HSTS preload (max-age 2 ans), `Strict-Transport-Security` actif.
- Multi-tenant: Row Level Security PostgreSQL FORCE sur toutes les tables — la base de données refuse l'accès à toute donnée qui n'appartient pas à l'utilisateur authentifié, même en cas de bug applicatif.
- Authentification : Supabase Auth (JWT signés), cookies HttpOnly + Secure + SameSite, rate-limit 5 tentatives sur 15 minutes par couple IP/email.
- Alerte de connexion: une connexion depuis un appareil non reconnu (cookie d'appareil signé, registre conservé 12 mois) déclenche une alerte de sécurité par email + notification in-app. Localisation approximative dérivée de l'IP sans service tiers.
- Content Security Policystricte en production : pas d'
unsafe-eval, pas de scripts externes hors hCaptcha. - Pipeline de parsing : worker Docker non-root, système de fichiers en lecture seule, capacités Linux supprimées, jobs signés HMAC-SHA256 — un attaquant qui aurait accès à la queue ne peut pas forger de jobs.
- Anti-traversal & anti-bombe : tout chemin de fichier est validé contre
userId/consultationId/, les archives ZIP sont cappées à 200 MB décompressé.
Mesures organisationnelles
- Aucun secret en clair dans le code source. Vault chiffré (1Password / Bitwarden) pour les credentials. Rotation périodique des tokens.
- Backups Postgres (Point-In-Time Recovery 7 jours) et Storage (versioning 30 jours). RTO cible 1 heure, RPO 30 minutes. Drills de restauration trimestriels.
- Tests automatisés (vitest, > 230 cas) sur chaque modification ; scan de secrets (gitleaks) et de dépendances (Dependabot, npm audit) en CI.
- Modèle de menaces formalisé STRIDE sur les 3 assets critiques (auth, stockage, pipeline). Revu tous les 6 mois.
Conformité RGPD
- Politique de confidentialité
- Conditions générales d'utilisation
- Mentions légales
- Droit d'effacement (Art. 17 RGPD) : suppression de compte disponible dans Paramètres → Mon compte → Supprimer mon compte. Effacement complet sous 30 jours.
- Notification de violation: en cas d'incident de sécurité affectant des données personnelles, notification CNIL sous 72 heures et information directe des utilisateurs concernés conformément aux Art. 33-34 RGPD.
Hall of fame
Personne pour le moment. Soyez le ou la première :)
Pour toute question commerciale ou DPA : anthony@train-ia.fr.