Sécurité
La sécurité comme invariant, pas comme fonctionnalité.
Frontière multi-tenant imposée au niveau de l’AST. Agents mTLS à rotation automatique. Un journal d’audit immuable. Détails ci-dessous.
Invariants d’architecture
- Chaque requête TSDB reçoit un organization_id. composeQuery et rewritePromQL ajoutent organization_id comme matcher obligatoire. Aucun chemin brut pour la saisie utilisateur — une fuite inter-tenant est structurellement impossible.
- Modèle JWT d’embed. Les clés d’API émettent des JWT à courte durée avec des filtres obligatoires dans les claims. Les handlers lisent les filtres dans les claims, jamais dans l’URL. L’usurpation via une URL forgée est impossible.
- Secrets via SecretBox (AES-256-GCM). Jetons OAuth, clés de signature des canaux et clés d’embed sont chiffrés avec une clé maître. Le texte clair n’atteint jamais les logs.
- Identité de l’agent = certificat client vérifié. Ni un en-tête, ni le corps. La validation mTLS a lieu dans la configuration TLS du serveur, pas dans le code applicatif.
- Les clés JWT tournent avec un en-tête kid. Plusieurs clés de signature coexistent en mémoire pendant la rotation. KeyRevocator invalide au besoin les jetons émis de façon anticipée.
- Les jetons de dashboards publics n’acceptent jamais d’org_id depuis l’URL. L’org_id est résolu côté serveur depuis la ligne du jeton — une URL forgée ne peut pas changer d’organisation.
Authentification
- Sessions cookie avec CSRF double-submit
- Mot de passe + bcrypt
- TOTP 2FA (RFC 6238)
- WebAuthn / passkeys
- OAuth : GitHub, Google, Apple
- Magic-link sans mot de passe
- SCIM 2.0 pour l’auto-provisioning depuis l’IdP
Sécurité du transport
- Cabinet en HTTPS — TLS 1.2+, HSTS en production
- Ingest mTLS — listener dédié, auth client obligatoire
- Certificats d’agent — TTL 24 h, rotation automatique
- CA d’agent intégrée, non publique
Données au repos
- Postgres — chiffrement au niveau disque (managé) ou applicatif (SecretBox pour les secrets)
- TSDB — chiffrement au niveau disque (LUKS / KMS cloud)
- Sauvegardes — chiffrées avec votre propre clé, non partagée
Politique de divulgation
Une vulnérabilité ? Écrivez à [email protected]. Empreinte PGP sur demande. Nous répondons sous 48 heures.
- Critique / RCE / fuite de données / contournement d’auth — corrigé sous 7 jours
- Élevée — corrigée sous 30 jours
- Moyenne — corrigée sous 90 jours
- Faible — au prochain release
La divulgation publique suit la sortie du correctif, avec votre crédit si vous le souhaitez. Nous récompensons les découvertes sérieuses.
Sous-traitants
L’offre managée utilise les sous-traitants ci-dessous. La liste complète avec finalité et périmètre des données figure dans le document DPA.
- Hébergement cloud — infrastructure (régions US, EU)
- Fournisseur de paiement mondial — traitement des paiements
- E-mail transactionnel
- CDN + protection DDoS