Aus Linux-Magazin 10/2005

Workshop: Sicheres Programmieren für Administratoren - Folge 4 (Seite 6)

Platz da

Lösung für C und C++: Entweder der Programmierer sorgt für ausreichend großen, dynamisch reservierten Speicherplatz oder er beschränkt die Länge der Eingabe auf den vorhandenen Speicherplatz. Für einfache kleine Programme ist der zweite Ansatz oft besser, weil leichter umzusetzen. Tabelle 3 zeigt sichere Varianten einiger Funktionen der Standardbibliothek.

Lösung für C++: Der Entwickler verzichtet am besten auf die anfälligen Funktionen und verwendet möglichst die Stringklasse »std::string« und die Streamoperatoren »<<« und »>>«.

Keep it simple

Die Vielfalt und Komplexität der hier beschriebenen Probleme vermitteln einen Eindruck davon, wie schwer es sein kann, harmlose von vergifteten Eingaben zu trennen. Gerade deswegen drängt sich ein viel zitiertes Motto erfolgreicher Admins und Software-Entwickler auf: Keep it simple.

Um die Formate in allen Feinheiten zu verstehen, fehlt meist schon die Zeit. Gut beraten ist dann, wer sich auf eine grobe, leicht zu behandelnde Untermenge der erlaubten Eingaben beschränkt und alles andere abweist. Vielleicht landet so der vergiftete Apfel dort, wo er hingehört: im Sondermüll. (fjl)

Infos

[1] Dominik Vogt, “Gesichtskontrolle – Sicheres Programmieren für Administratoren, Folge 3”: Linux-Magazin 07/05, S. 62

[2] David A. Wheeler, “Secure-Programs-HOWTO”: [http://www.dwheeler.com/secure-programs/]

[3] Sverre H. Huseby, “Sicherheitsrisiko Web-Anwendung”: Dpunkt-Verlag, ISBN 3-89864-259-3

[4] Viega und Messier, “Secure Programming Cookbook”: O\’Reilly, ISBN 0-596-00394-3; [http://www.secureprogramming.com]

[5] Sourcecode zum Secure Programming Cookbook: [http://www.dominikvogt.de/de/index.html#Links]

[6] RFC 2822, “Internet Message Format”: [http://www.ietf.org/rfc/rfc2822.txt]

[7] Jeffrey E. F. Friedl, “Reguläre Ausdrücke”: O\’Reilly, ISBN 3-89721-349-4; [http://www.oreilly.de/catalog/regex2ger/]

[8] Beispielskripte zum Regex-Buch: [http://examples.oreilly.com/regex/]

[9] Dominik Vogt, Gateguardian: [http://sourceforge.net/projects/gateguardian/]

[10] Achim Leitner, “Kein Format – Sicherheitslücken durch den Format-String”: Linux-Magazin 08/01, S. 96

[11] Enrico Feresin, Libshellcode: [http://www.orkspace.net/software/libShellCode]

[12] Achim Leitner, “Nicht ganz dicht – Sicherheitslücken in Programmen vermeiden”: Linux-Magazin 06/01, S. 30

[13] Aleph One, “Smashing The Stack For Fun And Profit”: Phrack Vol. 7, Issue 49, File 14; [http://www.phrack.org/show.php?p=49&a=14]

Der Autor

Dipl.-Math. Dominik Vogt ist langjähriger Software-Entwickler und Systemadministrator. Zurzeit arbeitet er als freiberuflicher EDV-Berater mit Schwerpunkt Softwaresicherheit. In seiner Freizeit werkelt er am Windowmanager Fvwm.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben