Mar 1, 2012
10 Min
Facile

Les attaques par force brute sont 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.


Comment ça se passe une attaque par force brute et comment s’en protéger ?

Le principe de l’attaque consistant à essayer à plusieurs fois de trouver le mot de passe 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.

 Cette attaque exploite le fait que le serveur web traite les requêtes HTTP indépendamment les unes des autres. Pour se défendre, premièrement il faut savoir identifier l’attaquant, le gêner et le ralentir dans son attaque.

1) 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, alors que malheureusement ces deux techniques ne sont plus suffisantes, parce que le pirate peut changer son adresse IP à l’aide d’un proxy ou simplement redémarrer 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 force brute 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.

2. 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

1 Commentaire

  1. Hacker

    attention l’utilisation de sleep augmente la consommation de la ram du serveur, et un bruce-force qui pouvais avant accéder à des infos non-autorisé, peut maintenant faire cracher le serveur.
    Bonne journée à ceux qui suivent betement les conseils qu’ils trouvent sur internet, sans chercher plus loin =D