Buffer Overflow-Attacken sind eine häufige Form des Angriffs für einen Hacker zu Chaos in einem System verursachen. Es gibt auf dem Heap Overflow-Attacken , was selten ist , und Stack -basierte Angriffe , die fälschlicherweise das Urlöschen Grenze für einen Stapel , so dass es zum Überlaufen sind . Das überlaufende Daten bewegt sich in anderen Puffern , korrumpieren oder Überschreiben der gültigen Daten gibt , was möglicherweise zu einer Kaskade von beschädigten Puffer, ähnlich wie eine Kaskade von überquellenden Champagner-Gläser. Um Pufferüberlauf -Angriffe zu verhindern , müssen Sie Expertenwissen der Computer-Programmierung zu haben, der fragliche Code zuzugreifen und die Zeit und Geduld, um durchkämmen Seiten und Seiten von Code , um die Änderungen notwendig, um Ihre Systeme zu schützen umzusetzen. Anleitung
1
schreiben secure code Überlauf -Angriffe zu verhindern . In C gibt es eine Reihe von Funktionen, die anfällig Hackern zu überfüllen Puffer ausnutzen können . Minimieren Sie Ihre Verwendung von strcpy ( ) , strcat () , sprintf () und vsprintf (), die nicht durchführen Überprüfung der Grenzen . Wenn möglich , vermeiden Sie gets () , hat das nicht angeben , wie viele Zeichen gelesen werden und lässt somit Ihren Code anfällig. Wenn Sie scanf () verwenden , sollten Sie eine Breite für die % s -Format angeben, um Überschreitungen zu vermeiden.
2
Überprüfen Sie, ob Sie Trampolinen verwenden können, um einen Pufferüberlauf zu vermeiden . Seit Pufferüberlauf tritt in den Stapeln von Speicher und nicht im Code , wäre die einfachste Lösung zu sein scheinen verhindert, dass Ihre Stapel von der Ausführung von Code durch Einfügen eines kleinen Stück Code , um diese Aktionen zu verbieten. Dies ist in Linux möglich , ist aber sehr schwierig. Nur wenige Compiler verwenden die kleinen Bits von Code aufgerufen Trampoline, die als Barriere zwischen dem Code den Aufruf einer Funktion und die Funktion selbst zu handeln. Also, wenn bösartiger Code versucht , einen Puffer zu überschreiben, können das Trampolin abfangen und bewirken den Hacker- Versuche .
3
Implementieren Compiler Tools , um Ihnen Warnungen , wenn Sie Code verwenden, die lässt Sie anfällig für anzugreifen. Einige dieser Tools generiert Code, untersagen Außenstehenden Zugriff auf illegale Adressen und heruntergefahren Code, wie die Ausführung versucht . Produkte wie StackShield und StackGuard sind eine große Hilfe . StackSheild prüfen wird die Rücksprungadresse einer Funktion und kündigen im Falle einer Unregelmäßigkeit . StackGuard Orten einen Kanarienvogel Wort auf die Rückkehr -Adresse und überprüft, ob das Wort verändert wurde , Beenden einer Funktion, wenn es hat.
4
Installieren Tools wie libsafe , um die Sicherheit in einem dynamischen überprüfen, führen Sie -Laufzeitumgebung . Libsafe läuft unter Linux und prüft die nächste Rückkehr -Adresse von einem Stack-Frame , dann sicher, dass die Adresse nicht überschrieben wird. Libsafe ersetzen auch die unsichere Funktionen wie gets () , strcpy () und scanf () .