Makina Blog

Le blog Makina-corpus

Sécurité HTTP : Apache Traffic Server - Contrebande de HTTP


Plusieurs correctifs de sécurité viennent d'êtres appliqués dans les version 6 et 7 de Apache Traffic Server (ATS). Ces correctifs viennent corriger des failles découvertes grâce à nos recherches sur la contrebande HTTP.

On retrouve l'ensemble de ces correctifs sous une CVE unique CVE-2018-8004. L'annonce à été faite le 28 Août 2018.

L'annonce en elle-même est assez succincte :

There are multiple HTTP smuggling and cache poisoning issues when clients making malicious requests interact with ATS.

Que l'on pourrait traduire en Il y a de multiples problèmes de contrebande de HTTP et d’empoisonnement de cache quand des clients utilisant des requêtes malignes interagissent avec ATS.

ATS, ou Apache Traffic Server est un projet géré par la fondation Apache, mais il ne s'agit pas du serveur Apache httpd que la plupart des gens connaissent. ATS est plus une solution de load balancing et de Reverse proxy Cache, utilisé sur certains gros sites. On retrouvera par exemple ATS sur presque toutes les solutions utilisée par Yahoo, car à la base c'était un projet géré par Yahoo. On retrouve d'autres grands noms comme Linkedin ou Akamai.

Par nature (HTTP Smuggling/Cache poisoning) ce type de faille est assez sévère, puisque c'est justement le coeur de métier de ces briques que de servir de cache et de reverse proxy.

On peut retrouver une partie des ces failles corrigées dans les fichiers CHANGELOG :

Changes with Apache Traffic Server 7.1.3
(...)
  #3192 - Return 400 if there is whitespace after the field name and before the colon
  #3201 - Close the connection when returning a 400 error response
  #3231 - Validate Content-Length headers for incoming requests
  #3277 - Drain the request body if there is a cache hit.  Only drain if the
  #3413 - Fixes a case on chunked cached objects, 304s and Ranges
(...)

Changes with Apache Traffic Server 6.2.3
(...)
  #2561 - Fix possibility of NULL assignment to std::string
  #3976 - Return 400 if there is whitespace after the field name and before the colon
  #3978 - Close the connection when returning a 400 error response
  #3980 - Respond with 400 code when Content-Length headers mismatch, remove
  #3981 - Drain the request body if there is a cache hit.  Only drain if the
(...)

Pour le détail des exploitations de ces failles il vous faudra attendre quelque peu. Nous publierons prochainement un article beaucoup plus technique sur les impacts réels de ces failles.

En attendant, si vous voyez des serveurs ATS quelque part, surtout s'ils sont posés dans votre infra, devant vos sites webs, assurez-vous que les mises à jour soient faites (Et si vous voyez un ATS version 5, ou plus ancien encore, ils sont très certainement aussi impactés, mais ne bénéficient plus de mises à jour)..

Actualités en lien

Image
Symfony
11/04/2024

Access Control, biblio­thèque PHP pour gérer des droits d’ac­cès

Suite à un projet de gestion métier opéra­tion­nel dont la durée de vie et la main­te­nance sont à long termes, nous avons expé­ri­menté un passage de celui-ci sur l’archi­tec­ture hexa­go­nale et la clean archi­tec­ture.

Voir l'article
Image
Encart Article Eco-conception
25/04/2023

Comment compresser son code applicatif de manière efficace avec Nginx et Brotli ?

Dans cet article, nous allons mettre en place un algorithme de compression des données textuelles plus efficace, que celui utilisé habituellement, pour réduire le poids d'une page web.

Voir l'article
Image
Audit sécurité web site Drupal compromis
17/01/2023

Exemple d'audit de sécurité d'un site Drupal compromis

Les actions et découvertes effectuées lors d'un audit de sécurité d'un site Drupal compromis par une faille de sécurité.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus