Raccourcis clavier

Appuyez sur ← ou → pour passer d'un chapitre à l'autre

Appuyez sur S ou / pour rechercher dans la documentation

Appuyez sur ? pour afficher cette aide

Appuyez sur Échap pour masquer cette aide

Modèle de menaces

Le modèle de menaces de Chatbotaurus part des menaces, pas des contrôles. La première version du programme de sécurité était partie d'un inventaire de ce qui existait. Le modèle STRIDE actuel part des actifs et des flux, puis note ce qui manque. À la fin, vous saurez quelles menaces sont couvertes, lesquelles ne le sont pas, et dans quel ordre se classent les risques résiduels.

Une honnêteté d'abord

Ce modèle a été écrit par l'équipe qui a écrit le code. Il ne peut pas se valider lui-même. C'est une hypothèse structurée sur l'emplacement du risque, à confirmer ou réfuter par un test d'intrusion indépendant. Ce test n'a pas eu lieu à ce jour.

Actifs, par ordre de criticité décroissante

ActifPourquoi il compte
Données de santé et dossierscatégorie particulière (article 9 du RGPD)
Secrets (connecteurs, base, clés de signature, clés d'API de modèles)une fuite ouvre tout le reste
Données des clients et frontière entre organisationsl'isolation est le cœur du produit
Matériel d'authentification (jetons, TOTP, WebAuthn, clés d'API)prise de compte
Intégrité du journal d'auditpreuve en cas d'incident
Entrées et sorties du modèle de langageinjection, fuite
Facturation et créditsfraude
Sauvegardes et restaurationune fuite donne un dossier complet

Frontières de confiance

Les flux traversent neuf frontières : Internet, bordure TLS, pile du serveur API, cerveau de l'agent, modèle de langage, connecteurs, recherche documentaire (RAG), stockage, et enfin les agents de sauvegarde. STRIDE est appliqué à chaque passage de frontière.

STRIDE sur les passages critiques

PassageMenaceContrôleÉtat
Bordure vers APIForce brute sur les compteslimiteur par compte et par adressecâblé
Bordure vers APIUsurpation d'adresse par en-têtel'en-tête du proxy n'est lu que si l'opérateur l'autorisecâblé
Bordure vers APIClickjacking, XSSen-têtes de sécuritécâblé
Bordure vers APICSRF sur cookiejeton anti-CSRF à double soumissioncâblé
Bordure vers APIRequête lentedélai maximal par requêtecâblé
Bordure vers APIInondation distribuée, épuisement de connexionstraitement en bordurelacune (opérateur)
AuthentificationJeton forgéalgorithme épinglécâblé
AuthentificationAttaque sur mot de passeArgon2idcâblé
AutorisationEscalade de privilègesrôles et politiques Cedarcâblé
AutorisationIDOR / BOLA (accès à la ressource d'une autre organisation)gardes de handler et RLS PostgreSQLpartiel : non prouvé de façon adverse
AgentInjection directe (anglais, français, unicode, base64)filtre d'injection, heuristiquecâblé
AgentAction destructive lancée par le modèleporte d'agence excessive : suppression et paiement exigent une approbation humainecâblé
AgentInjection indirecte (texte malveillant dans un document ou une sortie d'outil)neutralisation du contenu non fiable avant retour dans l'invitepartiel (heuristique)
AgentParaphrase, multi-tours, homoglyphesle filtre est une heuristique, pas un classificateurlacune
ConnecteursSSRF, y compris rebond DNSvérification de l'adresse résolue, adresse épingléecâblé
ConnecteursFuite de secret entre organisationssecrets résolus à la requête, par organisationcâblé
Retour du modèleFuite de l'invite système ou de données personnellesanalyse de sortiecâblé sur /prediction, lacune sur le flux du chat
StockageInjection SQLrequêtes paramétréescâblé
StockageAltération du journalchaîne de hachage, vérification à la demandecâblé
StockageChiffrement des données de santé au reposchiffrement applicatif des colonnes de santé (actif en production : PHI_AT_REST_KEY est obligatoire au démarrage), chiffrement de disque documentépartiel : l'étendue sur toutes les données de santé n'est pas établie
SauvegardesRestauration forgéeURL signée à durée courte et approbation humainecâblé
SauvegardesImage d'agent hors UEimage servie par un miroir UE, registres hors UE interdits par une gardecâblé

Plusieurs connecteurs parlent en http:// à l'intérieur d'un même plan : c'est une décision documentée et acceptée. Elle est à rouvrir si un connecteur traverse un jour une frontière d'hôte.

Risques résiduels, par ordre

  1. Journal de lecture des données de santé incomplet : les lectures de l'agent sur l'ERP ne sont pas toutes tracées.
  2. Sortie du chat non analysée pour les données personnelles.
  3. IDOR non prouvé de façon adverse.
  4. Contrôles RGPD de santé à étendre : l'effacement et la rétention sont actifs par défaut pour les journaux vocaux et les comptes en attente de suppression, mais leur étendue sur le reste des données de santé reste à vérifier surface par surface.
  5. Déni de service au niveau applicatif, hors bordure.
  6. Aucune validation indépendante : test d'intrusion, certification d'hébergement de données de santé, supervision des incidents.

Menaces propres à l'IA

MenaceMitigation présenteLimite
Injection d'invitefiltre d'entrée, neutralisation du contenu récupéréheuristique
Exfiltration par le modèleanalyse de sortiepartielle (voir ci-dessus)
Empoisonnement de modèlesomme SHA-256 des modèles comparée à une base épingléela signature du manifeste est réservée, jamais vérifiée
Usage non autorisé du modèleauthentification, limitation de débit
Hallucinationmise en règle sur sources (grounding)une réponse sans source est signalée, pas supprimée

Acteurs

Opportunistes, concurrents, acteurs étatiques, personnel interne, militants : le modèle les considère tous, avec des capacités croissantes. Aucune de ces catégories n'est exclue de l'analyse.

Exercices

Des scénarios d'exercice sont prévus (fuite de données, menace interne, rançongiciel, chaîne d'approvisionnement). Le dépôt n'établit pas qu'ils ont été joués. La page publique du plan d'incident annonce un exercice sur table trimestriel : c'est un engagement, pas un historique.

Revue du modèle

Le modèle est repris après chaque incident (étape de retour d'expérience du plan d'incident). Une revue adverse du modèle lui-même a été faite en interne et a relevé des frontières omises, notamment les webhooks entrants.

Voir aussi