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