Attaque DDoS: TCP SYN Flood et DNS reflexion

Depuis quelques années, internet est le théatre d’attaques de plus en plus massive. Pour exemple, en mars 2013, SpamHaus a été la cible d’une attaque massive de type déni de service distribué (DDoS) de la part de CyberBunker. Les infrastructures de SpamHaus ont subi des pics réseaux de 300 gigabytes par seconde. Des attaques inquiétantes que certains jugent dangereuses pour la stabilité d’internet. Regardons de plus près comment fonctionnent ces attaques et quels sont les protections.

DDoS: chantage et moyen de pression

Aujourd’hui, internet est un composant prépondérant dans l’économie. Des entreprises naissent et vivent grâce à ce réseau mondial. Les sites e-commerce, les banques, les sites institutionnels, les bourses sont connectés 24/24 . L’indisponibilité de ces sites coûte cher et certaines entreprises peuvent être en cessation de paiement si leur source de revenu est bloquée.

Le déni de service (DoS) est une technique d’attaque visant à rendre indisponible un système, par le biais d’une ou plusieurs requêtes (flood) qui vont le surchargé. Le déni de service distribué (DDoS) se caractérise par l’émission de requête via un très grand nombre de sources sur une cible.

Le DDoS est difficile à contrer car les sources sont multiples, les règles de blocages sont compliqués à mettre en place. Le DDoS peut alors devenir un moyen de chantage.

Plusieurs techniques se développent dont: le TCP SYN Flooding et le DNS Reflexion (alias amplification).

TCP SYN Flooding

Pour rappel, l’établissent d’une connexion TCP se déroule en 3 étape:

  1. Un client A envoi un paquet TCP à un serveur B, avec un flag « SYN »
  2. Le serveur B répond au client A avec un paquet flaggé « SYN/ACK »
  3. Enfin le client A répond au serveur B avec un paquet TCP flaggé « ACK »
Sequence TCP Handshake
Sequence TCP Handshake

Une première variante de TCP SYN Flood consiste à demander des connexions TCP sur un système, sans terminer la 3ème étape. Les sessions TCP à moitiées ouvertes sont placées en attente (temps définis par le système). Cette attente consomme de la mémoire. Dans une certaine limite, les nombreuses sessions en attentes vont finir par rendre indisponible le système.

Sequence DDoS SYN Flood var1
Sequence DDoS SYN Flood var1

Une seconde variante consiste à usurpé l’IP source dans les demandes de connexions TCP. L’étape 2 n’abouti pas ou alors cible un autre système. De la même manière, cette variante alloue de la mémoire sur le système, jusqu’à le rendre indisponible.

Sequence DDoS SYN Flood var2
Sequence DDoS SYN Flood var2

Dans ces deux cas les demandes de connexions sont envoyées depuis des centaines, des milliers d’ordinateurs (botnet) afin que le système cible soit innondé de requêtes.

DNS Reflexion

Une autre technique de DDoS qui s’est développé se base sur le système DNS. Petit rappel sur le fonctionnement d’une requête Query DNS:

Sequence DNS Query
Sequence DNS Query

Le système DNS utilise le protocole UDP, qui au contraire de TCP ne gère pas de sessions. La technique de DNS reflexion consiste à envoyer une demande de résolution avec une IP source usurpée. La réponse du serveur DNS sera envoyé à l’IP usurpée. L’objectif est d’inonder l’IP usurpé avec des résolutions DNS consommatrices en bande passante.

Sequence DDoS DNS Reflexion
Sequence DDoS DNS Reflexion

Cette technique permet aussi d’amplifier l’attaque. Par exemple, l’envoi de la demande de résolution va générer un paquet d’environ 70-100 bytes, alors que la réponse peut elle générer des paquets de plus de 4000 bytes. Cet effet d’amplification rend l’attaque plus massive. Le facteur d’amplification peut aller de 40x à 60x. (4000/100=40x).

Best Current Practice 38

En réponse à ces menaces, l’IETF (Internet Engineering Task Force) propose un document « Best Current Practice » qui détail une technique afin de limiter l’usage de ces attaques.

BCP38
Best Current Practice 38, IETF

Sur l’exemple ci-dessus, un attaquant est situé dans le sous réseau 204.69.207.0/24 et son fournisseur d’accès à internet est ISP D. La BCP38 dit que le routeur 2 doit autoriser les paquets venant uniquement du sous réseau 204.69.207.0/24 vers les autres zones des ISP. De ce fait, si l’attaquant forge un paquet avec une IP source usurpé, le routeur 2 doit le bloqué.

C’est en résumé ce que préconise l’IETF contre ce type d’attaque. Vous pouvez lire la BCP38 en intégralité ici. C’est donc une règle simple (et de bon sens) qui permet de limiter ce type d’attaque, encore faut-il qu’elle soit implémenter sur tous les routeurs.

Concernant les attaques TCP SYN Flood (var1), une protection consiste à limiter le nombre de SYN venant d’un sous-réseau.

Les attaques DDoS massivement distribuées (appuyées sur des botnets) restent malheureusement une menace pour beaucoup d’organisations. Elles sont difficilement bloquées car les IP sources sont très variées et les paquets ne sont pas forgés. Ce sont des ordinateurs « zombies » qui émettent ces attaques, suite à un ordre d’un serveur C&C (Command & Control). La meilleure technique est de trouver le serveur C&C et de le bloquer.

Source: http://tools.ietf.org/html/bcp38http://technet.microsoft.com/en-us/security/hh972393.aspx