Beispiel für automatisierte Audits: Pscan

Pscan ist ein Paket, das für Audits von C und C++-Quelldateien hinsichtlich Formatzeichenketten-Verwundbarkeiten entworfen wurde.

Es ist kein Allzweck-Audit-Werkzeug.

Pscan benutzen

Pscan zu benutzen ist so einfach wie es mit einem zu prüfenden Dateinamen oder Dateien aufzurufen. Zum Beispiel:

pscan test.c

Die Ausgabe wird direkt auf die Konsole geschrieben:


test.c:42 SECURITY: printf call should have "%s" as argument 0

Die Ausgabe

Die Ausgabe ist in diesem Fall leicht zu verstehen. Es hat die Tatsache, dass der printf-Aufruf seine Argumente nicht korrekt in Anführungszeichen einschließt, identifiziert.

Die Ausgabe zeigt uns, was mir tun müssen, um den Mangel zu beheben: den Code, der lautet

printf( buff );

so abändern, dass er lautet:

printf( "%s", buff );

Dies nicht zu machen könnte einem Angreifer, der die Ausgabe von ls kontrollieren kann, erlauben, das Programm anzugreifen, indem er eine Datei mit dem Namen »%s« oder ähnlich erzeugt.

Formatzeichenketten-Angriffe werden in dieser Einführung von Security Focus beschrieben.

Das Secure Programming for Linux and Unix HOWTO erklärt, wie man sich gegen diese Angriffe in häufig verwendeten variadischen Funktionen wie beispielsweise

schützen kann.


Zurück zum Audit-Projekt | Zurück zur Beispiele-für-Audits-Seite