Buffer overflow: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m WPCleaner v1.43 - Disambigua corretto un collegamento - Shell |
Recupero di 0 fonte/i e segnalazione di 2 link interrotto/i. #IABot (v1.6.2) |
||
Riga 102:
Linguaggi di medio/basso livello come il C forniscono alte prestazioni proprio perché "risparmiano" su certi controlli che non vengono automaticamente gestiti a livello di linguaggio lasciando tale responsabilità al programmatore, e gettando dunque le basi a vulnerabilità come il buffer overflow in caso di mancanza dei controlli sulle dimensioni dei buffer durante gli accessi.
Una delle tecniche di difesa da queste anomalie è prevedere che sia il compilatore ad inserire le verifiche sulla dimensione di tutti i buffer nel codice compilato senza richiedere alcuna modifica al codice sorgente, ma solo al compilatore, a scapito però delle prestazioni che possono aumentare anche di più del 200%.<ref name=":1" /> Questa fu la direzione intrapresa da due differenti progetti di patching al compilatore ''gcc'' scritti da Herman ten Brugge e Greg McGary.<ref>{{Cita web|url=ftp://ftp.tuwien.ac.at/.vhost/www.gnu.org/software/gcc.old/extensions.html|titolo=Gcc old extensions|urlmorto=sì}}</ref>
Approccio differente è invece quello di "StackShield", un'estensione del compilatore ''gcc'' per la protezione dallo stack smashing nei sistemi Linux; anziché inserire a tempo di compilazione i controlli per il ''bounds checking'' dei buffer, l'obiettivo di StackShield è quello di impedire la sovrascrittura dei ''return address'' memorizzandone una copia in una zona sicura non sovrascrivibile (all'inizio del segmento dati) all'inizio di ogni chiamata di funzione, copia che viene poi confrontata al termine dell'esecuzione della funzione con il valore memorizzato nello stack: se i valori non combaciano StackShield può terminare l'esecuzione del programma o tentare di proseguire ignorando l'attacco e rischiando al massimo il crash del programma.<ref>{{Cita web|url=http://www.angelfire.com/sk/stackshield/info.html|titolo=StackShield}}</ref>
Riga 173:
* [http://seclab.cs.ucdavis.edu/projects/testing/tools/its4.html Its4]
* [http://www-01.ibm.com/software/awdtools/purify/compare.html Rational Purify]
* {{collegamento interrotto|1=[ftp://ftp.tuwien.ac.at/.vhost/www.gnu.org/software/gcc.old/extensions.html Gcc old extensions] |date=febbraio 2018 |bot=InternetArchiveBot }}
* [http://www.angelfire.com/sk/stackshield/info.html StackShield]
* [https://www.usenix.org/legacy/publications/library/proceedings/sec98/full_papers/cowan/cowan.pdf StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks]
|