# Attaque TCP reset

L'attaque TCP reset consiste à interrompre les connexions TCP/IP entre tiers. Même si le nom de cette technique suggère de mauvaises intentions, parfois cette interruption est bénéfique.

## Les réinitialisations TCP

TCP est un des protocoles les plus répandus sur Internet. Contrairement à UDP, on l'utilise à chaque fois qu'une connexion virtuelle entre deux ordinateurs est nécessaire. Par exemple, un serveur web et un navigateur web échangent leurs données à l'aide du protocole HTTP à l'intérieur d'une connexion TCP. Cette connexion est limitée dans le temps (elle a un début et une fin).
Dans le flux de « segments » TCP échangés, chaque segment comporte un entête (TCP header). Cet entête comporte un bit appelé « drapeau de réinitialisation » (reset flag) et qui est noté RST. Lorsque ce bit vaut 1, la connexion est interrompue brutalement. Tout paquet ultérieur dont l'entête indique qu'il appartient à la même connexion doit être jeté.
Le bit de réinitialisation a été prévu pour des situations comme celle où un ordinateur A « plante » ou est éteint alors qu'une connexion TCP était en cours avec un ordinateur B. L'ordinateur B continue à envoyer des paquets puisqu'il ne sait pas que l'ordinateur A n'est plus en ligne. Quand l'ordinateur A redémarre, il continue à recevoir les paquets de cette ancienne connexion. Il ne sait pas d'où ces paquets proviennent et ne sait pas quoi en faire, donc le mieux qu'il ait à faire est d'envoyer à B un segment TCP comportant le bit de réinitialisation. B sait alors que cette connexion n'est plus fonctionnelle et arrête d'envoyer des données à A.

## Réinitialisations construites de toutes pièces

Dans le scénario qui précède, le bit de réinitialisation TCP a été envoyé par un ordinateur qui était un des deux participants A et B à la connexion. Rien n'empêche un troisième ordinateur C, capable de préférence de surveiller les connexions entre A et B, d'envoyer un segment fabriqué de toutes pièces (« forgé ») à A, B ou les deux. Le paquet falsifié envoyé à B indique dans son champ adresse source qu'il provient de A ; le paquet falsifié envoyé à A indique qu'il provient de B. Les numéros de ports doivent aussi correspondre à ceux de la connexion en cours. C est ainsi en mesure d'interrompre la connexion entre A et B.

## Ces paquets forgés sont-ils forcément nocifs ?

Un informaticien malveillant utilisera ainsi des paquets forgés pour interrompre les connexions entre des tiers. Ce n'est toutefois pas le seul cas de figure. Le logiciel de sécurité "Buster" envoie des paquets forgés pour fermer des connexions entre ports non autorisés par l'administrateur du réseau, accomplissant ainsi la fonction normalement attribuée aux pare-feux. Le logiciel Snort peut envoyer des paquets forgés pour interrompre des connexions suspectes. Enfin, des fournisseurs d'accès ou des moteurs de recherche sur Internet peuvent interrompre des connexions entre tiers, probablement pour des raisons de performance.
En 2007, Comcast a utilisé cette technique pour interrompre par exemple des connexions pair à pair établies par ses clients. Cette pratique a été jugée contraire à la neutralité d'Internet et la FCC lui a ordonné d'y mettre fin.