Test tradizionali e test di penetrazione
I test tradizionali sono volti a verificare specifiche funzionalità;
consentono di valutare il risultato finale di un progetto, basando
detta valutazione su una analisi incrociata di quanto riportato
negli innumerevoli documenti di progetto e quanto è effettivamente
stato implementato.
Completamente diverso è il discorso nel caso del
servizio di security auditing offerto dal nostro studio,
finalizzato alla ricerca metodica delle vulnerabilità
del sistema ed incentrato sulla raccolta dei dati, sulla
realizzazione di diversi test
di sicurezza (test di stress, test di penetrazione) ed infine su una
fase di reporting.
Come si comporta l'applicazione al verificarsi di particolari
carichi di lavoro (attacchi di tipo DoS)? Il
software realizzato
presenta vulnerabilità alle innumerevoli ed in continua evoluzione
tipologie di attacchi esterni?
In particolare questo ultimo aspetto viene troppo
spesso trascurato; la causa è da ricercarsi in parte nella mancanza
delle competenze richieste, con particolare riguardo alle tecniche
di hacking e di reverse engineering del codice.
Altro motivo per cui queste verifiche non sempre vengono adeguatamente effettuate è da ricercarsi nella scarsa obbiettività di chi le effettua; ricercare ed indagare su eventuali falle nella sicurezza del sistema introdotte dai propri colleghi può essere motivo di imbarazzo se non di controproducenti tensioni all'interno del team. E' quindi auspicabile che questa tipologia di verifiche venga affidata ad un soggetto 'super partes', esterno, privo di alcun conflitto di interessi.
Gli sviluppatori nel realizzare i propri
test operano nel presupposto di un utente ragionevole; un
hacker ricercherà
invece in qualsiasi modo
le vulnerabilità nel
vostro codice, ideando
ed effettuando test
che potrebbero apparire
pazzeschi ai
vostri occhi.