Protéger son site web (WordPress) d’une attaque brute force

protéger wordpress des attaques bruteforce
5/5 - (14 votes)

Qu’est-ce qu’une attaque Brute Force ?

 

Une attaque brute force permet de craquer un mot de passe en testant toutes les combinaisons de lettres / chiffres / caractères spéciaux possibles jusqu’à trouver la combinaison parfaite permettant d’accéder par exemple à un compte administrateur d’un site web. Cette attaque est une des plus répandues depuis de nombreuses années, elle est techniquement assez simple à mettre en place, c’est pour cette raison qu’il est important de pouvoir la parer.

Cependant, cette attaque peut s’avérer excessivement longue, tout dépend de la complexité du mot de passe. C’est aussi pour cette raison qu’il est vivement conseillé d’utiliser des mots de passe complexes et d’éviter les mots génériques.

En effet, les pirates utilisent des dictionnaires contenant des millions de mots dans toutes les langues possible de façon à tester directement les mots plutôt que les combinaisons de caractères, un mot de passe comme “bonjour” pourrait donc être trouvé en quelques secondes contrairement à un mot de passe comme : X!Dye^^5dIIked!?78d@D!@ , qui, ce dernier pourrait être trouvé en plusieurs semaines voir plusieurs mois.

C’est une attaque qui peut donc être combinée avec un dictionnaire mais aussi avec la méthode Rainbow table.

 

(la vidéo suivante a pour seul but de vous aider à mieux comprendre l’attaque brute de façon à améliorer votre sécurité, il est important de savoir que L’article 323-1 du code pénal sanctionne «le fait d’accéder ou de se maintenir frauduleusement, dans tout ou partie d’un système de traitement automatisé». La peine encourue est 2 ans d’emprisonnement et 30000€ d’amende.)

 

 

Comment protéger son site web contre une attaque brute Force ?

 

Peu importe la technologie utilisée par votre site web (CMS, Framework, sur-mesure) les méthodes restent les mêmes.

 

Il sera donc conseillé de :

  1. Mise à jour continue de WordPress : Assurez-vous que votre site WordPress est toujours à jour. Les mises à jour incluent souvent des correctifs de sécurité qui peuvent vous protéger contre les nouvelles menaces.
  2. Utilisation de mots de passe forts : Le moyen le plus simple de prévenir les attaques par force brute est de créer des mots de passe forts. Utilisez un mélange de lettres majuscules et minuscules, de chiffres et de symboles. Évitez les mots courants et ne réutilisez jamais le même mot de passe pour différents sites ou comptes.
  3. Limitation des tentatives de connexion : Il existe plusieurs plugins WordPress qui peuvent vous aider à limiter le nombre de tentatives de connexion infructueuses depuis une même adresse IP, comme “Limit Login Attempts” ou “Login LockDown”.
  4. Renforcement de la sécurité des identifiants de connexion : Changez l’URL de votre page de connexion WordPress par défaut (votresite/wp-admin) en utilisant des plugins comme “WPS Hide Login”. Aussi, évitez d’utiliser “admin” comme nom d’utilisateur.
  5. Utilisation de l’authentification à deux facteurs (2FA) : L’ajout d’une couche supplémentaire de sécurité avec 2FA peut grandement aider à prévenir les attaques par force brute. Il existe de nombreux plugins qui peuvent vous aider à mettre en place la 2FA sur votre site WordPress.
  6. Utilisation d’un Pare-feu d’application Web (WAF) : Un WAF peut aider à bloquer les attaques par force brute en reconnaissant et en arrêtant les comportements suspects. Des services comme Cloudflare ou Sucuri proposent des WAF efficaces.
  7. Surveillance des journaux de connexion : Surveillez vos journaux de connexion pour détecter les tentatives de force brute. Des plugins comme “WP Security Audit Log” peuvent vous aider à le faire.
  8. Bloquer les IP suspectes : Si vous remarquez des adresses IP suspectes tentant de se connecter à votre site de manière répétée, vous pouvez les bloquer en utilisant des plugins comme “IP Blacklist Cloud” ou directement via les paramètres de votre hébergeur.
  9. Mise en place de la protection par hachage de mot de passe : WordPress utilise déjà une méthode de hachage de mot de passe sécurisée. Cependant, vous pouvez améliorer la sécurité en changeant l’algorithme de hachage par défaut en utilisant des plugins tels que “bcrypt”.
  10. Utilisation d’une authentification par clé SSL/TLS : Pour une couche supplémentaire de sécurité, envisagez d’utiliser une authentification par clé SSL/TLS. Cela nécessite qu’un certificat SSL/TLS soit présent sur le client pour qu’il puisse se connecter au serveur.
  11. Sauvegardes régulières : Même si cela ne prévient pas directement une attaque par force brute, avoir des sauvegardes régulières de votre site vous permettra de le restaurer rapidement en cas de compromission.
  12. Sensibilisation et formation : Assurez-vous que tous les utilisateurs de votre site WordPress comprennent l’importance de la sécurité en ligne et savent comment créer des mots de passe forts, détecter les tentatives de phishing, et plus encore.

 

WordPress utilise une méthode de hachage de mots de passe appelée phpass. C’est une méthode assez robuste qui a été mise en œuvre dans le core de WordPress pour s’assurer que les mots de passe des utilisateurs sont bien protégés.

 

 

Comment fonctionne le hachage de mot de passe dans WordPress?

 

Lorsqu’un utilisateur crée un compte ou change son mot de passe sur WordPress, le mot de passe en clair est transformé en une chaîne de caractères hachée à l’aide de la bibliothèque phpass. Ce hachage est ensuite stocké dans la base de données WordPress pour vérification lors des connexions ultérieures.

 

