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.
Product | Branch | Versions known to be vulnerable | Fixes introduced in | Severity | CVSSv3 score1 | Vulnerable component or feature |
BIG-IP (LTM, AAM, AFM, Analytics, APM, ASM, DNS, Edge Gateway, FPS, GTM, Link Controller, PEM, WebAccelerator) | 15.x | 15.0.0 | None | High | 7.5 | Self IP addresses Control plane (management interface)Backend systems accessed via a FastL4 virtual server |
14.x | 14.0.0 - 14.1.0 | None | ||||
13.x | 13.1.0 - 13.1.1 | None | ||||
12.x | 12.1.0 - 12.1.4 | None | ||||
11.x | 11.5.2 - 11.6.4 | None | ||||
Enterprise Manager | 3.x | 3.1.1 | None | High | 7.5 | Self IP addresses Control plane (management interface) |
BIG-IQ Centralized Management | 6.x | 6.0.0 - 6.1.0 | None | High | 7.5 | Self IP addresses Control plane (management interface) |
5.x | 5.1.0 - 5.4.0 | None | ||||
F5 iWorkflow | 2.x | 2.3.0 | None | High | 7.5 | Linux kernel |
Traffix SDC | 5.x | 5.0.0 - 5.1.0 | None | High | 7.5 | Linux kernel |