HTTP/2 : 8 failles causent des dénis de services

Plusieurs implémentations de HTTP/2, la dernière version du protocole de réseau HTTP, est vulnérables à cause de multiple failles qui affectent les logiciels de serveur web les plus populaires, y compris Apache, IIS de Microsoft et NGINX.

L’Hypertext Transfer Protocol est un protocole de communication client-serveur développé pour le World Wide Web. HTTPS (avec S pour secured, soit « sécurisé ») est la variante sécurisée par l’usage des protocoles SSL ou TLS.

C’est un protocole de la couche application. Il peut fonctionner sur n’importe quelle connexion fiable, dans les faits on utilise le protocole TCP comme couche de transport. Un serveur utilise alors par défaut le port 80 (443 pour HTTPS).

Les clients HTTP les plus connus sont les navigateurs Web permettant à un utilisateur d’accéder à un serveur contenant les données. Il existe aussi des systèmes pour récupérer automatiquement le contenu d’un site tel que les aspirateurs de site Web ou les robots d’indexation.

Lancé en Mai 2015, HTTP/2 a été conçu pour assurer plus de sécurité et une meilleure expérience en ligne en améliorant le temps de chargement des pages web. Aujourd’hui, plus d’une centaine de millions de sites (prés de 40% des sites sur Internet) utilisent ce protocole.

Le développement a débuté à la suite de la création du protocole SPDY proposé par Google afin de réduire le temps de chargement des pages Web. Le groupe de travail httpbis s’était initialement interdit de proposer une nouvelle version, concentrant son activité sur la clarification des spécifications d’HTTP 1.1. Considérant l’arrivée de SPDY et son adoption rapide sur le Web, avec notamment des implémentations dans deux des principaux navigateurs Web, Google Chrome et Mozilla Firefox, Mark Nottingham, « chair » d’httpbis, a émis l’opinion qu’il était temps d’envisager HTTP/2 et proposé d’amender la charte d’httpbis en ce sens, initiant de fait le développement du nouveau protocole.

Le module permettant la prise en charge du protocole est disponible depuis la version 2.4.17 du serveur Web Apache, et depuis la version 1.9.5 de Nginx.

Parmi les 8 vulnérabilités, sept ont été découverte par Jonathan Looney de Netflix et une par Piotr Sikora de Google. Elles existent à cause d’un épuisement de ressource lors de la manipulation d’entrées malveillantes, permettant au client de surcharger le code de gestion de la file d’attente du serveur.

Les vulnérabilités peuvent être exploité en lançant des attaques de déni de service (DoS) contre les millions de services en ligne et les sites hébergés sur un serveur web ayant une implémentation vulnérable.

Scénario d’attaque: Un client malveillant demande à un serveur vulnérable ciblé de faire quelque chose, cela génère une réponse mais ensuite le client refuse de lire la réponse, le forçant à consommer plus de mémoire et de ressources de processeur pour traiter les requêtes.

“Ces failles permettent à un petit nombre de sessions malicieuses à faible débit d’empêcher aux participants de la connexion d’ajouter du travail supplémentaire. Ces attaques épuisent les ressources pour que les autres connexions ou processus sur la même machines soient impactées,” a expliqué Netflix dans un rapport.

Détails sur ces vulnérabilités d’implémentations de HTTP/2

La plupart des vulnérabilités listées affectent la couche de transport:

  1. CVE-2019-9511 — HTTP/2 “Data Dribble”
  2. CVE-2019-9512 — HTTP/2 “Ping Flood”
  3. CVE-2019-9513 — HTTP/2 “Resource Loop”
  4. CVE-2019-9514 — HTTP/2 “Reset Flood”
  5. CVE-2019-9515 — “Settings Flood”
  6. CVE-2019-9516 — “0-Length Headers Leak”
  7. CVE-2017-9517 — “Internal Data Buffering”
  8. CVE-2019-9518 — “Request Data/Header Flood”

“Certaines sont assez efficaces et permettent à un système de causer des ravages sur plusieurs serveurs. Les autres attaques sont moins efficaces; cependant, même les attaques moins efficaces peuvent permettre des attaques de déni de services distribuées qui sont difficiles à détecter et à bloquer,” déclare le rapport.

Il faut préciser que les vulnérabilités peuvent seulement être utilisé pour provoquer un déni de service et ne permet pas aux pirates de compromettre la confidentialité ou l’intégrité des données contenus dans les serveurs vulnérables.

L’équipe de sécurité de Netflix, qui s’est associé à Google et au centre de coordination CERT pour divulgué ces failles, a découvert 7 failles parmi les 8 failles dans les implémentation de serveurs en Mai 2019 et les a signalé à toutes les personnes concernées.

Selon CERT, les compagnies affectées sont NGINXApacheH2O, Nghttp2, Microsoft (IIS), CloudflareAkamai, Apple (SwiftNIO), Amazon, Facebook (Proxygen), Node.js, et le proxy Envoy. La plupart d’entre elles ont déjà partagé des patchs et des rapports de sécurité.

Si cet article vous a plu, jetez un œil à notre précédent article.

Poster un Commentaire

avatar
  S’abonner  
Notifier de