Les attaques par force brute: comment se protéger?

Les hackers n’utilisent pas uniquement des failles connues et des bogues dans les logiciels, systèmes d’exploitation ou systèmes de gestion de contenu pour accéder à vos données ou pénétrer dans votre site web. Une autre méthode qu’ils utilisent très couramment est la force brute. Mais de quoi s’agit-il au juste? Et que pouvez-vous faire pour ne pas en devenir la victime?

La force brute s’attaque au maillon le plus faible: vous!

En quelques mots, une attaque par force brute, ce sont des logiciels automatiques qui essayent de deviner des noms d’utilisateurs et des mots de passe jusqu’à ce que la bonne combinaison ait été trouvée pour avoir accès à vos données ou votre site web.

Du fait que beaucoup de gens utilisent un mot qui existe comme mot de passe, qu’ils modifient ensuite légèrement, ces logiciels de craquage utilisent souvent des mots du dictionnaire (attaques par dictionnaire).

Mais, croyez-le ou non, les combinaisons telles qu’« admin » comme nom d’utilisateur et « 12345 » comme mot de passe sont également testées. Il y a en effet des personnes qui ne se soucient aucunement des règles élémentaires de sécurité!

 

Tout ce dont le pirate a besoin, c’est du temps…

Cela étant, les mots de passe longs et compliqués peuvent eux aussi être devinés, du moment que le logiciel de craquage dispose de suffisamment de temps pour faire son travail d’extrapolation. Les ordinateurs sont capables de compter de plus en plus vite, ce qui fait qu’ils ont de moins en moins de difficultés à trouver la bonne combinaison.

Lorsqu’un hacker peut télécharger vos données, il a absolument Attaques force brute_de quoi sagit se proteger contre_image 2tout le temps dont il a besoin pour faire fonctionner son logiciel de craquage pour craquer le chiffrement. Pour les données qui se trouvent en ligne, vous disposez heureusement de quelques moyens de défense. Ci-dessous, nous allons vous fournir plusieurs astuces.

Repousser les attaques par force brute est non seulement nécessaire pour éviter que des hackers puissent avoir accès à vos données, mais aussi pour ne pas compromettre les performances de votre site. Une telle attaque peut en effet entraîner une utilisation excessive de la mémoire de votre serveur, du fait que le nombre de requêtes HTTP (c’est-à-dire le nombre de fois où quelqu’un – ou en l’occurrence, le programme – visite votre site) augmente de manière excessive. Résultat : la mémoire du serveur sature, ce qui entraîne des problèmes de performances.

 

7 astuces pour éviter les attaques par force brute

  • Utilisez toujours un mot de passe difficile à trouver

Un mot de passe difficile à trouver comprend au moins 8 caractères, incluant des lettres (majuscules et minuscules), des chiffres et des symboles:

` ~ ! @ # $ % ^ & * ( ) _ - + = { } [ ] \ | : ; " ' < > , . ? /

Obligez également vos utilisateurs à utiliser des mots de passe difficiles à trouver. Depuis la version 4.3 de WordPress par exemple, l’utilisateur est très clairement averti lorsque son mot de passe est trop facile à deviner.

  • Limitez le nombre de tentatives de connexion à p. ex. 3, après quoi le compte est bloqué

L’utilisateur doit alors demander à l’administrateur de débloquer le compte. L’inconvénient de cette méthode est cependant qu’un « petit comique » peut ainsi s’amuser à bloquer plusieurs comptes, ce qui compliquerait la tâche de l’administrateur systèmes. Une alternative consiste à ne pas complètement bloquer le compte, mais à p. ex. limiter les fonctionnalités en cas d’échec de connexion.

  • Utilisez des délais de plus en plus longs

À chaque échec de connexion, l’utilisateur devra attendre de plus en plus longtemps avant de pouvoir faire une nouvelle tentative.

  • Laissez l’utilisateur prouver qu’il n’est pas un robot

Utilisez un reCAPTCHA qui oblige l’utilisateur à recopier un mot ou à résoudre un simple calcul. L’inconvénient est que l’expérience utilisateur en pâtira.

  • Posez la question secrète après deux ou trois tentatives de connexion échouées

Cela permet non seulement d’éviter les attaques automatisées, mais cela évitera aussi que le hacker puisse pénétrer dans votre système même s’il a trouvé votre nom d’utilisateur et votre mot de passe.

  • Autorisez ou refusez l’accès sur la base des adresses IP

N’autorisez p. ex. une connexion qu’à partir d’une ou plusieurs adresses IP lorsque vous collaborez avec des collaborateurs fixes au sein d’un certain réseau. N’oubliez cependant pas que les adresses IP peuvent changer, et que les hackers peuvent masquer leur adresse IP.

  • Donnez une URL de connexion séparée à certains groupes

Vous pouvez ainsi répartir les risques. Et évitez d’utiliser /my-admin ou /admin comme URL de connexion!

 

Faites attention aux incidents suspects!

Gardez un œil sur les fichiers journaux de votre serveur. Chaque échec de connexion entraîne l’enregistrement d’un code HTTP 401 dans les fichiers journaux de votre serveur web. Les événements suivants devraient vous mettre la puce à l’oreille:

  • Plusieurs tentatives de connexion échouées depuis une même adresse IP
  • Des connexions avec plusieurs noms d’utilisateurs depuis une même adresse IP
  • Des connexions à un même compte depuis plusieurs adresses IP différentes
  • Une utilisation exceptionnellement élevée pour un même utilisateur
  • Des tentatives de connexion échouées avec des noms d’utilisateurs ou des mots de passe se suivant par ordre alphabétique

Voulez-vous en savoir plus? Vous retrouverez une liste des outils couramment utilisés pour lancer des attaques par force brute sur Wikipedia, ainsi que sur le site de l’InfoSec Institute. Open Web Application Security Project propose quant à lui un testeur qui permet de déterminer si votre site web est vulnérable, et comprend du code pour implémenter des dispositifs de défense contre les attaques par force brute comme Password Authentication Delay avec VB.net et C#. Si vous utilisez WordPress, le WordPress Codex contient des astuces efficaces pour vous protéger contre les attaques par force brute.

Dans la lutte contre les attaques par force brute, le plus important, c’est de gagner du temps, et de ne pas trop faciliter la tâche du hacker!