Buffer Overflows sind gemeinsame Sicherheitsverletzungen für Computer- Systeme, die Benutzereingaben wie Login-Daten. Ein Pufferüberlauf tritt auf, wenn eine Variable in Code gemeint zu halten Daten seitens des Nutzers (zB Login-Namen ) vorgelegt ist nicht groß genug. In diesem Fall werden die eingegebenen persönlichen Daten durch den Benutzer " überläuft " der verfügbare Speicher zugeordnet. Diese Veranstaltung , die so genannte " Buffer Overflow " in den persönlichen Daten Überschreiben oder Ändern von Daten in andere Programme im Speicher führen. Dieses Beispiel zeigt, wie ein Pufferüberlauf auf dem Niveau der Code funktioniert . Things You
Text -Editor brauchen
C /C + + Compiler oder IDE wie Microsoft Visual Studio
anzeigen Weitere Anweisungen
1
Erstellen des Puffers . Folgen Sie diesem Beispiel:
# include
int main () { char
login_name [20];
printf (" Geben Sie ein: ");
scanf ( "% s " , login_name );
printf (" Buffer Overflow " ); }
! Diese grundlegende Code erstellt ein Zeichen-Array (ein Wort , im wesentlichen ) namens " login_name " , die Benutzereingaben halten wird . Beachten Sie, dass " login_name " ist nur 20 Zeichen lang sein. Das Programm fragt dann nach Eingabe des Benutzers und speichert die Informationen in " login_name . "
2
Ursache der Pufferüberlauf . Kompilieren Sie das Programm und starten Sie es. Wenn die aufgefordert werden, geben Sie einen Benutzernamen , der 20 Zeichen überschreitet . Zum Beispiel:
Geben . Benutzername: " . Enter" Dies ist ein langer Satz, der verfügbare Platz in den LOGIN Variable OVERRUN
Hit Der Ausgang Meldung drucken , und das Programm wird beendet. Die Variable hat den verfügbaren Platz im Puffer " login_name " variable überrannt. Die Frage ist dann , was ist passiert?
3
Verstehen Sie, wie Computer-Speicher funktioniert. Da die Eingabe des Benutzers in gespeichert wurde " login_name , " das überschüssige Informationen (jeder Charakter über 20 Zeichen) wurde im Speicher jenseits der Grenzen der Variable geschrieben . Diese Daten müssen irgendwo gespeichert werden . In diesem Fall wird er im Speicher unmittelbar benachbart zu dem die " login_name " variable befindet gespeichert. Indem wir über die Grenzen des Login- Variable , schreibt die zusätzlichen Daten (absichtlich oder nicht) die Daten unmittelbar neben der Variablen. Dies bedeutet, dass der Hacker könnte grundsätzlich umschreiben Code , und ändern , wie der Code arbeitet im Wesentlichen im Besitz der Anlage .
4
Realize Linux Schwachstellen. Linux ist in C /C + +, und viele seiner Kernfunktionalität erfordert die Manipulation von Zeichenketten . Doch viele moderne Linux-Distributionen gegen Fälle von Pufferüberlauf Schutz an Stellen, wo Benutzereingaben erforderlich ist, entweder durch Stapel Schutz oder dynamisch Größenänderung Zeichen-Arrays . Schwachstellen existieren noch : die USB Buffer Overflow Exploit im Jahr 2011 entdeckt, ist ein Beispiel. Im USB Fall kann eine extra lange USB ID Überlauf eine Systemvariable in Linux .