Stoppen Buffer Overflows verhindert Programmabstürze und Hackern durch die Freisetzung schädlicher Code , der einen Computer System kompromittieren können . Ein Pufferüberlauf ist , wenn ein Programm zum Schreiben von Daten in einen Puffer , die gemeinhin einen String oder ein Array , und übertrifft mit dem Puffer- Länge , das Schreiben von Code in den benachbarten Speicher . Verhindern Buffer Overflows wird durch die Verwendung Programmierbibliotheken erreicht , dass die Unterstützung Puffer -Schutz, mit ausführbaren Raumschutz und Programmiersprachen, die Wahl haben Bereichsüberprüfung . Anleitung
1
Wählen Sie eine Programmiersprache, die eingebaute Kontrollen Daten schriftlich außerhalb der Grenzen eines Puffers zu verhindern. Sprachen wie C und C + + lack eingebaute Grenze Überprüfung . Die . NET Framework und Java-Umgebungen Kraft begrenzt Überprüfung . Ausgelegt Sprachen haben Schutz vor Buffer Overflows .
2
Select Bibliotheken und Funktionen, die Puffer-Management und Überprüfung von Grenzen haben . Die am häufigsten verwendeten C-Funktionen " strcpy ", " scanf " und " bekommt " sind besonders anfällig für Buffer Overflows . Safer Alternativen beinhalten den " strncpy " und " strncat "-Funktionen , die die Daten von mehr als die angegebene Länge zu verwerfen. Es muss noch getroffen werden, um die korrekte Puffergröße angegeben werden. Ein Beispiel für eine sicherere Alternative zu den C-String -Bibliothek ist der kostenlose Download " The Better String Library. "
3
Install ausführbare Raumschutz Add- ons , um zu verhindern Buffer Overflows . Code versucht, aus dem Stapel oder Heap führen eine Ausnahme auslösen . Executable Raumschutz nutzt die "No Execute" ( NX-Bit ) , um Bereiche des Speichers als nicht ausführbar zu markieren. Beispiele für ausführbare Raumschutz Pakete für Unix gehören OpenWall , Exec Schild und Pax . Add- ons für Windows umfassen StackDefender und BufferShield . Seit Windows XP Service Pack 2 bietet Windows Data Execution Prevention (DEP ) und bietet einiges an Pufferüberlaufschutz .