Gewusst wie: Buffer-Overflow-Attacken zu verhindern

June 4

Gewusst wie: Buffer-Overflow-Attacken zu verhindern

Pufferüberlaufangriffe sind eine häufige Form des Angriffs für einen Hacker, Chaos in einem System zu verursachen. Es gibt auf der Grundlage von Heap-Overflow-Attacken, die selten sind, und Stack-basierte Angriffe, die fälschlicherweise die Speichergrenze für einen Stapel, wodurch es zu einem Überlauf zurückgesetzt. Die überlaufenden Daten bewegt sich in anderen Puffer, beschädigen oder Überschreiben der gültigen Daten dort möglicherweise verursacht eine Kaskade von beschädigten Puffer, ähnlich wie eine Kaskade von Champagnergläser überfüllt. Um Pufferüberlaufangriffe zu verhindern, müssen Sie Expertenwissen der Computerprogrammierung, Zugriff auf den Code in Frage und die Zeit und Geduld um Kamm durch Seiten und Seiten von Code zur Implementierung der Änderungen notwendig, Ihre Systeme zu schützen haben.

Anweisungen

1 Schreiben von sicherem Code um Überlauf-Angriffe zu verhindern. In C gibt es eine Reihe von gefährdeten Funktionen, die Hacker ausnutzen können, um Puffer Überlauf-. Minimieren Sie Ihre Verwendung von Strcpy (), (Strcat), Sprintf () und Vsprintf:), die Überprüfung von Grenzen nicht durchführen. Wenn möglich, vermeiden Sie die Verwendung (erhält), die nicht angeben, wie viele Zeichen gelesen werden und somit wird Ihr Code anfällig für Angriffe. Wenn Sie Scanf () verwenden, müssen Sie für die %s-Format, um Überläufe zu vermeiden eine Breite angeben.

2 Überprüfen Sie, ob Sie Trampoline verwenden können, um Pufferüberlauf zu verhindern. Da Pufferüberlauf in die Stapel von Speicher und nicht im Code auftritt, scheint die einfachste Lösung Ihre Stapel werden verhindert, dass Code ausgeführt, indem Sie ein kleines Stück Code, diese Aktionen zu verbieten einfügen. Dies ist möglich unter Linux aber ist sehr schwierig. Nur wenige Compiler verwenden die kleinen Stückchen Code aufgerufen, Trampoline, die als Barriere zwischen dem Aufrufen einer Funktion und die Funktion selbst Code zu fungieren. Also, wenn bösartiger Code versucht, einen Puffer zu überschreiben, kann das Trampolin abfangen und der Hacker Versuche zunichte.

3 Implementieren Sie Compilertools um Warnungen zu geben, wenn Sie Code, die Sie anfällig wird verwenden, um anzugreifen. Einige dieser Tools generiert Code, die Außenstehenden den Zugriff auf illegale Adressen verhindern und wird Code, der versucht solche Ausführung heruntergefahren. Produkte wie StackShield und StackGuard sind eine große Hilfe. StackSheild wird die Absenderadresse einer Funktion zu untersuchen und im Falle einer Unregelmäßigkeit zu beenden. StackGuard stellt ein Kanarienvogel Wort an die Absenderadresse und überprüft, um festzustellen, ob das Wort verändert wurde, eine Funktion zu beenden, wenn es hat.

4 Installieren Sie die Tools wie Libsafe, Sicherheit in einer dynamischen, Laufzeit-Umgebung überprüfen. Libsafe läuft unter Linux und prüft die nächste Absenderadresse an einem Stack-Frame, dann sorgt dafür, dass die Adresse nicht überschrieben wird. Libsafe ersetzt auch die unsicheren Funktionen z. B. gets(), strcpy() und scanf().