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'???
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.