Per vulnerabilità di protezione si intende qualsiasi tipo di difetto software o hardware. Dopo avere individuato una vulnerabilità, gli utenti malintenzionati tentano di sfruttarla. Exploit è il termine utilizzato per descrivere un programma scritto allo scopo di sfruttare una vulnerabilità nota. L’atto di utilizzare un exploit contro una vulnerabilità è definito
“attacco”.
Le vulnerabilità di protezione possono essere sia hardware che software.
Vulnerabilità software
Le vulnerabilità software sono solitamente introdotte da errori nel sistema operativo o nel codice delle applicazioni e malgrado tutto l’impegno posto dalle aziende nell’individuazione e nel patching di tali vulnerabilità, spesso ne emergono di nuove.
La maggior parte delle vulnerabilità di protezione software rientra in una delle seguenti categorie:
Overflow del buffer: questa vulnerabilità è dovuta alla scrittura di dati oltre i limiti del buffer. Modificando i dati oltre i limiti di un buffer, l’applicazione accede alla memoria allocata ad altri processi. Questa condizione può portare a un arresto anomalo del sistema, alla compromissione dei dati o all’esecuzione dell’escalation dei privilegi.
Input non validato: i programmi spesso operano con input di dati. Tali dati immessi nel programma possono avere contenuto dannoso, progettato per forzare un comportamento non intenzionale del programma.
Race condition: questa vulnerabilità si ha quando l’output di un evento dipende da output ordinati o temporizzati. Un condition rate diventa fonte di vulnerabilità quando gli eventi ordinati o temporizzati richiesti non si verificano nell’ordine o nei tempi corretti.
Punti deboli nelle procedure di sicurezza: sistemi e dati sensibili possono essere protetti con tecniche quali autenticazione, autorizzazione e crittografia. Gli sviluppatori non devono tentare di creare i propri algoritmi di protezione, perché potrebbero introdurre vulnerabilità. È di gran lunga preferibile che gli sviluppatori utilizzino librerie di protezione già create, collaudate e verificate.
Problemi di controllo degli accessi: il processo di controllo degli accessi consente di verificare l’autore di un’operazione e spazia dalla gestione dell’accesso fisico alle apparecchiature all’assegnazione delle autorizzazioni e dei diritti di accesso a una risorsa. Molte vulnerabilità di protezione vengono create dall’utilizzo non corretto del controllo degli accessi.