05
OCT

PHPIDS - Une librairie PHP pour détecter les attaques sur votre site

Publié le 05/10/09 à 08h00 par DJo

PHPIDS, pour PHP Intrusion Detection System, est une librairie PHP permettant de détecter la plupart des attaques web possibles sur un site.

PHPIDS - Détectez les attaques Web sur votre site avec cette librairie PHP

Très pratique si vous souhaitez ajouter un niveau de monitoring et sécurité dans votre site.

Cette librairie va tester chaque entrée de vos formulaires, zones à risques et scanner le code entré à l'aide d'une multitude d'expressions régulières.

La librairie ne va pas protéger votre site des attaques, mais simplement les détecter.

Une fois la librairie a trouvé quelque chose de suspect, c'est à vous de voir ce que vous souhaitez faire:

  • Enregistrer dans les logs
  • Refuser l'enregistrement
  • Lancer une alarme :D
  • ...

Au niveau du fonctionnement de la librairie, voici un bout de code qui vous donnera une idée:

require_once 'IDS/Init.php';
  $request = array(
      'REQUEST' => $_REQUEST,
      'GET' => $_GET,
      'POST' => $_POST,
      'COOKIE' => $_COOKIE
  );
  $init = IDS_Init::init('IDS/Config/Config.ini');
  $ids = new IDS_Monitor($request, $init);
  $result = $ids->run();

  if (!$result->isEmpty()) {
   // Take a look at the result object
   echo $result;
  }

Avec ce code, nous donnons en paramètre toutes les variables susceptibles d'être attaquées: POST, GET, COOKIES, REQUEST.

Puis le script va analyser leur contenu et retourner un objet résultat que vous aurez à traiter.

Les attaques détectées par la librairie sont:

  • XSS
  • SQL Injection
  • Header injection
  • directory traversal
  • RFE.LFI
  • DoS attack
  • LDAP attack

 

Une librairie très intéressante ! Mais qui doit certainement avoir des conséquences sur les performances du site.

Site Officiel

Baraguiné par anis-s le 05/10/09 à 10h17
anis-s sur La Ferme du Web
J'avais déjà mis en place une mini version personnelle de ce genre de système de sécurité et j'avoue être épaté par un système aussi complet (le nombre d'éventualité à prendre en compte étant absolument énorme !)

Librairie super intéressante ! :)
Baraguiné par Tite-Live le 05/10/09 à 12h15
Tite-Live sur La Ferme du Web
Le meilleur outil de ce genre restant tout de même Wapity :3 (
Baraguiné par Tite-Live le 05/10/09 à 12h17
Tite-Live sur La Ferme du Web
Erf le commentaire a été coupé au signe "et" (touche 1 du clavier).
Pour les liens de Wapiti et Nikto :
http://wapiti.sourceforge.net/
http://cirt.net/nikto2
Baraguiné par DJo le 05/10/09 à 12h56
DJo sur La Ferme du Web
Pas mal effectivement Wapiti, mais il ne s'agit pas d'une classe PHP, plus d'un outil extérieur au code.

Mais je note :D
Baraguiné par le 12/10/09 à 00h41
Oh là, il ne faut pas confondre fuzzer et IDS. PHPIDS est, comme son nom l'indique un détecteur d'intrusion. Pour ce qui est de wapiti ou nikito, ce sont des fuzzers permettant de déceler certaines vulnérabilités en injectant des chaines de caractères. (D'ailleurs, pour pentester vos applications web, ces outils ne suffissent pas du tout.)

Bref, PHPIDS est bien, voir même très bien même s'il ne protège qu'une petite partie des différentes techniques que peut utiliser un pirate envers vos applications web. (D'ailleurs, il protège que votre application, et non l'intégralité des appz sur le serveur #FAIL).

Avec ce code, nous donnons en paramètre toutes les variables susceptibles d'être attaquées: POST, GET, COOKIES, REQUEST. => Il y a d'autres variables qui peuvent servir de vecteur telles que les globales SERVER => Ex : le referer.

(Ah un petit problème aussi, c'est RFI/LFI et non RFE/LFI)
Baraguiné par Maxime95k le 26/04/10 à 15h27
Maxime95k via Twitter
L'idée est excellente, mais trop lourd, trop documenté et trop difficilement adaptable pour moi.

Selon moi ce sont des solutions 'pretes à l'emploi' pour les débutants, un profesionnel saurait faire sans (car développer correctement, il sait normalement faire).

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web