Vulnérabilité des services web

Les premières attaques réseau exploitaient des vulnérabilités liées à l'implémentation des protocoles de la suite TCP/IP. Avec la correction progressive de ces vulnérabilités les attaques se sont décalées vers les couches applicatives et en particulier le web, dans la mesure où la plupart des entreprises ouvrent leur système pare-feu pour le traffic destiné au web. 
Le protocole HTTP (ou HTTPS) est le standard permettant de véhiculer les pages web par un mécanisme de requêtes et de réponses. Utilisé essentiellement pour transporter des pages web informationnelles (pages web statiques), le web est rapidement devenu un support interactif permettant de fournir des services en ligne. Le terme 
d'« application web » désigne ainsi toute application dont l'interface est accessible à travers le web à l'aide d'un simple navigateur. Devenu le support d'un certain nombre de technologies (SOAP, Javascript, XML RPC, etc.), le protocole HTTP possède désormais un rôle stratégique certain dans la sécurité des systèmes d'information. 

Dans la mesure où les serveurs web sont de plus en plus sécurisés, les attaques se sont progressivement décalées vers l'exploitation des failles des applications web. 

Ainsi, la sécurité des services web doit être un élément pris en compte dès leur conception et leur développement.

Types de vulnérabilités

Vulnérabilités des applications web



Les vulnérabilités des applications web peuvent être catégorisées de la manière suivante :

  • Vulnérabilités du serveur web. Ce type de cas est de plus en plus rare car au fur et à mesure des années les principaux développeurs de serveurs web ont renforcé leur sécurisation ;
  • Manipulation des URL, consistant à modifier manuellement les paramètres des URL afin de modifier le comportement attendu du serveur web ;
  • Exploitation des faiblesses des identifiants de session et des mécanismes d'authentification ;
  • Injection de code HTML et Cross-Site Scripting ;
  • Injection de commandes SQL.

La nécessaire vérification des données d'entrée

Le protocole HTTP est par nature prévu pour gérer des requêtes, c'est-à-dire recevoir des données en entrée et envoyer des données en retour. Les données peuvent être envoyées de diverses façons :

  • Via l'URL de la page web
  • Dans les en-têtes HTTP
  • Dans le corps de la requête (requête POST)
  • Via un cookie




Le principe de base à retenir d'une manière générale lors de tout développement informatique est qu'il ne faut pas faire confiance aux données envoyées par le client. 

Ainsi, la quasi-totalité des vulnérabilités des services web est liée aux négligences des concepteurs, ne faisant pas de vérifications sur le format des données saisies par les utilisateurs.

Impact des attaques web

Les attaques à l'encontre des applications web sont toujours nuisibles car elles donnent une mauvaise image de l'entreprise. Les conséquences d'une attaque réussie peuvent notamment être une des suivantes :

  • Défacement de site web ;
  • Vol d'informations ;
  • Modification de données, notamment modification de données personnelles d'utilisateurs ;
  • Intrusion sur le serveur web.