Questo sito contribuisce alla audience di

La guida risponde

0 Vota

Buffer overflow

Domanda

Cos'è il buffer overflow? Sara Ravinale

Risposta

Cara Sara,

l'overflow è una brutta bestiolina, sempre in agguato. Si verifica quando
vuoi inserire qualcosa in un contenitore più piccolo dalla cosa che vi
vuoi inserire.

Ad esempio una stringa di 32 caratteri in una variabile dimensionata a 30, un
litro d'acqua in una lattina di birra, 10mila di benzina in un motorino. Se
non hai preparato gli opportuni accorgimenti (es: un controllo della lunghezza
della stringa) succede il patatrac.

In particolare, il buffer overflow avviene quando i dati escono dal buffer a
velocità inferiore rispetto a quelli che entrano. Forse la stampante
si è inceppata, il programma si è bloccato, il bus è più
lento, il protocollo meno efficiente, la periferica vecchia... tutte le volte
che c'è un buffer, c'è la possibilità che capiti un buffer
overflow o un buffer underrun (che è l'opposto, quando il buffer si svuota
perchè la velocità dei dati in uscita è più alta
di quella dei dati in entrata).

Ma adesso iniziano le dolenti note. Windows 95/98/NT è particolarmente
sensibile al buffer overflow. Molti dei messaggi di errore del tipo "Un
programma ha compiuto una operazione illegale e sarà terminato"
che appaiono con quelle simpatiche finestrelle grigie con un tondo rosso con
una croce bianca, e nelle quali il pulsante "Dettagli" espose una
serie di caratteri incomprensibili, sono dovuti a buffer overflow verificatesi
nello stack di memoria.

Tanto che il problema del buffer overflow viene utilizzato dagli hacker per
forzare l'ingresso in server Windows NT (ma anche certe versioni di Unix). Provocandolo
tramite l'invio di stringhe più lunghe del consentito, mandano in errore
certi componenti del sistema, guadagnando l'accesso ad altri componenti rimasti
attivi e quindi prendendo il controllo (almeno parziale) del sistema. In questo
modo possono avere accesso a file riservati, conoscere password di accesso,
ed anche impadronirsi dell'accesso a livello di amministratore di sistema.

sar*** - 22 anni e 3 mesi fa
Registrati per commentare