PHPIDS

PHPIDS Intrusion Detection System

PHPIDS è un Sistema di Intrusion Detection di facile installazione che vi permette di proteggere tutte le vostre applicazioni web, siti e script php senza influire sulla velocità di esecuzione degli stessi.

PHPIDS è gratis ed è giunto ora alla versione 0.5.3.

Come funziona

Lo script, che va incluso nelle pagine da mettere in sicurezza (oppure preposto in tutte le richieste http tramite un settaggio del php.ini che vedremo tra poco), analizza le richieste senza filtrare o “strippare” l’input, semplicemente riconosce il codice maligno reagendo esattamente come volete voi, anche in base alla gravità dell’attacco; per esempio potete istruire l’IDS per terminare il caricamento della pagina dopo aver loggato ip e input del potenziale intruso.

PHPIDS è in grado di riconoscere tentativi di attacco XSS, SQL Injection, header injection, directory traversal, RFE/LFI, DoS e LDAP. Può inoltre rilevare le richieste ostili che sono state offuscate, come la codifica del codice iniettato nel charset UTF-7 o nelle entità Unicode, decimale ed esadecimale.

Esempio di codifica UTF-7:

+ADw-script+AD4-alert(’Hacked!’)+ADsAPA-/script+AD4-

che decodificato diventa:

<script>alert(’Hacked!’);</script>

L’analisi degli input è basata su una serie di regole di filtraggio raccolte in un unico file XML in costante sviluppo; questo ci agevola molto nel mantenere aggiornate le definizioni degli attacchi.
Ad ogni regola è assegnato anche un “impatto” in forma numerica, che determina la gravità del tipo di attacco che si sta subendo: in base all’impatto è quindi possibile definire e personalizzare i comportamenti di phpids nel neutralizzare il tentativo di intrusione .
Per tenere traccia degli attacchi rilevati sono disponibili funzioni di logging su file di testo, DataBase o tramite l’invio di mail e possiamo implementare queste funzioni anche contemporaneamente.

If ($result->getImpact() >= 40) /* Impatto */
{
require_once ‘IDS/Log/File.php’;
require_once ‘IDS/Log/Email.php’;
require_once ‘IDS/Log/Composite.php’;
$compositeLog = new IDS_Log_Composite();
$compositeLog->addLogger(IDS_Log_File::getInstance($init),
IDS_Log_Email::getInstance($init)); /*Loggo su file e mail*/
/* Interrompo il caricamento */
die(’<h1>Il tuo attacco è stato Loggato!</h1>’);
}

Read the rest of this entry »