The Joomla! Community Magazine™

Comment se protéger contre les attaques par force brute ?

Written by | Monday, 01 February 2016 01:00 | Published in 2016 February
On l'a vu encore tout dernièrement avec la faille 0-Day détectée par Sucuri que la sécurité des sites propulsés par Joomla! est une préoccupation constante, tant pour les bénévoles du projet que pour les utilisateurs que nous sommes tous. Nous allons donc entamer une série d'articles consacrés à la sécurité de nos sites Joomla en voyant pour chaque cas de figure, dans un premier temps quels sont les risques encourus et dans un second temps, comment s'en prémunir le plus efficacement possible.  

Il y a quelques jours, un de mes amis me posait une question sur Twitter en lien avec la sécurité pour Joomla! :

La sécurité n'est pas l'affaire d'une (ou plusieurs) extension, c'est avant tout une attitude permanente que doit avoir tout propriétaire de site Joomla!. En effet, vous aurez beau ajouter toutes les extensions que vous voulez, si celles-ci ne sont pas correctement configurées et mises à jour, si votre ordinateur n'est pas "propre", si vous utilisez une version obsolète de Joomla et que vos mots de passe sont "123456", tout cela ne vous servira à .... rien.

Les attaques par force brute

Une attaque par force brute, c'est quoi au juste ?

Voyons ce que nous dit Wikipédia à ce sujet :

L'attaque par force brute est une méthode utilisée en cryptanalyse pour trouver un mot de passe ou une clé. Il s'agit de tester, une à une, toutes les combinaisons possibles.

Cette méthode est en général considérée comme la plus simple concevable. Elle permet de casser tout mot de passe en un temps fini indépendamment de la protection utilisée, mais le temps augmente avec la longueur du mot de passe. En théorie la complexité d'une attaque par force brute est une fonction exponentielle de la longueur du mot de passe, la rendant virtuellement impossible pour des mots de passe de longueur moyenne, mais en pratique des optimisations heuristiques peuvent donner des résultats dans des délais beaucoup plus courts.

Cette méthode est souvent combinée avec l'attaque par dictionnaire et par table arc-en-ciel pour trouver le secret plus rapidement.

 

Les attaques par force brute sur les sites Joomla sont malheureusement de plus en plus fréquentes. En réalité, les propriétaires de site doivent faire face à une menace bien réelle et souvent de grande ampleur : des personnes malveillantes peuvent prendre le contrôle d'un grand nombre d'ordinateurs qu'ils peuvent ensuite utiliser pour coordonner des attaques massives par force brute sur un site Web.

En tant que propriétaire de site, nous devons veiller à ne pas subir ce type d'attaques. Nous allons donc regarder comment nous pouvons réduire le risque d'un accès non désiré à votre site Joomla par une attaque par force brute.

 

Comment se protéger contre les attaques par force brute ?

Il y a au moins deux choses que l'on peut faire pour rendre la tâche beaucoup plus difficile à ceux qui tentent ce type d'attaque.
La première chose consiste à choisir un nom d'utilisateur complexe ainsi qu'un mot de passe renforcé.
La seconde est de bloquer l'accès au panneau d'administration.

 

Identifiants et mots de passe renforcés

S'il faut renforcer vos mots de passe, il faut également renforcer vos identifiants. Puisque l'identification pour accéder au panneau d'administration se fait avec ces deux "clefs", autant renforcer et sécuriser les deux, non ?

J'ai pris pour habitude de ne JA-MAIS utiliser 2 fois le même identifiant sur mes sites (les miens et ceux que j'administre).

