Heap overflow: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Migliorato la pagina
 
(3 versioni intermedie di 3 utenti non mostrate)
Riga 1:
{{F|sicurezza informatica|maggio 2012|Mancano del tutto le sezioni Note/Bibliografia/Collegamenti esterni}}
'''''Heap overflow''''', o '''''heap overrun''''', è il nome usato per indicare un [[buffer overflow]] che avviene nell'area dati della dell{{'}}''[[Heap (gestione della memoria)|heap]]''. A differenza che nellodello [[pila (informatica)|stack]], dove la [[Allocazione statica della memoria|memoria viene allocata staticamente]], nella nell{{'}}''heap'' essa viene [[Allocazione dinamica della memoria|allocata in modo dinamico]] dalle applicazioni a ''[[run-time]]'' e tipicamente contiene dati dei programmi utente.
 
Gli ''heap overflow'' vengono solitamente usati dai [[Cracker (informatica)|cracker]] per abusare di programmi contenenti alcune vulnerabilità dovute ada un'insufficiente validazione degli [[input]], a un calcolo sbagliato della memoria da allocare o a un superamento del limite massimo di memoria allocabile. L'attacco avviene come segue: se un'applicazione copia dei dati senza preventivamente controllare se trovano posto nella variabile di destinazione, il cracker può fornire al programma un insieme di dati troppo grande per essere gestito correttamente, andando così a sovrascrivere i [[metadato|metadati]] (cioè le informazioni di gestione) della dell{{'}}''heap'', prossimi alla destinazione dell'insieme di dati. In questo modo, l'attaccante può sovrascrivere una locazione arbitraria di memoria, con una piccola quantità di dati. Nella maggior parte degli ambienti, questo può fornire all'attaccante il controllo dell'esecuzione del programma.
 
La vulnerabilità [[Microsoft]] [[JPEG]] GDI+ [https://web.archive.org/web/20110804221311/http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx MS04-028] è un esempio del pericolo che unoun ''heap overflow'' può rappresentare per un utente informatico. In sintesi, questa vulnerabilità permetteva, durante la visualizzazione di una immagine JPEG ed attraverso un ''[[Buffer overflow|buffer overrun]]'', l'esecuzione di codice malevolo in remoto che, se eseguito nello spazio di un utente con privilegi di amministratore, permetteva all'attaccante di prendere il controllo dell'intero sistema.
 
La metodologia di attacco solitamente varia a seconda delle diverse implementazioni delle funzioni di allocazione dinamica della memoria.
 
==Rilevare e prevenire gli heap overflow==
Esistono applicazioni in grado di rilevare gli ''heap overflow'' dopo che sono avvenuti, abortire quindi l'applicazione e registrare l'evento nei ''[[log]]'' di sistema. Esistono inoltre applicazioni in grado di prevenire gli ''heap overflow'' e ridurre la probabilità che unoun ''heap overflow'' possa avere effetti su un programma in esecuzione.
 
{{Portale|Sicurezza informatica}}