Intrapole
VOUS  TES ICI : Accueil » Alertes Sécurité »

Veille sécurité Attaque sockstress

Le 8 Septembre 2009, la société Outpost24 diffusait une suite d’outils basée sur le protocole TCP. Ce logiciel, appelé « sockstress » combine plusieurs attaques qui détournent l’usage du protocole dans le but de rendre inaccessible un serveur. Ce type d’attaque est communément appelé « déni de service ».

Le déni de service

Une attaque par déni de service (DoS) a pour objectif d’affecter la disponibilité d’un service réseau. Le succès d’une attaque de ce type se mesure par l’impossibilité d’accéder au service souhaité. Les cibles principales de ces attaques sont les sites publics et plus particulièrement les sites de ecommerce ou de paris en ligne. Pour ces derniers, une attaque de déni de service s’accompagne d’autres pratiques frauduleuses telles que le chantage.

Les DoS sont de 2 types principaux :

- Déni de service par saturation de l’accès (attaque sur la bande passante)
- Déni de service par saturation des ressources du serveur (processeur et/ou mémoire)

Les serveurs d’entreprise ont généralement beaucoup plus de ressources que les attaquants. La réussite d’un Dos passe donc souvent par l’utilisation de nombreuses sources d’attaque (on parle dans ce cas de déni de service distribué ou DDoS) ou par l’exploitation d’une faille logicielle qui permet de consommer toutes les ressources du serveur (DoS logiciel).

L’outil sockstress exploitent différents mécanismes du protocole TCP pour saturer les ressources mémoires de n’importe quel serveur TCP publiquement accessible.

Un peu de technique

Le protocole TCP est la pierre angulaire des communications Internet ou Interentreprises. Il permet un échange fiable des données et sert de support à de nombreux protocoles applicatifs : web, mail, ftp, messagerie instantanée, etc.

L’outil sockstress exploite une fonctionnalité du protocole TCP qui lui permet d’optimiser les échanges d’informations entre un client et un serveur. Ce mécanisme est appelé fenêtre TCP (TCP Window).

Une fois les présentations faites de manière fiable (TCP Handshake), le client et le serveur échangent des données (DATA) et des accusés de réception (ACK). Pour éviter de devoir attendre un accusé de réception après chaque envoi de donnée, le client et le serveur annoncent dans chaque paquet TCP la quantité de données qu’ils peuvent recevoir sans accusé de réception. Cette valeur est appelée « taille de la fenêtre TCP ».

Sockstress détourne l’usage de cette optimisation apportée par la mécanique de fenêtre TCP.

Attaque sockstress sur la fenêtre TCP

L’attaque sockstress permet d’épuiser très rapidement les ressources mémoire d’un serveur TCP en diminuant la taille de fenêtre TCP. La séquence d’une attaque réalisée par l’outil sockstress peut se décomposer ainsi :

- 1. Initialisation de la connexion entre le client et le serveur (TCP Handshake)
- 2. Le client envoie 2 requêtes consécutives au serveur attaqué :

a. Une requête applicative qui implique une réponse par le serveur

b. Un paquet TCP qui indique au serveur que le client ne peut pas recevoir de données pour le moment (fenêtre TCP égale à zéro).

- 3. Le client maintient la connexion TCP ouverte et conserve une taille de fenêtre égale à zéro.

Lorsque le serveur reçoit la première requête du client, il prépare les données pour envoyer une réponse. Mais lorsque la fenêtre du client passe à zéro, le serveur suspend l’envoi et conserve une quantité importante de données en mémoire. Lorsque le serveur consomme toute la mémoire disponible à stocker ces données en attente, il ne peut plus répondre à aucune demande légitime.

Sockstress rend cette attaque très simple à réaliser. Il suffit d’indiquer le serveur cible et le nombre de connexions à maintenir simultanément

L’efficacité de l’attaque sockstress tient au fait qu’il suffit de très peu de connexions simultanées pour saturer complètement le serveur le plus puissant du marché.

