Attaque par force brute: protéger votre site web

Attaque par force brute est une attaque très basiques, contrairement à ce que l'on peut penser, il est devenu très facile de réaliser ce type d'attaque grâce à des outils simple à utiliser comme Fireforce, Cain & Abel et John the Ripper.

Attaque par force brute: comment ça marche ?

Le principe de l’attaque consiste à essayer à plusieurs fois de trouver le mot de passe d'un fichier ou d'une application en testant toutes les combinaisons de caractères possibles jusqu'à la découverte du mot de passe .

L'attaque par force brute peut être aussi assainie à l’aide d’un dictionnaire avec le même principe. Les données sont tirées dans une liste qui contient tous les valeurs possibles d'un mot de passe, c’est pour cela,  il faut toujours éviter l'utilisation des mots d'un dictionnaire dans vos mots de passe.

Pour faire fonctionner cette attaque, les hackers vont souvent utiliser un logiciel qui automatise l'essai de combinaisons de mots de passe jusqu'à ce qu'une combinaison correcte soit trouvée.

Avec l'augmentation de la puissance de calcul des ordinateurs, les attaques par force brute sont devenues plus efficaces, les hackers es peuvent effectuer des milliers de tentatives de connexion par seconde. C'est pourquoi il est important de prendre des mesures pour protéger votre site web contre ce type d'attaque.

Protéger votre site web d'une attaque par brute force

Il existe plusieurs méthodes pour protéger un site web contre les attaques par force brute:

Identifier l’attaquant

La solution pour identifier l’attaquant, c’est de le marquer par lui donner un cookie, ou bien utiliser son adresse IP. Mais malheureusement ces deux techniques ne sont plus suffisantes, parce que le pirate peut changer son adresse IP à l’aide d’un proxy, ou d'un VPN ou simplement en redémarrant le modem de connexion.

Bloquer l'adresse IP de l'attaquant

Si vous remarquez une adresse IP effectue un nombre extrême de mauvaise tentatives de connexion, alors configurez votre serveur Apache pour bloquer cette adresse IP.

Apache dispose des commandes pour interdire l’accès de ces adresses a l’aide des directives <Directory>, <Files> et <Location>, c’est pour cela vous pouvez utiliser User-agent, ou les informations disponibles dans les en-têtes HTTP.

Pour interdire l’accès à une adresse IP vous pouvez utiliser : deny from 20.1.2.3

Ou bien pour toutes les adresses IP commençant par 10.0 : deny from 10.1

C’est la méthode la plus efficace pour bloquer un utilisateur à distance grâce au serveur web qui en charge de traiter les requêtes HTTP.

Bloquer l'attaquant avec le Cookie

Si un attaquant a entré dix tentatives, on crée un cookie qui nous permettra de le marquer lorsqu'il reviendra sur le site. Ce cookie devra le bloquer pendant X minutes. C’est une petite protection qui est simple et qui pourra vous épargner quelques situations difficiles.

Le script est comme suit :

<?php
if ($_COOKIE['compteur'] 10) {
header("HTTP/1.0 404 Not Found" quot;);
die() ;
}
setcookie('compteur',$_COOKIE['compteur'] + 1, time() + 3600) ; ?>

Certes, le script est basique mais terriblement efficace contre ce type d'attaques !

Ce que je peux dire que l’attaque par brute force a plus de chance d’échouer si vous réagissez plus vite.

Pour rendre le travail des pirates plus difficile, vous pouvez aussi ajouter la temporisation, une couche supplémentaire de protection.

Temporisation

La temporisation est une technique complémentaire qui consiste à empêcher de tenter plus de 2 tentatives d'affilée par n secondes. Vos visiteurs ne verront aucune modification si vous prenez une marge de 2 secondes, tandis que le robot qui doit rentrer des centaines de tentatives par seconde sera retardé. Alors comme ça vous réduisez la vitesse d’attaque.

Pour ajouter la temporisation, il existe des fonctions sleep() et usleep() de PHP

La fonction sleep() s’exprime en second et usleep() en microseconde .

Voici un exemple:

sleep(1) ; // pause pour une seconde
usleep(1000000) ; //pause pour une seconde

Autres méthodes pour protéger votre site des attaques par force brute

Voici d'autres méthodes pour protéger votre site web contre les attaques par force brute:

Limiter les tentatives de connexion

Vous pouvez limiter le nombre de tentatives de connexion à un compte ou à un formulaire de connexion en utilisant des plugins de sécurité pour votre système de gestion de contenu (CMS) ou en écrivant du code personnalisé.

Utilisation d'un pare-feu

Vous pouvez utiliser un pare-feu pour bloquer les adresses IP qui effectuent des tentatives de connexion trop fréquentes. Il existe des plugins de sécurité pour CMS qui incluent cette fonctionnalité ou des services de pare-feu en nuage.

Utilisation de l'authentification à deux facteurs

L'utilisation de l'authentification à deux facteurs (2FA) rend les comptes plus difficiles à pirater car elle nécessite un deuxième facteur d'authentification, comme un code envoyé par SMS ou une application d'authentification à utiliser en plus du mot de passe.

Renforcer les mots de passe

En utilisant des règles de complexité pour les mots de passe et en incitant vos utilisateurs à choisir des mots de passe forts et uniques, vous pouvez réduire les risques d'une attaque par force brute.

Utilisation de captchas

L'utilisation des captchas peut aider à prévenir les attaques automatisées. Ils sont des outils utilisés pour distinguer les utilisateurs humains des programmes automatisés, comme les robots ou les scripts malveillants. En effet, les captchas peuvent être efficaces pour bloquer les attaques par force brute et la plupart des autres formes d'automatisation.

Conclusion

Il est important de noter que aucune mesure de sécurité ne peut garantir une protection absolue contre les attaques par force brute, il est donc important de continuer à surveiller régulièrement les activités de connexion de votre site et de mettre à jour régulièrement les mesures de sécurité en place.