Vigil@nce : TCP, Firewalls, TCP Split Handshake
avril 2011 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant disposant d’un serveur illicite peut employer une
séquence d’initialisation TCP spéciale, afin de forcer le firewall
à ouvrir une session TCP vers le client.
– Gravité : 1/4
– Date création : 21/04/2011
PRODUITS CONCERNÉS
– Cisco ASA Software
– Cisco IOS
– Cisco PIX Software
– Cisco Router
– Fortinet FortiGate
– NetScreen Firewall
– NetScreen ScreenOS
– Protocole TCP
DESCRIPTION DE LA VULNÉRABILITÉ
Une séquence d’initialisation de session TCP commence par :
– le client envoie un paquet avec le drapeau SYN
– le serveur répond un SYN-ACK
– le client répond un ACK
La RFC 793 l’exprime en 4 étapes (page 27, "simultaneous-open
handshake") :
– le client envoie un paquet avec le drapeau SYN
– le serveur répond un ACK (peut être ignoré par le client)
– le serveur envoie un SYN
– le client répond un ACK
Linux, Windows et MacOS implémentent incorrectement le
"simultaneous-open handshake" :
– le client Linux/Windows/MacOS envoie un paquet avec le drapeau
SYN
– le serveur répond un ACK (peut être ignoré par le client)
– le serveur envoie un SYN
– le client Linux/Windows/MacOS répond un SYN-ACK (au lieu d’un
ACK simple)
Lorsque le serveur répond un ACK, un firewall sur le chemin vient
de voir passer un SYN, puis un SYN-ACK, puis un ACK. Certains
firewalls interprètent ces trois échanges comme une connexion du
serveur vers le client.
Un attaquant disposant d’un serveur illicite peut donc employer
une séquence d’initialisation TCP spéciale, afin de forcer le
firewall à ouvrir une session TCP vers le client. On peut noter
que l’état interne du firewall est incorrect, mais que cette
session TCP a été initialisée par le client.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/TCP-Firewalls-TCP-Split-Handshake-10590