Attaque sockstress sur l’algorithme RENO

Sockstress fournit de nombreuses variations et optimisation pour rendre l’attaque encore plus efficace et contourner les contre-mesures qui pourraient être mises en place. La taille de la fenêtre TCP indiquée au serveur peut varier de zéro à quelques octets tout en conservant l’efficacité de l’attaque.

Sockstress permet également de déclencher chez le serveur un comportement consommateur de ressources par l’envoi successif de plusieurs paquets d’accusés de réception (ACK). Ce comportement – appelé TCP RENO – modifie la réaction du serveur et mobilise de nombreuses ressources qui se terminent généralement par un déni de service complet sur le serveur attaqué.

Enfin, des optimisations de sockstress permettent de minimiser la consommation de ressources du client. Ces optimisations utilisent une mécanique proche des « SYN cookies ». L’intégration des informations clés de la connexion en cours au sein d’une option TCP évite au client sockstress de conserver toutes les informations en mémoire. Il peut ainsi maintenir un nombre plus important de connexions simultanées.

3 attaques protocolaires majeures en 1 an

La diffusion de sockstress constitue la troisième attaque protocolaire majeure en un an après La faille DNS « Kaminsky » et l’attaque sur les serveurs web « nkiller2 ». Cette recrudescence des attaques protocolaires constitue une réelle menace pour les entreprises. En effet, contrairement aux attaques applicatives qui ne ciblent qu’un nombre restreint d’entreprises, une attaque protocolaire est une menace immédiate pour l’ensemble des entreprises, mais aussi pour la stabilité du réseau Internet.

L’équipe qui a créé l’outil sockstress a d’ailleurs mesuré l’ampleur du risque et informé les différents acteurs du monde des réseaux et de la sécurité avant de diffuser publiquement cet outil.

Cependant, malgré cette communication responsable, les éditeurs d’Antivirus, de Firewall et de systèmes de prévention d’intrusion (IPS) ne peuvent créer de signatures de protection efficaces.

Le talon d’Achille des solutions de sécurité

Les Antivirus et IPS du marché bloquent les attaques en comparant les données qu’on leur soumet à une ou plusieurs bases de données d’attaques connues. Traditionnellement, les Antivirus se concentrent sur l’analyse des fichiers alors que les IPS analysent en temps réel le trafic réseau. Cependant, dans les 2 cas, une attaque est détectée quand elle correspond exactement à l’information contenue dans la base de données de la solution de sécurité.

Dans le cas de sockstress, il est impossible de faire une « photo » de l’attaque car les attaques respectent les normes du protocole TCP (usage valide) et aucune donnée précise n’est nécessaire. Une signature antivirale ou IPS ne peut donc distinguer l’utilisation frauduleuse de la fenêtre TCP du comportement normal. Malheureusement, dans de nombreux cas, la solution de sécurité sera elle-même vulnérable aux attaques sockstress. En effet, le système d’exploitation de ces solutions utilisent les mêmes implémentations du protocole TCP et réagissent comme un serveur vulnérable face à sockstress.

La seule solution pour de nombreuses entreprise sera donc de s’assurer que l’ensemble de ses serveurs réseaux sont protégés contre cette attaque. Dans la majorité des cas, une mise à jour du service sera nécessaire.

La protection NETASQ

Le système de prévention d’intrusion de NETASQ effectue une analyse complète du protocole TCP. Chaque connexion TCP est suivie par l’IPS NETASQ qui s’assure de la validité du protocole et détecte les comportements anormaux. Pour bloquer efficacement l’attaque sockstress, l’IPS NETASQ détecte les variations de taille de la fenêtre TCP et adapte automatiquement son comportement pour mettre un terme à l’attaque sans bloquer les connexions légitimes.

De même, l’IPS NETASQ est efficace contre les tentatives d’activation de TCP RENO. Les paquets incriminés seront bloqués automatiquement. Le serveur n’activera donc pas cet algorithme très consommateur de ressources.

(Source :NETASQ)