Que sont les cookies SYN?
Les cookies SYN sont une méthode par laquelle les administrateurs de serveur peuvent empêcher une forme d'attaque par déni de service (DoS) contre un serveur par le biais d'une méthode appelée SYN flooding. Ce type d'attaque utilise le processus par lequel une connexion est établie entre un client et un hôte, appelé une poignée de main à trois voies, pour que l'hôte reçoive un nombre excessif de demandes de clients, de gel ou de pannes du système. Toutefois, ces attaques sont en grande partie obsolètes, notamment grâce à des méthodes telles que l’utilisation de cookies SYN. Ces cookies ne présentent pas de menace pour la sécurité ni pour l'hôte ni pour les clients et ne causent pas de problèmes de connectivité.
La façon dont les cookies SYN fonctionnent est basée sur la méthode de base par laquelle de nombreux serveurs et utilisateurs, ou systèmes hôte et client, se connectent les uns aux autres. Ce processus est appelé une négociation à trois voies et commence lorsque le système client envoie une demande de connexion au système hôte. La demande s'appelle un message de synchronisation ou SYN et est reçue par le système hôte. Ce système hôte reconnaît alors que le SYN a été reçu en renvoyant un accusé de réception ou un message SYN-ACK au client.
Une fois que le système client a reçu ce message SYN-ACK, un message final ACK est renvoyé par le client à l'hôte. Lorsque le système hôte reçoit cet ACK final, il permet au client d'accéder au système et peut ensuite recevoir des demandes SYN supplémentaires d'autres clients. La plupart des serveurs hôtes ont une file d'attente relativement petite pour les demandes SYN, généralement huit à la fois.
La forme d'attaque DoS connue sous le nom d'inondation SYN l'utilise pour submerger un système hôte. Ceci est fait en envoyant un message SYN auquel un hôte SYN-ACK est envoyé en réponse, mais le message ACK final n'est pas envoyé par le client, laissant une position ouverte dans la file d'attente. Si cela est effectué correctement lors d'une attaque par flot SYN, la totalité de la file d'attente est occupée par ces demandes sans réponse et ne peut accepter de nouvelles demandes émanant de clients légitimes.
Les cookies SYN aident à contourner ce type d'attaque en permettant à un hôte d'agir comme s'il disposait d'une file d'attente plus longue que celle dont il dispose réellement. En cas d'attaque par inondation SYN, l'hôte peut utiliser des cookies SYN pour envoyer un SYN-ACK à un client, mais élimine l'entrée SYN pour ce client. Cela permet essentiellement à l'hôte de fonctionner comme si aucun SYN n'avait été reçu.
Une fois que ce client SYN-ACK avec SYN est reçu, le ACK correspondant renvoyé à l'hôte inclut des données concernant le SYN-ACK d'origine. L'hôte peut ensuite utiliser cet ACK et les cookies SYN inclus pour reconstruire le SYN-ACK d'origine et l'entrée appropriée pour cette demande d'origine. Une fois que cela est fait, le client peut être autorisé à se connecter à l'hôte, mais l'ensemble du processus a efficacement contourné la file d'attente qui pourrait sinon être occupée par une attaque SYN flood.