Dénis de service et hébergement: quels sont les différents types d’attaques ? Quelles sont les cibles ? Comment se protéger ? Que peut faire l’hébergeur ?
Une infrastructure présente de nombreuses cibles potentielles de dénis de services. Les cibles des dénis de service sont tous les composants de la chaine réseau: la liaison entre le POP de l’opérateur et le réseau ( uplink), le routeur d’accès, les équipements de sécurité réseau ( firewalls), les équipements de sécurité applicative de type WAF, les load-balancers, la stack réseau de la cible, les applications, les middleware, ainsi que les systèmes de back-offices ( bases de données et web services).
Les dénis de service exploitent de nombreux éléments des chaînes réseau et applicatives avec des techniques assez simples. On distingue différents types d’attaques pour les dénis de service: les attaques génériques ( volume réseau, saturation, volume applicatif, connexions) et les attaques par complexité.
L’essentiel des attaques au niveau réseau est basé sur un volume considérable de paquets. Le seuil limite de paquets par seconde pouvant être traités est autour de 100 000 pour les routeurs d’entreprise, et d’ 1 million pour les équipements d’opérateurs. A noter qu’il est assez facile de générer 150 000 paquets à partir d’un seul serveur.
Pour les attaques par saturation, l’opération est l’opposée des attaques par volume réseau. L’attaque consiste à saturer l’uplink, ou alors à imposer des traitements énormes aux composants de la chaîne applicative ( exemple: téléchargement répété d’un fichier). Dans ce cas aussi, il s’agit de faire transiter d’énormes volumes de données.
Pour les attaques par volume applicatif, les dénis de service visent les mécanismes de traitement des informations de transport ( URL et en-têtes). Un WAF supportera environ 30 000 TPS ( transactions par seconde), un site web environ 10 000 et quelques milliers pour un web service. Il faut compter environ 100 000 TPS pour que l’impact de l’attaque soit notable sur les hébergeurs. Pour une petite infrastructure, quelques dizaines de milliers de TPS suffisent.
Pour les attaques par connexions, le but est d’établir un gros nombre de connexions TCP et de les maintenir ouvertes le plus longtemps possible, soit le time out défini au niveau de l’application.
Les attaques par complexité consistent à soumettre la cible à des transactions qui lui imposent l’utilisation intensive de ressources CPU.
Parmi les attaques par déni de service, les attaques par amplification sont les plus redoutées. Il existe également les attaques par réflexion ainsi que le déni de service distribué. Dans le cas d’un déni de service distribué, la cible est attaquée simultanément par de nombreuses sources. L’attaque par réflexion, ou attaque par rebond, consiste à interroger un serveur en usurpant l’adresse IP source pour que la victime reçoive la réponse. Le serveur servant de relais est généralement tout à fait légitime ( exemple, un serveur DNS public). Dans ce cas, la cible reçoit des paquets réponse qui vont consommer sa bande-passante sans avoir posé de question, pouvant alors entraîner un déni de service.
L’attaque par amplification reprend le principe de l’attaque par réflexion, en interrogeant des serveurs-relais tout en usurpant l’adresse IP de la cible. Mais contrairement à l’attaque par réflexion, l’attaque par amplification choisit les requêtes pour que les réponses soient plus volumineuses. Le protocole DNS est la cible idéale des attaques par amplification: requêtes courtes, réponses pouvant être très longues, serveurs accessibles. Le protocole DNS n’est filtré nulle part et pourra donc être routé sans problème jusqu’à la victime. Si la taille maximale d’une réponse DNS était initialement limitée à 512 octets en UDP, cette limitation a disparu avec l’extension EDNSO ( RFC 2671). BIND, le serveur DNS le plus utilisé sur internet, a aujourd’hui une valeur par défaut de 4096 octets.
Que peuvent faire les hébergeurs et les fournisseurs d’accès à internet en cas de dénis de service ?
Les serveurs utilisés comme relais peuvent limiter les attaques par amplification. Si vous hébergez un serveur DNS accessible depuis internet et que vous souhaitez vous protéger des dénis de service, assurez vous que la récursivité est désactivée, qu’il ne contient pas la liste des serveurs racines, qu’aucun de ses enregistrements n’est trop volumineux et qu’il ne répond pas aux requêtes de type ANY.
Les fournisseurs d’accès peuvent aisément empêcher les dénis de service par amplification puisque toutes ces attaques reposent sur l’usurpation de l’adresse IP source d’un paquet. Cependant, les fournisseurs d’accès ayant mis en place le filtrage d’ IP source reste encore assez faible, notamment pour des raisons économiques.