Linux-Buffer Overflow Tutorial

March 15

Linux-Buffer Overflow Tutorial

Pufferüberläufe sind gemeinsame Sicherheitsverletzungen für Computer und Regelsysteme Benutzereingaben wie Login-Daten. Ein Pufferüberlauf tritt auf, wenn eine Variable im Code soll Angaben durch den Benutzer (z. B. einen Login-Namen) halten nicht groß genug ist. In diesem Fall überläuft die zusätzlichen Daten, die vom Benutzer eingegebenen"" den verfügbaren Arbeitsspeicher reserviert. Dieses Ereignis mit dem Namen "Buffer Overflow," kann die zusätzlichen Daten überschreiben oder Ändern von Daten in andere Programme im Speicher führen. Dieses Beispiel zeigt, wie ein Pufferüberlauf auf der Ebene der Code funktioniert.

Anweisungen

1 Erstellen Sie den Puffer. Folgen Sie diesem Beispiel:

enthalten < stdio.h > Int main() {}

Char Login_name [20];

Printf ("geben Sie Anmeldenamen:");

Scanf ("%s", Login_name);

Printf ("Buffer Overflow!");

}

Dieser grundlegende Code erstellt ein Array von Zeichen (ein Wort, im wesentlichen) aufgerufen "Login_name", die Benutzereingaben halten wird. Beachten Sie, dass "Login_name" nur 20 Zeichen lang ist. Das Programm dann bittet um die Eingabe des Benutzers, und speichert die Informationen in "Login_name."

2 Verursachen Sie den Pufferüberlauf. Kompilieren Sie das Programm und führen Sie es. Wenn Sie aufgefordert werden, geben Sie einen Login-Namen übersteigt die 20 Zeichen. Zum Beispiel:

Geben Sie Benutzernamen: dieser ist A lange Satz, dass wird ÜBERRANNT die verfügbaren Raum IN THE LOGIN VARIABLE.

Drücken Sie "Enter." Die Beendigungsmeldung druckt und das Programm beendet. Die Variable hat den verfügbaren Pufferspeicher in der Variablen "Login_name" überrannt. Ist die Frage dann, was passiert ist?

3 Verständnis der Funktionsweise von Computerspeicher. Die Eingabe des Benutzers in "Login_name" gespeichert wurde, war die überschüssige Informationen (Zeichen mehr als 20 Zeichen) im Arbeitsspeicher über die Grenzen der Variablen geschrieben. Diese Daten müssen irgendwo gespeichert werden. In diesem Fall wird es gespeichert, im Speicher direkt neben dem die Variable "Login_name" befindet. Indem man über die Grenzen der Anmeldung Variablen, schreibt die zusätzlichen Daten (absichtlich oder nicht) die Daten unmittelbar neben der Variablen. Diese Mittel, die die Hacker Code und wie der Code funktioniert, im wesentlichen Änderung im Grunde umschreiben könnte das System zu besitzen.

4 Erkennen Sie Linux-Schwachstellen. Linux ist in C/C++ programmiert und viele Kernfunktionen erfordert die Manipulation von Zeichenketten. Schützen jedoch viele moderne Linux-Distributionen für Instanzen von Pufferüberlauf bei Punkten, bei denen Benutzereingaben erforderlich, entweder durch Stack Schutz oder dynamische Größenänderung Zeichen-Arrays ist. Gibt es noch Schwachstellen: die USB-Pufferüberlaufangriff entdeckte im Jahr 2011 ist ein Beispiel. Im Fall USB können ein extra langes USB-ID eine Systemvariable in Linux überlaufen.