Exploits
Un exploit è un termine usato in informatica per identificare un codice che, sfruttando un bug o una vulnerabilità, porta all’acquisizione di privilegi o al denial of service di un computer.
Ci sono diversi modi per classificare gli exploit. Il più comune è una classificazione a seconda del modo in cui l’exploit contatta l’applicazione vulnerabile. Un exploit remoto è compiuto attraverso la rete e sfrutta la vulnerabilità senza precedenti accessi al sistema. Un exploit locale richiede un preventivo accesso al sistema e solitamente fa aumentare i privilegi dell’utente oltre a quelli impostati dall’amministratore.
Gli exploit possono anche essere classificati a seconda del tipo di vulnerabilità che sfruttano. Vedi buffer overflow, Heap Overflow, format string attacks, race condition, double free(), Integer overflow, sql injection, cross-site scripting, cross-site request forgery, remote file inclusion e local file inclusion.
Lo scopo di molti exploit è quello di acquisire i privilegi di root su un sistema. È comunque possibile usare exploit che dapprima acquisiscono un accesso con i minimi privilegi e che poi li alzano fino ad arrivare a root.
Normalmente un exploit può sfruttare solo una specifica falla, e quando viene pubblicato questa falla è riparata e l’exploit diventa inutile per le nuove versioni del programma. Per questo motivo alcuni blackhat hacker non divulgano gli exploit trovati ma li tengono riservati per loro o per la loro comunità. Questi exploit sono chiamati zero day exploit, e scoprire il loro contenuto è il più grande desiderio per gli attacker senza conoscenze, altrimenti detti script kiddie.