# Flood (Internet)

En informatique, le flood (/flʌd/) ou flooding est une action généralement malveillante qui consiste à envoyer une grande quantité de données inutiles dans un réseau afin de le rendre inutilisable, par exemple en saturant sa bande passante ou en provoquant le plantage des machines du réseau dont le déni de service est la conséquence possible.
Flood est un anglicisme désignant une inondation, illustrant ainsi le flux de données ininterrompu et excessif transitant sur le réseau, provoquant alors des dégâts. Il a donné un verbe, flooder, et la personne qui floode est un floodeur.
Sur Usenet, IRC ou des chats, le flood consiste à envoyer de nombreux messages avec le même mot ou les mêmes lettres sur un groupe ou un canal de discussion sur une courte période de temps, ce qui rend la lecture très difficile, voire impossible, pour les autres participants.
Cette technique peut aussi être utilisée contre un serveur Internet, en envoyant un grand nombre de requêtes pour provoquer un trafic important. Le service est alors dégradé pour les autres utilisateurs, dans les cas extrêmes le serveur peut aussi interrompre totalement le service sous l'effet de la charge du flood.
Par extension, on utilise aussi le terme flood pour désigner une quantité importante de messages inutiles envoyés par une même personne (ou répétés par d'autres par la suite) sur une liste de diffusion ou un forum sur Internet. On parle plutôt de troll quand ces messages sont délibérément polémiques, et de flood quand les messages sont répétitifs, dépourvus de sens, n'ayant aucun rapport avec le sujet initial ou ne revêtant aucune utilité particulière.
Sur les forums, le flood nuit à la lisibilité de l'espace virtuel où l'internaute vient généralement chercher une information en particulier et est alors confronté à une multitude de messages ne lui apportant aucun renseignement et l'obligeant donc soit à faire une recherche en se servant de l'outil mis à disposition par le forum, soit à parcourir les pages de messages en quête de l'élément recherché.
Sur Twitter, l'usage répété et non différencié du hashtag #FF peut être considéré comme du flood.
Certaines actions malveillantes consistent à automatiser et distribuer le flood de façon à en accentuer et en prolonger l'effet nuisible sur une cible particulière.

## Défense contre ce type d'attaque informatique

Pour protéger du flooding un site Internet qui proposerait un formulaire permettant l'ajout d'une entrée dans une base de données, la solution est de mettre en place un système de CAPTCHA. L'utilisateur doit lire une image floutée et/ou brouillée, représentant une série de lettres ou de chiffres, et la recopier avant l'envoi du formulaire. Si un robot tente d'envoyer le formulaire à la volée (flooder la base de données) il ne pourra pas déchiffrer le captcha. Le moyen de contourner sera la reconnaissance automatique de caractères après reconstitution de l'image, une opération difficile et normalement coûteuse (en termes de calcul informatique requis par l'attaquant) ce qui réduit d'autant la force du flood. L'idée d'un flood étant d'avoir du volume en peu de temps, tout ce qui ralentit l'attaquant diminue l'efficacité de cette technique.
Dans le même style, au lieu d'une image, il peut y avoir une question/réponse du type "combien font quatre dont je retire 3 ?" et l'utilisateur devra répondre "1" pour valider le formulaire. Plus simple à mettre en place mais moins sécurisé.
Une protection classique est d'utiliser peu de ressource pour discriminer les requêtes inopportunes. C'est l'idée des filtres appliquée aux requêtes dans la programmation web. Par exemple, on peut flooder un serveur web (comme le serveur de Wikipédia lui-même) en lui envoyant des mauvaises requêtes d'authentification. Le serveur doit aller lire dans la base de données les credentials pour comparer le nom d'usager et son mot de passe fourni. Cette requête est coûteuse et requiert sans doute des accès disque. Une façon de réduire l'efficacité d'une telle attaque est de mettre une signature unique (suite de caractère aléatoire) sur chaque formulaire qui sera re-soumis automatiquement à chaque requête retournée au serveur. Toute signature inconnue sera rejetée par le serveur sans en considérer le contenu (et donc sans aller lire la base de données). Un attaquant qui veut donc encore flooder via l'authentification devra demander une "vraie" page de login signée pour chaque appel qu'il envoie au serveur. Par définition, le floodeur ne pourra pas aller plus vite que votre propre serveur à lui fournir des pages signées.
Il existe d'autres stratégies (filtre d'adresse IP après avoir identifié des attaques probables par exemple) mais aussi des stratégies de contournement (par exemple en attaquant à plusieurs, à partir d'endroits différents ou en détournant les ressources d'une institution).