Le 23e Chaos Computer Club, une conférence sur la sécurité organisée en Allemagne, a débuté cette semaine, et pour changer, les premières discussions font déjà peur. En plus de l’avertissement du chercheur qui a trouvé une brèche dans le réseau GSM 2G qui affecte des millions de téléphones portables, aujourd’hui, deux chercheurs ont averti que des millions de sites sont vulnérables à un nouveau type d’attaque par déni de service, appelé HashDos, qui peut les laisser hors de l’antenne s’ils ne sont pas traités rapidement.
Selon les découvreurs du fossé, les chercheurs Alexander Klink et Julian Wälde, le problème réside dans la façon dont certaines langues utilisées sur les serveurs web stockent les valeurs dans une table de hachage. La grande majorité fait de même et les personnes malveillantes peuvent en profiter pour envoyer des valeurs prédéterminées dont elles savent qu’elles ne seront pas traitées comme elles le devraient. Ces requêtes génèrent en fin de compte une fonction quadratique qui surcharge les serveurs.
Pour prouver que la méthode fonctionne, lors de la présentation des détails de l’attaque, ils ont envoyé des requêtes HTTP POST d’une taille de 2 Mo à un serveur web exécutant Apache Tomcat. Le traitement du serveur a donc atteint 100 % et est resté à ce niveau pendant toute la durée de la conversation.
Quelles sont les langues concernées ? La liste n’est pas courte. Il contient PHP, ASP.NET, Java, Python, Ruby, Apache Tomcat, Apache Geronimo, Jetty, Glassfish, et même V8, le moteur de rendu JavaScript de Google.
Microsoft a déjà annoncé qu’il publiera une mise à niveau vers ASP.NET qui résout ce problème et les versions plus récentes de PHP (5.4.0RC4 et 5.3.9) ont déjà une solution. Mais selon le W3Techs, la grande majorité de ces sites fonctionnent encore avec la version 5.2. Le PHP est le langage le plus utilisé dans les serveurs web dans le monde, étant responsable d’environ 77% d’entre eux, soit 20 millions de sites et 1 million de serveurs web (chiffres estimés).
Voici une remarque qui offre une perspective intéressante : les créateurs de Perl, un langage relativement peu utilisé sur Internet, ont abordé ce problème à la mi-2003.
L’explication est extrêmement complexe, mais elle mérite une bonne recherche si vous voulez impressionner vos amis intellos : lisez les détails dans ce PDF publié hier par le duo et voyez ici la liste complète des langues concernées et dans quelles versions cette faille a déjà été corrigée.