Voici un exemple de la manière dont WordPress génère un mot de passe haché :

 

require_once('wp-includes/class-phpass.php');
$hasher = new PasswordHash(8, TRUE);
$password_hashed = $hasher->HashPassword('motdepasse');
echo $password_hashed;

 

Dans cet exemple, ‘motdepasse’ est le mot de passe en clair et $password_hashed est le mot de passe haché qui sera stocké dans la base de données. Le 8 dans new PasswordHash(8, TRUE) fait référence au nombre de fois que l’opération de hachage est effectuée. Cette opération est également appelée “salage” et aide à rendre le hachage plus résistant aux attaques par force brute.

Lorsqu’un utilisateur tente de se connecter, le mot de passe saisi est haché avec la même méthode, puis comparé au hachage stocké dans la base de données. Si les deux correspondent, l’utilisateur est authentifié.

 

 

Est-ce efficace?

 

La méthode de hachage de WordPress est généralement considérée comme sûre et efficace contre de nombreuses formes d’attaques courantes, y compris les attaques par force brute. Le salage du hachage rend les attaques par force brute et par dictionnaire beaucoup plus difficiles car elles nécessitent beaucoup plus de temps et de ressources.

Cependant, la sécurité d’un mot de passe haché dépend également de la robustesse du mot de passe original. Un mot de passe faible (par exemple, “password123”) peut être facilement deviné, même si le hachage est robuste.

 

 

Le salage WordPress (salt)

 

Le salage est une méthode supplémentaire pour sécuriser les mots de passe hachés en ajoutant une valeur unique supplémentaire, appelée “sel” (ou “salt” en anglais), à chaque mot de passe avant le hachage.

 

L’idée derrière l’ajout d’un sel à un mot de passe est d’empêcher les attaques par table de hachage (hash table attacks) ou les attaques par dictionnaire (dictionary attacks). Ces types d’attaques reposent sur le pré-calcul de hachages pour différents mots de passe et la comparaison de ces hachages avec ceux qui ont été compromis.

 

En ajoutant un sel unique à chaque mot de passe, vous pouvez rendre ces attaques pratiquement impossibles, car le pirate informatique devrait alors générer une table de hachage pour chaque sel possible.

 

Dans WordPress, le sel est généré automatiquement lors de la création d’un nouveau site. Les valeurs de sel sont stockées dans le fichier wp-config.php.

Voici à quoi ressemblent les valeurs de sel dans un fichier wp-config.php typique:

 

define('AUTH_KEY',         'E&&:S,fW/>yu|l3s%.Xq?yFwqjNRyL&M8:G5MW3%!EFD]=BPkgL-()Hih/NRE1_Q');
define('SECURE_AUTH_KEY',  '!/mQf@6`Q~}(`ZJPE-Hx@Ge9[Esq &$/{,UiZhd^u<:mIvq|N#p.h+7@-+sDEO@v');
define('LOGGED_IN_KEY',    '7_XV2o1Wdlu(|-cMM]w65bDSt0yi ueaYqrXu(Wbvlt}{J)gD);_}I ,q/-s!%D}');
define('NONCE_KEY',        'PX=E9LOz4un*: ESpt@$u6Zpih(sO 25Re4FG)FXg>P<`FrMwggHhvyjU%');
define('AUTH_SALT',        '2lK6g3p5z7Z(z/`g=3/74+0>K.Ig|=RKOhi$zNd;2F|>vrbwgm=L1sGjfD{DR!^ ');
define('SECURE_AUTH_SALT', 'MT{knx)M3?D;#yq%(q(+fEU@+@lTBV;-x2M*mj|~FqW:%v#%rSx:{8?Hn.wyivTi');
define('LOGGED_IN_SALT',   '[-|UufayjWQt^+JF71{ ||eW,jy7R>psUj.&!O2&zG:Dmuc#qs$O_+za*/wN;qMz');
define('NONCE_SALT',       '$>|-zzTZu]`({BC^/$E;&{<#Tj.30.Wo+Na#j;5Nx-+{^LBb0<nm)(C{PexLs,Y|');

Chaque sel est utilisé pour hacher des informations spécifiques. Par exemple, AUTH_SALT et SECURE_AUTH_SALT sont utilisés pour sécuriser les cookies d’authentification de WordPress.

Quand un mot de passe est créé ou modifié dans WordPress, le sel est ajouté au mot de passe, et cette valeur est ensuite hachée. Lorsque l’utilisateur tente de se connecter, le sel est de nouveau ajouté au mot de passe entré, le hachage est effectué, puis comparé au hachage stocké dans la base de données.

Dans l’ensemble, l’utilisation de sels avec des mots de passe hachés est une pratique de sécurité recommandée qui augmente considérablement la difficulté pour un attaquant d’obtenir des mots de passe même en cas de compromission des hachages de mots de passe.

 

 

Quelles sont les chances d’aboutir d’une attaque Brute Force ?

 

brute force est l’une des méthodes les plus anciennes et les plus élémentaires pour casser un cryptage. Cela consiste simplement à tester toutes les combinaisons possibles de caractères jusqu’à ce que le mot de passe soit trouvé. Bien sûr, cela prend beaucoup de temps et d’efforts, mais si vous avez suffisamment de ressources, il est toujours possible de craquer un mot de passe par brute force.

 

Les chances d’aboutir dépendent donc principalement du nombre de ressources dont vous disposez. Plus vous avez de puissance de calcul et de temps, plus vos chances d’aboutir seront élevées. Cependant, même avec une grande quantité de ressources, la brute force n’est pas une garantie de succès.

 

Certains mots de passe sont simplement trop longs ou complexes pour être crackés par ce moyen. Dans ces cas, il faudra probablement recourir à d’autres méthodes moins énergivores pour casser le code.