Netflix fait de la sécurité : SACK Panic

3 min. lecture

Share

Le 17 juin dernier, Jonathan Looney, expert chez Netflix a découvert un ensemble de vulnérabilités TCP affectant le noyau de Linux et référencé sous le nom "TCP SACK Panic". Parmi ces vulnérabilités, certaines permettent à un attaquant de provoquer une exécution de code à distance, une élévation de privilège ou un déni de service.

Acquittement Sélectif SACK

La vulnérabilité touche un type d’acquittement TCP appelé « Selective Aknowledge » ou SACK. Dans un échange de flux TCP, la perte de nombreux paquets TCP peut entraîner une importante baisse de débit. La RFC2018 définit un acquittement sélectif permettant de signifier à l’émetteur qu’un certain nombre de paquets ont été perdus. Ce mécanisme permet de déterminer les segments à retransmettre, sans attendre l'expiration du temps d'attente (« retransmit timeout »). Pour plus de détails sur le fonctionnement de l’option SACK, vous pouvez aller consulter cet article en français : http://analyse-reseau.blogspot.com/2016/03/acquittements-selectifs-sack.html

Fonctionnement de la faille

SACK est un mécanisme optionnel, mais qui est activé par défaut sous Linux. Ainsi, toutes les distributions de Linux avec un kernel 2.6.29 et suivant (depuis mars 2009) sont potentiellement vulnérables (par exemple RedHat, Debian, SuSE et FreeBSD). Pendant le traitement des segments, la structure de données du tampon de socket (SKB) du noyau Linux devient fragmentée. Chaque fragment ayant à peu près la taille maximale de fenêtre TCP (MSS). Afin d’optimiser le traitement de ces blocs, le noyau Linux fusionne plusieurs SKB en un seul, ce qui peut provoquer un débordement de variable (Stack Overflow). Un attaquant peut envoyer une séquence de segments SACK avec une petite valeur de fenêtre TCP MSS et entraîner un Kernel Panic et donc un déni de service.

Protection avec un reverse proxy F5

Les boitiers F5 BigIP contiennent 2 OS distincts, l’un pour traiter le trafic : TMM (Traffic Management Microkernel), l’autre pour manager les boîtiers. Les adresses de Sef-IP et de Management sont vulnérables. En revanche, les « virtual servers » et « virtual IP adress » ne sont touchés par cette faille uniquement en cas d'utilisation du profil fastL4. Avec une implémentation protégeant l’adresse de management d’un accès à distance, les boîtiers ne peuvent donc pas être touchés par l'attaque SACK Panic. Cependant, comme expliqué dans l’article du support F5 : l’utilisation d’un Reverse Proxy n’est pas neutre d'un point de vu TCP dans l’exposition des serveurs Linux load-balancés. À l'exception du profil de load-balancing fastL4, le reverse-proxy F5 va permettre de protéger les Linux car la terminaison TCP s’effectue sur les boitiers qui ne sont pas vulnérables. Le principe du profil fastL4 est justement de propager certaines sessions jusqu’aux serveurs. Le TCP SACK est alors envoyé aux serveurs qui se trouvent potentiellement vulnérables au SACK Panic. Il reste le problème des « Self IP address » qui servent à communiquer en local sur les VLANS. F5 nous indique comment les protéger en désactivant certaines options. Vous pouvez vérifier si vos systèmes sont vulnérables dans le tableau situé dans l’article du support F5 et les équipes du support Nomios sont disponibles pour trouver la solution la plus adaptée à votre environnement.

ProductBranchVersions known to be vulnerableFixes introduced inSeverityCVSSv3 score1Vulnerable component or feature
BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, Edge Gateway, FPS, GTM, Link Controller, PEM, WebAccelerator)15.x15.0.0NoneHigh7.5Self IP addresses Control plane (management interface)Backend systems accessed via a FastL4 virtual server
14.x14.0.0 - 14.1.0None
13.x13.1.0 - 13.1.1None
12.x12.1.0 - 12.1.4None
11.x11.5.2 - 11.6.4None
Enterprise Manager3.x3.1.1NoneHigh7.5Self IP addresses Control plane (management interface)
BIG-IQ Centralized Management6.x6.0.0 - 6.1.0NoneHigh7.5Self IP addresses Control plane (management interface)
5.x5.1.0 - 5.4.0None
F5 iWorkflow2.x2.3.0NoneHigh7.5Linux kernel
Traffix SDC5.x5.0.0 - 5.1.0NoneHigh7.5Linux kernel

Inscrivez-vous à notre newsletter

Recevez dans votre boîte aux lettres électronique les dernières nouvelles sur la sécurité, des informations et les tendances du marché.

À la une

Plus de nouveautés