Pour ce qui est des mots de passe, c'est pareil : je n'utilise JA-MAIS 2 fois le même mot de passe et au minimum quinze caractères (on peut même dire vingt, pourquoi pas) en mélangeant aléatoirement les majuscules, les minuscules, les chiffres et les caracrères comme /*!|\.

 

"Quinze caractères minimum, vous dites ? Euh, on fait comment pour s'en souvenir ?

 

La réponse tient en cinq mots : gestionnaire de mot de passe.

Pour ma part, j'utilise maintenant LastPass.com pour générer et gerer tous mes mots de passe (j'en plus de 200 d'enregistré). J'utilisais Dashlane lorsque je naviguais sous Chrome qui est également une très bonne solution. Et pour les possesseurs d'un Mac, je pense que 1Password est une option à considérer.

En utilisant un gestionnaire de mot de passe, vous n'aurez plus à vous soucier de mémoriser des dizaines (voire des centaines) de mots de passe différents et vous aurez la certitude d'avoir un niveau de sécurité suffisant de ce point de vue.

Je vous encourage également à regarder du côté de Yubikey pour activer l'authentification à deux facteurs pour votre administration Joomla!

 

Bloquer l'accès au panneau d'administration

La seconde chose à faire est d'empêcher l'accès au panneau d'administration de Joomla par tous les moyens. Pour cela, il est possible de restreindre cet accès en se basant sur l'IP ou plage d'adresses IP des attaquants. Pour cela, on peut utiliser les méthodes suivantes :

  • Installer une extension tierce,
  • Mettre en place un blocage par .htaccess,
  • Bloquer l'adresse IP avec votre pare-feu.

 

Installer une extension tierce

Ici, je vous recommande d'utiliser l'excellent plugin AdminExile de Michael Richey. Ce plugin gratuit vous permet de totalement masquer la page du panneau d'administration et de bloquer les adresses IP après un certain nombre de tentative avortées de saisie du mot de passe.
C'est une des rares extensions que j'installe sur tous les sites que je crée et que je gère car c'est un vrai plus en terme de sécurité pour l'utilisateur Lambda. La configuration ne prend que quelques minutes et son efficacité est averée.

A noter également la sortie du plugin Brute Force Protection qui offre également une excellente protection en la matière.

 

Mettre en place un blocage par .htaccess

Si votre site Joomla est installé sur un serveur Apache (interrogez votre hébergeur en cas de doute), vous pouvez ajouter des adresses IP dans votre fichier .htaccess. Cela bloquera l'accès à n'importe quelle page de votre site Joomla, panneau d'administration compris.

Ouvrez votre fichier .htaccess avec votre éditeur de texte et ajoutez :

Order Deny,Allow
Deny from 199.444.33.22

Remplacez "199.44.33.22" par l'adresse IP que vous souhaitez bloquer. Une fois votre saisie terminée, enregistrez votre modification et renvoyer le fichier .htaccess sur votre serveur.

Pour aller un peu plus loin sur cette question et sur l'utilisation de ce fichier .htaccess, je vous recommande la lecture l'article de John Forsythe How To Block Bots, Ban IP Addresses With .Htaccess (en anglais).

 

Bloquer l'adresse IP avec votre pare-feu

Si votre site Joomla est installé sur un serveur dédié ou sur votre propre réseau, le blocage de plages d'adresses IP par le pare-feu peut être une bonne solution. Cependant, soyez prudent car cela peut bloquer une partie du trafic entrant de votre site.
Si votre site a une audience très locale et n'a pas de clients étrangers, vous pouvez parfaitement bloquer les adresses IP d'un pays tout entier. Par contre, si votre site a une audience internationale, vous devez tenir compte de cette particularité et éventuellement identifier avec soin les adresses IP ou plages d'adresses que vous voudrez bloquer.

 

Conclusion

Comme nous l'avons vu, les attaques par force brute sont quasi inévitables et peuvent faire de gros dégats en cas de succès. Si nous devons apprendre à vivre avec, cela ne veut pas dire pour autant qu'il faille se résigner. Nous avons vu qu'il existe des solutions efficaces à mettre en place rapidement pour limiter les chances de réussite d'une telle attaque sur votre site Joomla!.

 

Read 3160 times
Tagged under French
Daniel Dubois

Daniel Dubois

I started Joomla sitebuilding in 2007, without any knowledges about HTML , CSS or PhP. I am completely self taught !

Now, I try to help beginners by sharing my knowledge and giving advice. I am a proud and enthusiastic member of the Joomla Extensions Directory and a freaquent tweeter on all things Joomla.

Language Switcher

Current Articles