O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

71.4 Sicherheitskonzepte
Ziel zu erreichen. Dadurch sind First-Order-Angriffe in der Regel
leichter durchzuführen als Second-Order-Attacken.
Second Order
Die Angriffe zweiter Ordnung müssen meist »blind« durchgeführt
werden. Der Angreifer weiß oder vermutet, dass an einer bestimmten
Stelle in der Zielanwendung nur ungenügende Eingabevalidierung vor-
genommen wird, kann diese Tatsache jedoch nicht direkt ausnutzen,
weil er an das betroffene Subsystem nicht herankommt. Ein klassisches
Beispiel wird im Kapitel 4 »Cross-Site Scripting« behandelt: Log-
Dateien oder -Datenbanken sind ein prädestiniertes Ziel für Second-
Order-Angriffe. Der Angreifer sorgt dafür, dass mit Schadcode verse-
hene Anfragen gespeichert werden, und wartet nun darauf, dass ein
Administrator der Zielanwendung diese Daten auswertet. Ob und
wann das geschehen wird und ob der Angriff dann auch erfolgreich
sein wird, kann er nur selten vorhersagen.
Somit sind Second-Order-Angriffe häufig wesentlich komplizierter
und langwieriger in der Durchführung, was dazu führt, dass Entwick-
ler und Administratoren ihnen nur geringe Bedeutung beimessen. Die
Tatsache, dass sie jedoch meist direkt gegen Inhaber hoch privilegierter
Accounts gerichtet sind, macht diese Angriffsklasse für Angreifer wie
Verteidiger gleichermaßen zu einer lohnenden Herausforderung.
1.4 Sicherheitskonzepte
Security is a process, not a product.
Bruce Schneier
4
Seitdem elektronische Datenverarbeitung existiert, haben sich kluge
Köpfe Gedanken um die Sicherung der Daten und Systeme gegen Miss-
brauch gemacht. Die resultierenden Sicherheitskonzepte sind oft
grundsätzlich fehlerhaft – etwa indem sie nur zur Zeit der Erstellung
aktuelle Technologien berücksichtigen oder sich auf die Geheimhal-
tung bestimmter Daten verlassen. Beides hat sich in der Vergangenheit
oft als Trugschluss erwiesen.
Auch Verschlüsselungsalgorithmen oder Verfahren zur Erhöhung
der Sicherheit sind nicht dadurch vertrauenswürdig, dass sie von ihrem
Entwickler geheim gehalten werden. Obwohl die Mechanismen zur
Passwortverschlüsselung z.B. bei Microsoft Windows nicht öffentlich
zugänglich waren, konnten sie doch überwunden werden.
Der lange Zeit als unüberwindbar geltende RC5-64-Verschlüsse-
lungsalgorithmus wurde von einem Projekt Zehntausender Anwender
4. http://www.schneier.com/
1 Einleitung8
auf der ganzen Welt in gut vier Jahren geknackt. Laut Moores Gesetz
verdoppelt sich die Leistung der jeweils aktuellen Prozessorgeneration
immer noch alle 18 Monate.
Prüfsummen, die mit den Algorithmen SHA-1 oder MD5 erstellt
wurden, lassen sich inzwischen in endlicher Zeit durch sogenannte
»Kollisionen«, also die Erstellung einer identischen Prüfsumme für
zwei verschiedene Ausgangswerte, überlisten
5
.
Daher sollte ein Sicherheitskonzept nicht daraus bestehen, sich auf
die Vertraulichkeit der eingesetzten Werkzeuge zu verlassen oder dar-
auf zu vertrauen, dass die für einen Angreifer verfügbare Rechenleis-
tung nicht ausreichen wird, um Ihren Verschlüsselungsalgorithmus zu
brechen. Mit Seiten wie passcracking.com
6
und neuartigen zeitsparen-
den Brute-Force-Verfahren sind selbst MD5-Passwörter in einer recht
kurzen Zeit zu knacken.
Um zu einem tragfähigen Sicherheitskonzept für Ihre Firma oder
auch nur Ihre privat entwickelte PHP-Applikation zu gelangen, sind
einige Schritte notwendig. Die tatsächliche Absicherung Ihrer PHP-
Skripte ist nur einer dieser Schritte, wenn auch der wichtigste.
Betreiben Sie eine dynamische Website auf einem eigenen Server,
müssen Sie (oder Ihre Mitarbeiter) dafür sorgen, dass nicht nur die ver-
wendeten PHP-Anwendungen sicher sind, sondern auch dass alle
anderen von außen erreichbaren Dienste keine Angreifer hereinlassen.
Ihre Systeme sind nur so sicher wie das schwächste Glied in der Kette –
in vielen Fällen ist das jedoch mit heißer Nadel gestrickte PHP-Soft-
ware. Einen kompletten Leitfaden zur Absicherung Ihrer Serversys-
teme zu schreiben, würde den Rahmen dieses Buches sprengen – wir
werden uns hauptsächlich mit PHP und einigen von PHP verwendeten
Subsystemen wie Web- und Datenbankservern beschäftigen.
In einem Unternehmen, das vertrauliche Informationen behandelt,
muss ein Sicherheitskonzept integraler Bestandteil der Firmenprozesse
und -politik sein. Datenverluste oder – schlimmer noch – Datendieb-
stähle gehören im Informationszeitalter zu den unangenehmsten Vor-
kommnissen für jede Firma.
Ein tragfähiges Sicherheitskonzept ist sehr umfangreich und kann
nicht auf wenige Punkte reduziert werden. Ein guter Anhaltspunkt ist
die internationale Richtlinie ISO 17799, »Code of Practice for Infor-
mation Security Management«, die als industrieweit anerkannter Stan-
dard für den sicheren Umgang mit IT-Systemen und allen dazugehöri-
gen Subsystemen gilt. Wie alle ISO-Standards ist die Richtlinie leider
nicht kostenlos erhältlich, kann aber direkt bei der ISO bestellt wer-
5. http://www.schneier.com/blog/archives/2005/02/cryptanalysis_o.html
6. http://www.passcracking.com

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required