Toolinux Linto.AI OpenPAAS OBM Hubl.IN Linagora

HTTP/2 : quatre failles majeures

jeudi 11 août 2016

HTTP/2 introduit de nouveaux mécanismes qui augmentent effectivement la surface d’attaque des infrastructures Web critiques ; celles-ci deviennent alors vulnérables à de nouveaux types d’attaques.

Les chercheurs du centre de défense d’Imperva ont étudié de manière approfondie les implémentations serveur du protocole HTTP/2 des éditeurs Apache, Microsoft, NGINX, Jetty et nghttp2. L’équipe a découvert des vulnérabilités exploitables dans l’ensemble des principaux mécanismes de HTTP/2 qu’elle a examinés, dont deux similaires à des vulnérabilités bien connues et largement exploitées dans HTTP/1.x. Il est probable que d’autres implémentations du protocole HTTP/2 soient également touchées par ces vulnérabilités.

Ces menaces sont particulièrement préoccupantes, étant donné l’adoption rapide du protocole HTTP/2. Selon W3Techs, 8,7 % de tous les sites Web, soit environ 85 millions de sites, utilisent HTTP/2, un chiffre qui a presque quadruplé par rapport aux 2,3 % seulement enregistrés en décembre 2015.

Les quatre vecteurs d’attaques majeurs découverts sont :

- Slow Read – L’attaque fait appel à un client malveillant pour lire les réponses très lentement ; elle est identique à la célèbre attaque par déni de service distribué (DDoS) Slowloris qui toucha les principales sociétés de traitement des cartes de crédit en 2010. Il est intéressant de souligner que, bien que les attaques Slow Read aient été amplement étudiées dans l’écosystème HTTP/1.x, elles se révèlent toujours efficaces, cette fois-ci dans la couche applicative des implémentations de HTTP/2. Le centre de défense d’Imperva a identifié des variantes de cette vulnérabilité sur les serveurs Web les plus populaires, notamment Apache, IIS, Jetty, NGINX, ou encore nghttp2.
- HPACK Bomb – Cette attaque de la couche de compression s’apparente à une bombe de décompression. L’attaquant élabore de petits messages apparemment innocents, qui représentent finalement plusieurs gigaoctets de données sur le serveur. Cela mobilise l’intégralité des ressources mémoire du serveur, le rendant indisponible.
- Dependency Cycle Attack – L’attaque tire parti des mécanismes de contrôle des flux introduits dans HTTP/2 pour l’optimisation du réseau. Le client malveillant forge des requêtes qui induisent un cycle de dépendances ; le serveur, en tentant de traiter ces dernières, est alors entraîné de force dans une boucle infinie.
- Stream Multiplexing Abuse – L’attaquant utilise les failles existant dans l’implémentation par les serveurs de la fonctionnalité de multiplexage des flux, dans le but de faire planter le serveur. Cela finit par générer un déni de service à l’égard des utilisateurs légitimes.

Lien : le rapport