Tests d'intrusion : l'ultime rempart contre les pirates XSS et SQL injection : les deux failles les plus répandues

Quelles sont les failles les plus détectées sur les sites Web lors des tests d'intrusion ? "XSS (pour Cross site scripting) et SQL injection", répond sans hésiter Jonathan Azria.

Même réponse du côté d'Hervé Troalic, qui a aussi pu noter une évolution : "Alors qu'à la fin des années 90 et au début des années 2000, les attaques passaient majoritairement 'par le bas' et se concentraient sur des failles systèmes ou réseaux, elles utilisent souvent aujourd'hui des vulnérabilités applicatives. C'est en partie dû à un patch management toujours plus compliqué, mais aussi au développement même des applications, car leur profusion et leur agencement compliquent leur sécurisation".

 
Top 10 Web Application Security Risks for 2010
Source : OWASP
1 - Injection Une faille d'injection, telles l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est envoyée à un interpréteur en tant qu'élément d'une commande ou d'une requête. Les données hostiles de l'attaquant peuvent duper l'interpréteur afin de l'amener à exécuter des commandes fortuites ou accéder à des données non autorisées.
2 - Cross-Site Scripting (XSS) Les failles XSS se produisent chaque fois qu'une application prend des données non fiables et les envoie à un navigateur Web sans validation appropriée. XSS permet à des attaquants d'exécuter du script dans le navigateur de la victime afin de détourner des sessions utilisateur, défigurer des sites Web, ou rediriger l'utilisateur vers des sites malveillants.
3 - Violation de gestion d'authentification et de session Les fonctions applicatives relatives à l'authentification et la gestion de session ne sont souvent pas mises en œuvre correctement, permettant aux attaquants de compromettre les mots de passe, clés, jetons de session, ou d'exploiter d'autres failles d'implémentation pour s'approprier les identités d'autres utilisateurs.
4 - Références directes non sécurisées à un objet Une référence directe à un objet se produit quand un développeur expose une référence à un objet d'exécution interne, tel un fichier, un dossier, un enregistrement de base de données, ou une clé de base de données. Sans un contrôle d'accès ou autre protection, les attaquants peuvent manipuler ces références pour accéder à des données non autorisées..
5 - Falsification de requête intersite (CSRF) Une attaque CSRF (Cross Site Request Forgery) force le navigateur d'une victime authentifiée à envoyer une requête HTTP forgée, comprenant le cookie de session de la victime ainsi que toute autre information automatiquement inclue, à une application Web vulnérable. Ceci permet à l'attaquant de forcer le navigateur de la victime à générer des requêtes dont l'application vulnérable pense qu'elles émanent légitiment de la victime.
6 - Mauvaise configuration sécurité Une bonne sécurité exige d'avoir une configuration sécurisée définie et déployée pour l'application, le serveur d'application, serveur web, serveur de base de données, et la plate-forme. Tous ces paramètres doivent être définis, mis en oeuvre, et maintenu afin de ne pas comprendre de failles de sécurité. Ceci implique de maintenir tous les logiciels à jour, y compris toutes les bibliothèques de code employées par l'application.
7 - Stockage cryptographique non sécurisé Beaucoup d'applications web ne protègent pas correctement les données sensibles, telles que les cartes de crédit, SSNs, les informations d'authentification, avec un chiffrement ou un hash approprié. Les pirates peuvent voler ou modifier ces données faiblement protégées pour perpétrer un vol d'identité et d'autres crimes, telle que la fraude à la carte de crédit.
8 - Manque de restriction d'accès URL Beaucoup d'applications Web vérifient les droits d'accès URL avant de rendre les liens protégés. Cependant, les applications doivent effectuer des contrôles d'accès similaires chaque fois que ces pages sont ouvertes. Dans le cas contraire, les attaquants seront en mesure de forger des URL pour accéder à ces pages cachées de toute façon.
9 - Protection insuffisante de la couche transport Les applications ont souvent du mal à authentifier, chiffrer et protéger la confidentialité et l'intégrité d'un trafic réseau sensible. Quand elles le font, elles supportent parfois des algorithmes faibles, utilisent des certificats expirés ou invalides, ou ne les emploient pas correctement.
10 - Redirections et renvois non validés Les applications Web réorientent et font suivre fréquemment les utilisateurs vers d'autres pages et sites Web, et utilisent des données non fiables pour déterminer les pages de destination. Sans validation appropriée, les attaquants peuvent rediriger les victimes vers des sites de phishing ou de logiciel malveillant, ou utiliser les renvois pour accéder à des pages non-autorisées.