Wie C Pufferüberläufe Stopp. Ein Puffer ist ein zusammenhängender Speicherblock mit einer festen Größe verwendet, um Daten , wie eine Zeichenkette zu speichern. Die Programmiersprache C können Sie alle Daten in den Puffer zu schreiben, auch wenn es zu large.In Neben der Herstellung Ihrer Programmabsturz ist , können Angreifer verwenden Buffer Overflows , um bösartigen Code auf Systemen mit Ihrem Programm auszuführen. Trotz aller Versuche von Buffer Overflow -Exploits zu schützen, ist es immer noch ein häufig ausgebeutet Angriff vector.In C können Buffer Overflows , indem Sie Best Practices für die sichere Codierung gemildert werden. Anleitung
1
Vermeiden Sie die C -Library-Funktionen strcpy , strcat , sprtinf , vsprintf bekommt und scanf . Diese Funktionen sind unsicher und führen keine Überprüfung der Grenzen vor dem Schreiben Eingang oder Lesen aus einem Puffer , was zu Buffer Overflows . Bounds Überprüfung ist ein Verfahren zur Verwendung von bedingten Anweisungen - wie wenn, dann - um zu überprüfen, ob ein Lese-oder Schreibvorgang ist innerhalb der von dem Puffer gebunden
2
Invalidate Code aus dem Stapel ausgeführt. . Der Stapel ist, wo Speicher wie Puffer gespeichert werden , während die Anwendung ausgeführt wird . Bösartiger Code wird durch Schreiben in den Stapel , wo es dann ausgeführt wird, ausgeführt. Obwohl die Umsetzung schwierig sein kann , sind einige Version von Linux und GNU C Compiler ( GCC) zur Verfügung, die dies zu verhindern .
3
Verwenden Sie einen compilar , die für potenzielle Pufferüberlauf Bedingungen überprüfen wird . Erweiterungen und Patches gibt es für C-Compiler wie C , die warnen, wenn Sie unsicher Funktion und versuchen, Überprüfung von Grenzen in Ihrem Code ausführen verwenden .
4
Verwenden Sie den kostenlosen Programmen wie Stapel Schild und Stapel schützen Sie zu erkennen und zu schützen gegen Buffer Overflows . (Siehe die Ressourcen).