Analyse de teinte

Définition, exemples et bonnes pratiques

À retenir

  • Source : l'endroit d'où proviennent les données non fiables (entrée utilisateur, réseau).
  • Puits (Sink) : la fonction sensible où la donnée ne doit pas arriver si elle est encore teintée.
  • Propagation : le chemin parcouru par la donnée dans les variables du programme.

L’analyse de teinte est une technique de sécurité informatique qui consiste à marquer des données (souvent issues d'un utilisateur externe) comme étant potentiellement dangereuses ou « souillées ». Le système suit ensuite le parcours de ces données à travers le code pour s'assurer qu'elles ne touchent pas de zones critiques sans avoir été préalablement nettoyées.

Imaginez que vous mettiez un traceur GPS sur un colis suspect arrivant à l'entrepôt : l'analyse de teinte permet de vérifier que ce colis ne finit pas dans le coffre-fort sans avoir été inspecté par la sécurité.

Étymologie

Traduction directe de l'anglais taint analysis. Le mot anglais taint signifie « souillure » ou « corruption ». En informatique, on a adopté l'idée de « teinter » la donnée (lui donner une couleur spécifique) pour la distinguer des données internes de confiance.

Exemples d'usage

  • Vérifier qu'un texte saisi par un internaute dans un formulaire ne soit pas utilisé directement dans une commande de base de données (pour éviter les injections SQL).
  • S'assurer que les informations d'un capteur public ne modifient pas les réglages de sécurité d'un système industriel sans passer par un filtre de validation.

Cas d'usage

Ce concept est principalement utilisé dans le développement sécurisé (DevSecOps) et l'audit de code. Il intervient lors de tests statiques (analyse du code écrit) ou dynamiques (analyse du programme en cours d'exécution) pour repérer des vulnérabilités comme le Cross-Site Scripting (XSS) ou les dépassements de tampon.

Bonnes pratiques

La règle d'or est de toujours placer des « fonctions de nettoyage » (sanitisation) entre une source de donnée « teintée » et un point de sortie sensible. Une donnée doit perdre sa teinte (être considérée comme saine) uniquement après avoir été validée ou transformée pour être inoffensive.

Synonymes

analyse de propagation suivi de flux de données taint analysis

Antonymes

analyse de confiance vérification statique simple

Conseil

Si vous débutez, visualisez le flux de données de votre application : dès qu'une information vient de l'extérieur (un input, une URL, un fichier), considérez-la comme 'teintée' et ne l'utilisez jamais telle quelle dans une fonction sensible.

Questions fréquentes

Qu'est-ce qu'une donnée 'teintée' ?

C'est une donnée qui provient d'une source externe non vérifiée et qui est marquée par le système comme potentiellement malveillante.

L'analyse de teinte est-elle automatique ?

Oui, il existe des outils spécialisés (analyseurs statiques et dynamiques) qui automatisent ce traçage pour aider les développeurs à sécuriser leur code.