La « Common Weakness Enumeration » (liste des vulnérabilités courantes) élaborée par MITRE, organisation à but non lucratif, comprend la liste 2010 des 25 erreurs de programmation les plus dangereuses. Cette liste est dressée par plus de 50 experts issus d'organisations de renom telles que le SANS Institute, RSA, Red Hat Sun, Microsoft, etc.

??Les 25 erreurs de programmation les plus dangereuses, répertoriées par SANS et MITRE'

  1. Non-conservation de la structure des pages Web (utilisation de scripts intersites)
  2. Mauvais nettoyage d'éléments spéciaux utilisés pour une commande SQL (injection SQL)
  3. Copie dans le tampon sans contrôle de la taille de l'entrée (??Classic Buffer Overflow?)
  4. Falsification de demande intersite (Cross-site request forgery, CSRF)
  5. Mauvais contrôle d'accès (autorisation)
  6. Décision relative à la sécurité, fondée sur des données d'entrée non approuvées
  7. Limitation erronée d'un chemin d'accès à un répertoire restreint (??Path Traversal?)
  8. Absence de restrictions au téléchargement de fichiers dangereux
  9. Mauvais nettoyage d'éléments spéciaux utilisés dans une commande d'OS (??OS Command Injection?)
  10. Absence de chiffrement des données sensibles
  11. Utilisation d'informations d'authentification codées en dur
  12. Accès au tampon avec une valeur de longueur incorrecte
  13. Mauvais contrôle des noms de fichiers pour la directive include/require dans un programme PHP (??PHP File Inclusion?)
  14. Validation erronée d'un index de tableau
  15. Mauvaise recherche de conditions inhabituelles ou exceptionnelles
  16. Divulgation d'informations dans un message d'erreur
  17. Dépassement ou bouclage d'entier (??Integer overflow or wraparound?)
  18. Calcul incorrect de la taille du tampon
  19. Absence d'authentification pour une fonction critique
  20. Téléchargement de code sans contrôle d'intégrité
  21. Octroi erroné d'autorisations pour les ressources critiques
  22. Affectation de ressources sans limites
  23. Redirection d'URL vers un site non approuvé (« Open Redirect »)
  24. Utilisation d'un algorithme de chiffrement décrypté ou dangereux
  25. Situation de concurrence

Les plus graves erreurs de programmation pouvant rendre les logiciels vulnérables sont classées par ordre d'importance. Toutes les failles relevées sont dangereuses, car elles permettent souvent aux pirates informatiques de prendre le contrôle total d'un logiciel, de voler des données ou d'empêcher un logiciel de fonctionner. L'utilisation de scripts intersites (XSS), l'injection SQL et le dépassement de tampon sont considérées comme les pires erreurs répertoriées. Ce classement fournit également une description technique détaillée des failles, des exemples de code avec les modes de piratage associés, ainsi que des méthodes de prévention et de maîtrise des erreurs.

Source :