Buffer overflow: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m ZeroBot - typo |
||
Riga 5:
Un caso del genere si può verificare quando il programma non controlla in anticipo la lunghezza dei dati in arrivo, ma si limita a scrivere il loro valore in un [[buffer]] di lunghezza prestabilita, confidando che l'utente (o il mittente) non immetta più dati di quanti esso ne possa contenere. Se invece, per errore o per calcolo, vengono inviati più dati della capienza del buffer destinato a contenerli, i dati ''extra'' vanno a sovrascrivere le variabili interne del programma, o il suo stesso stack. Conoscendo molto bene il programma in questione e il tipo di macchina su cui gira, si può precalcolare una serie di dati ''malevoli'' che inviata per provocare un buffer overflow consenta a un malintenzionato di prendere il controllo del programma, e tramite questo dell'intero computer.
Non tutti i programmi sono vulnerabili a questo tipo di inconveniente:
# il programma preveda l'input di dati di lunghezza variabile e non nota a priori;
# che li immagazzini entro [[buffer]] allocati nel suo spazio di memoria dati vicini ad altre strutture dati vitali per il programma stesso;
|