Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> networking >> Sicurezza di rete >> .

Linux Buffer Overflow Tutorial

Buffer overflow sono violazioni di sicurezza comuni per i sistemi di computer che richiedono l'input dell'utente , come le informazioni di login . Un buffer overflow si verifica quando una variabile in codice destinato a contenere informazioni da parte degli utenti ( ad esempio un nome di login ) non è abbastanza grande . In questo caso , i dati aggiuntivi inseriti dall'utente " overflow " la memoria disponibile allocato . Questo evento , chiamato " buffer overflow ", può causare la sovrascrittura dei dati aggiuntivi o modificare i dati in altri programmi in memoria . Questo esempio mostra come un buffer overflow funziona a livello di codice . Cose che ti serviranno
editor di testo
C /C + + compilatore o IDE , ad esempio Microsoft Visual Studio
Show More Istruzioni
1

Creare il buffer . Seguite questo esempio :

# include

int main ( ) { char

nome_login [ 20 ] ;

printf ( " Inserisci login : " ) ;

scanf ( "% s " , login_name ) ;

printf ( " buffer overflow " ) ; }


! questo codice di base crea un array di caratteri ( una parola , essenzialmente) chiamato " nome_login " che conterrà l'input dell'utente . Si noti che " nome_login " è lungo solo 20 caratteri . Il programma quindi richiede l' input dell'utente , e memorizza le informazioni in " login_name . "
2

Causa il buffer overflow . Compilare il programma ed eseguirlo . Quando il richiesto, immettere un nome di accesso che supera i 20 caratteri . Per esempio :

Inserisci login: ". . Enter" Questa è una frase tanto tempo che permetterà di superare lo spazio disponibile nella variabile LOGIN

Hit Il messaggio di uscita viene stampato e il programma terminerà . La variabile ha invaso lo spazio di buffer disponibile nella variabile " login_name " . La domanda allora è: che cosa è successo?
3

capire come funziona la memoria del computer. Come l' input dell'utente è stato immagazzinato in " login_name , " le informazioni in eccesso ( qualsiasi carattere oltre 20 caratteri ) è stato scritto in memoria oltre i limiti della variabile . Tali dati devono essere memorizzati da qualche parte . In questo caso , viene memorizzato nella memoria immediatamente adiacente a cui si trova la variabile " nome_login " . Andando oltre i confini della variabile di login , i dati supplementari ( intenzionalmente o no ) riscrive immediatamente i dati a fianco della variabile . Questo significa che l' hacker potrebbe praticamente riscrivere il codice , e cambiare come il codice funziona , essenzialmente possedere il sistema .
4

Realizzare vulnerabilità di Linux . Linux è codificato in C /C + + , e molte delle sue funzionalità di base richiede la manipolazione di stringhe di caratteri . Tuttavia, molte distribuzioni Linux moderne di protezione contro i casi di overflow del buffer nei punti in cui è richiesto l'input dell'utente , sia attraverso la protezione dello stack o dinamicamente array di caratteri ridimensionamento . Esistono ancora le vulnerabilità : il buffer overflow exploit USB scoperto nel 2011 è un esempio. Nel caso USB , un extra lunga ID USB ​​può causare un overflow di una variabile di sistema in Linux .

 

networking © www.354353.com