Ciao,
Mi sono sempre chiesto come si ricercano vulnerabilita' in software closed
inquanto non e' possibile fare l'auditing dei sorgenti, se non facendo il
debug. Ora l'idea che mi balza in mente, da perfetto ignorante in materia,
e' che per trovare una vulnerabilita' in un software closed l'unica cosa sia
quella di determinare gli input e "provare a riempirli", mi spiego meglio.
Esattamente, quando non hai i sorgenti (non è sempre detto che manchino,
prendo ad esempio
il caso della Code Review) si parla di BlackBox Testing.
Il primo passo è appunto, testare l'Input Validation ovvero come il
Software in esame gestisce i
dati in Input, siano essi normalissime TextBox o Server aperti su una
determinata Porta.
Inizialmente si prova a "Fuzzare l'Input" ovvero a generare (con
opportuni programmi) grosse
moli di dati, in alcuni casi costruiti con alcune regole particolari
(caratteri speciali etc) e vedere
poi come si comporta il programma, se crasha o meno.
Stessa cosa per la gestione dei file, si parla di File Handling, si
tenta di generare file abnormi magari
con caratteri non validi.
Per quanto riguarda il debugging il primo approccio che uso io è con
WinDBG, impostato con
flags -IAS (debugging Post-Mortem abilitato) e poi con il comando
.lastevent vedo la sitazione
all'istante del crash.
per cercare di capire questo tipo di attivita'). Esistono delle tecniche
piu' specifiche ? Esistono dei pattern da cercare ? Esistono dei papers che,
magari anche partendo da programmini scritti appositamente in 2 righe,
spieghino come cercare il problema e come sfruttarlo ?
Esistono degli ottimi libri si Vulnerability Research, ti do qualche nome:
Exploiting Software - How To Break Code
Buffer Overflow Attacks - Detect, Exploit, Prevent
Addison Wesley. The.Art of Software Security Assessment
A Buffer Overflow Study - Attacks and Defenses
Saluti,
Giuseppe Bonfa'
________________________________________________________
http://www.sikurezza.org - Italian Security Mailing List