Software Schwachstellen ständig verfolgen Programmierer und Entwickler . Das Format String Fehler ist eine solche Sicherheitslücke , und es können Programme abstürzen oder Ausführen von Schadcode . Das Problem mit Format-String dreht sich um unkontrollierte Benutzereingaben . Der Druckbefehl in C kann ein Beispiel für diesen Fehler sein . A " printf () " ist eine ungeprüfte Benutzereingaben ermöglicht das Drucken von Remote-Standorten . Allein verwendet , gibt dieser Befehl Hacker Möglichkeiten zu entführen Code für ihre Zwecke . Beschreibung
Entwickler verwenden die printf -Code Familie zu Format-Strings oder Kontrolle Datenausgabe. Die printf -Code -Familie umfasst Befehle wie fprintf , vprintf und sprintf , die alle Daten -Format , aber schreiben Sie an verschiedenen Standorten . Format -String-Fehler auftreten, wenn Entwickler vernachlässigen die notwendigen Beschränkungen der printf Codefamilie platzieren. Hacker können dann ihren eigenen Code durch diese Einschränkung - freien Codes oder Schlupflöcher, und entführen den Code. Das Ergebnis , so die Autoren von "The Shellcoders Handbook, " ist, dass die Entführer kann dann in der Lage sein , um private Informationen anzuzeigen und beliebigen Code auszuführen.
Format Token
Fixing Format -String-Fehler kann schmerzlos sein , und die Software-Entwickler müssen nur genau eine Format-Token wie " % s " oder "% x " . Zum Beispiel kann der Entwickler geben " printf ( "% s " , input) " auf der Kommandozeile .
Das Format Token Format Einträge beschränkt und verhindert, dass Hacker die Ausführung schädlichen Codes über Lücken in der ursprünglichen Code. Format -String-Fehler treten in der Regel , wenn Programmierer Code für große Programme zu entwickeln. Während die Code-Entwicklung , können Programmierer auf das große Bild konzentrieren und damit einen Blick auf den Format-String . Die unkontrollierte Format-String wirkt dann wie ein Fenster der Gelegenheit , dass der Angreifer ausnutzen kann, um den Code zu manipulieren.
Buffer Overflows
Format -Strings können auch Puffer Überlauf Probleme . Wenn ein Programm zu einem Pufferüberlauf Grenze beim Schreiben von Daten erfolgt Pufferüberlauf , und das Programm können benachbarte Speicher zu überschreiben . Dies ist eine erhebliche Bedrohung in Bezug auf ein Programm der Erinnerung Sicherheit. Pufferüberlauf Probleme sind oft mit C und C + + Sprachen verbunden. Programmentwickler sollten sicherstellen, dass Puffer Grenzen Zähler Pufferüberlauf Anomalien zu überprüfen. Wenn kein Format für eine C Laufzeit -Funktion angegeben , kann jeder beliebige Code durch die vorgegebenen Lücke ausgeführt werden. Da der Code nicht, kann die Grenzen des Puffers , kann es zu einem Pufferüberlauf führen , und überschreiben Speicher .
Minimierung der Risiken
Sie können Format -String-Fehler zu vermeiden, indem Wenn Sie einige Grundregeln der Programmierung. Um Vorkommen von Formant -String-Fehler zu minimieren, installieren Sie nur die Dienstprogramme , die Sie brauchen , und nur den Zugriff auf diese Dienstprogramme zu denen in Ihre größte Gruppe nach den Autoren von " Hack Proofing Your Network . " Immer daran denken, eine angeben Format-String zu einem " printf "-Anweisung. Wenn benutzerdefinierte Format-Strings sind in dem Code , mit besonderer Sorgfalt beim Schreiben Privilegien dieser selbst definierten Format-Strings .