Schreiben von Daten auf Puffer ist eine Routine, Teil eines Programms der Funktionsweise und auch eine wichtige Quelle von möglichen Problemen . Wenn ein Programm , um mehr Daten in einem Puffer abgelegt versucht als der Programmierer entwickelt es zu halten , kann die daraus resultierende Überlauf von Daten beschädigt andere Programmdaten . Dies kann zu Software abstürzt , oder möglicherweise ein Mittel für Hacker kapern das Programm und Ausführen von Schadcode führen . Buffer Overflows und
Ein Puffer ist ein Array Variable entwickelt, um Daten für das Programm zu einem späteren Zeitpunkt in ihrer Ausführung verwenden speichern. Dies könnte ein Benutzer Informationen in das Programm sein , kann der Inhalt einer Datei, die das Programm liest , oder irgendetwas anderes, das Programm ausführen müssen . Puffer werden mit einer bestimmten Größe , die in einem Computer- Speicher reserviert wird , um den Puffer Speicherung der Daten erstellt . Buffer Overflows auftreten, wenn ein Programm schreibt eine Menge von Daten in einen Puffer , der seiner tatsächlichen Größe überschreitet , was das Programm , um Daten Vergangenheit des Puffers Lage in den Arbeitsspeicher des Computers und in den Speicher für andere Puffer oder Variablen vorbehalten schreiben.
stürzt
ein Programm stürzt ab, wenn sie sich nicht in der Lage , die Aufgabe es kodiert wurde , um zu einem bestimmten Zeitpunkt ausführen ausführen findet , und seine Entwickler nicht einen Mechanismus für die Wiederherstellung von solchen ein Misserfolg. Buffer Overflows kann Programme abstürzen, wenn der Überlauf verdirbt die Variable Daten, die in einem nahe gelegenen Speicher-Slot gespeichert ist. Zum Beispiel, wenn ein Überlauf eines Textes Puffer kann Textzeichen über die Zahlen in einer Integer- Variablen Speicher-Slot gespeichert schreiben. Wenn das Programm dieser Variablen Datenzugriffe auf eine Berechnung durchführen , findet es die Textzeichen anstelle der Zahlen . Das Programm kann nicht mathematische Berechnungen auf Textzeichen , so würde das Programm zum Absturz zu reagieren.
Sicherheitslücken
advertentm Puffer Überlastungen kann Programme zum Absturz , aber Hacker könnte absichtlich zwingen einen Puffer Überlastung eines Programms , das die Funktion beeinträchtigen . Zum Beispiel kann ein Puffer im Speicher Schlitz nahe dem Speicherplatz , der für einen bestimmten Befehl der Ausführung des Programms hält sein . Ein Hacker kann entdecken Sie die Größe des Puffers , und der Abstand zu den Befehls Speicher-Slot vom Ende des Puffers. Er konnte dann zwingen einen Pufferüberlauf, der würde über - schreiben die Daten zwischen dem Puffer und das Kommando zu Speicher-Slot , dann über - schreiben des Befehls Speicher-Slot , um den Befehl mit einem seiner eigenen Design zu ersetzen. Wenn das Programm, das den Befehl aufruft Speicher-Slot und führt seinen Inhalt , wäre es die Ausführung des Hackers Code statt des einen der Programmierer gedacht.
Verhindern Buffer Overflows
Programmierer können Buffer Overflows durch die Einführung Sicherheitsmechanismen, um sicherzustellen, dass das Programm nicht versuchen, mehr Daten in einen Puffer , als er es zu halten entworfen schreiben zu verhindern. Dazu gehören die Überprüfung der Größe der Daten der Nutzer versuchen , in sie gesetzt , durch Eingabe oder Auswahl eines Eingangs -Datei, um sicherzustellen, dass es nicht mehr als die Größe des Puffers . Programmierer sollten auch versuchen, die Chancen, die Benutzer haben , um Daten direkt schreiben, um einen Puffer zu minimieren , da jeder Eingang, der direkt in einen Puffer schreibt ist ein potenzieller Vektor für einen Puffer Überlastung Angriff .