THP Wisec USH DigitalBullets TheHackersPlace network
The WIse SECurity
.italian
.english
Wisec Home SecSearch Progetti Documenti Pensieri in Sicurezza
 
Servizi alle Aziende News Cerca su Wisec
Google

Security Thoughts

[ Back ]

Monday, November 14, 2005, 20:23

Application firewall e approccio blacklist - 2.a puntata

Finalmente, a distanza di un annetto ho il tempo per annotare
i passi avanti sulla generazione automatica di regole per mod_security.

Non avendo avuto il tempo materiale per creare un webbot efficente, ho trovato un bel software GPL
del comune di Prato (complimenti allo sviluppatore!):
ht://Check.

Oltre alle varie funzionalita' di questo software che vi potrete divertire a leggere,
ce n'e' una interessante, che puo' essere utilizzata anche per il penetration testing:
la memorizzazione su DB Mysql di tutti i tag e relativi attributi
trovati durante la navigazione automatica del sito.

Non approfondiro' in questa al momento i possibili utilizzi per il penTest dei siti, ma andiamo a vedere
come si puo' sfruttare per generare delle regole per mod_security.

Supponiamo che faccia girare htcheck su www.example.com.
Preparazione:
- Nel file di configurazione htcheck.conf, impostiamo:
start_url: http://www.example.com/ (fatelo sul vostro eh! example non esiste ;)
- Lanciate poi htcheck:
$ htcheck -vsi

Attendete che sia finito il tutto...

htCheck dara' una serie di resoconti....ma non ci interessano poi tanto...

Quello che ci interessa e' il contenuto del DB.
$ mysql -u utente -p htcheck
mysql> show tables;

+-------------------+
| Tables_in_htcheck |
+-------------------+
| Accessibility |
| Cookies |
| HtmlAttribute |
| HtmlStatement |
| Link |
| Schedule |
| Server |
| Url |
| htCheck |
+-------------------+

...
In particolare la tabella Url.

proviamo a fare la seguente query:


select DISTINCT SUBSTRING_INDEX(url,'?',1),SUBSTRING(url,INSTR(url,'?')+1) from Url where url like'%?%'

Ci ritorna la suddivisione in due colonne delle url con le query string...

Bene. Queste informazioni ci servono per collezionare _tutte_ le query string sui riferimenti al nostro sito web..

Ora quello che bisogna fare e' un programma che estrae tali informazioni e le
traduce in regole per mod_security.

Ecco un programmino in perl che fa proprio questo Automatic Rules Generation for Mod_security - Rule-o-matic.
lanciatelo e in output vedrete le regole da inserire in mod_security.
Tali regole, saranno whitelist e sono estratte dai riferimenti cioe' da <a href="host/path/file?query">.
Un esempio:
<Location /docs.php>
SecFilterInheritance On
SecFilterSelective "ARG_id" "!^\d$"
</Location>

La suddetta regola significa:
Quando viene richiesta una pagina '/docs.php' con variabile 'id', il valore di 'id' puo' essere solo un numero.

Lo so che la spiegazione non e' proprio esaustiva ma se spiego tutto che gusto c'e'???

Comments:

No comments yet.

 
Comments are disabled

Admin login | This weblog is from www.mylittlehomepage.net

Wisec - Un'Idea sviluppata e mantenuta da...

Wisec è scritto e mantenuto da Stefano Di Paola.

Wisec usa standard aperti, inclusi XHTML, PHP e CSS2.

Tutti i Diritti Riservati 2004
Tutti i messaggi e i metadati appartengono ai rispettivi autori.