Sicherheit bei Webapplikationen

Rund um die Sicherheit des Systems und die Applikationen
transmitter
Posts: 147
Joined: 2005-01-20 03:07

Sicherheit bei Webapplikationen

Post by transmitter » 2005-07-07 18:07

Hi

Das ist jetzt sicher eher eine "noob" Frage, aber ich traue mich einfach mal:

Wie kann es denn sein, dass PHPNuke und phpBB usw. so stark Fehleranfällig sind und wie kann man das umgehen?

Klar ist: Die Dinger sind OpenSource, somit kennt jeder den Code und weiß dann auch, wo die Sicherheitslücken sind.

Das Thema würde sich doch komplett erledigen, wenn ich mein eigenes Board schreiben würde oder mein eigenes CMS, oder?

Dann so eine MySQL injection: Man kennt die DB Struktur, und deswegen kann man valide Querys ausführen die über eine PHP Sicherheitslücke eingeschleust werden.
Da ist doch wieder das gleiche dabei: sobald niemand meine DB Struktur kennt, besteht doch eigentlich keine Möglichkeit mehr querys in meiner DB auszuführen, oder?

Genauso bei Image-Galerien: Bei PHPNuke eine riesen Sicherheitslücke, wie kann ich das denn bei meiner eigenen umgehen?
Die Benutzer können eine Datei hochladen, diese wird intern validiert und nur wenn alle Tests erfolgreich waren überhaupt akzeptiert.
Ist das eine Sicherheitslücke?
Der Benutzer weiß ja weder wohin die Datei geht, was mit ihr passiert oder wie sie heißt, wenn ich sie in /tmp oder sonst wo speichere ..

Worauf ich hinaus will ist eigentlich: Wie gefährdet sind meine Webs / ist mein Server bei meinen eigenen Closed Source PHP Applikationen, wenn ich die Security Tips von Zend und PHP beachtet habe und jede Benutzereingabe validiere?

Danke schon mal :)

Bye, Transmitter

caput
Posts: 48
Joined: 2005-06-08 02:06

Re: Sicherheit bei Webapplikationen

Post by caput » 2005-07-07 19:44

Wie kann es denn sein, dass PHPNuke und phpBB usw. so stark Fehleranfällig sind und wie kann man das umgehen?
Fehler liegen in der Natur des Menschen. Das ein oder andere Projekt leider zuviel.. Umgehen? Eine alternative benutzen (Mambo, Typo3, Xoops.. keine Ahnung gibt genug).
Das Thema würde sich doch komplett erledigen, wenn ich mein eigenes Board schreiben würde oder mein eigenes CMS, oder?
Jein, auch wenn du es selber schreibst heisst das lange noch nicht das es weniger gefährdet ist/bist.
Genauso bei Image-Galerien: Bei PHPNuke eine riesen Sicherheitslücke, wie kann ich das denn bei meiner eigenen umgehen?
Die Benutzer können eine Datei hochladen, diese wird intern validiert und nur wenn alle Tests erfolgreich waren überhaupt akzeptiert.
Ist das eine Sicherheitslücke?
Siehe oben, alternativen verwenden.
Worauf ich hinaus will ist eigentlich: Wie gefährdet sind meine Webs / ist mein Server bei meinen eigenen Closed Source PHP Applikationen,
M$ hat trotz Closed Source mit denn selben Problemen zu kämpfen wie OpenSource Projekte.
wenn ich die Security Tips von Zend und PHP beachtet habe und jede Benutzereingabe validiere?
Nicht wenn, ich würde sogar schon sagen das es zur Pflicht gehört Benutzereingaben zu überprüfen. :?

- caput :oops:

transmitter
Posts: 147
Joined: 2005-01-20 03:07

Re: Sicherheit bei Webapplikationen

Post by transmitter » 2005-07-07 20:01

caput wrote:
Das Thema würde sich doch komplett erledigen, wenn ich mein eigenes Board schreiben würde oder mein eigenes CMS, oder?
Jein, auch wenn du es selber schreibst heisst das lange noch nicht das es weniger gefährdet ist/bist.
Wieso?
Also .. was muss ich denn außer den Tips auf PHP.net noch beachten?
Gibt es da noch so eine gute Ã?bersicht bzw. ToDo Liste?

User avatar
Joe User
Project Manager
Project Manager
Posts: 11139
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Sicherheit bei Webapplikationen

Post by Joe User » 2005-07-07 20:37

Transmitter wrote:Wieso?
Also .. was muss ich denn außer den Tips auf PHP.net noch beachten?
Weil auch auf php.net nur die grundlegensten Dinge empfohlen werden können.
Transmitter wrote:Gibt es da noch so eine gute Ã?bersicht bzw. ToDo Liste?
Nein...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

zerobyte
Posts: 10
Joined: 2003-01-07 16:31
Location: Karlsruhe

Re: Sicherheit bei Webapplikationen

Post by zerobyte » 2005-07-07 21:12

Transmitter wrote:
caput wrote:
Das Thema würde sich doch komplett erledigen, wenn ich mein eigenes Board schreiben würde oder mein eigenes CMS, oder?
Jein, auch wenn du es selber schreibst heisst das lange noch nicht das es weniger gefährdet ist/bist.
Kurze Zwischenfrage: Du kannst den Aufwand für Entwurf, Implementierung, Optimierung, Tests und Sicherheitsaudit eines CMS realistisch abschätzen?

Ich würde alleine für den Entwurf schon mal mindestens 1-2 Monate Vollzeit einrechnen. In der Testphase ist dann noch eine Testumgebung in sicherer Umgebung nötig und irgendwann braucht man einen sehr großzügigen Sponsor...

Außerdem steht der Aufwand in keinem Verhältnis zu dem Ergebnis (Ausnahme: das CMS entsteht als Auftragsarbeit und man wird nach Stunden bezahlt ohne Deckelung der Maximalkosten :) )
Transmitter wrote: Wieso?
Also .. was muss ich denn außer den Tips auf PHP.net noch beachten?
Gibt es da noch so eine gute Ã?bersicht bzw. ToDo Liste?
- security-mailinglists und ähnliches zeitnah verfolgen (zu manchen bekommst du als "Normalsterblicher" allerdings gar keinen Zugang
- dich selbst in die Lage eines Angreifers versetzen und dir überlegen wie du dein System attackieren würdest

andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: Sicherheit bei Webapplikationen

Post by andreask2 » 2005-07-07 22:14

Transmitter wrote:Wie kann es denn sein, dass PHPNuke und phpBB usw. so stark Fehleranfällig sind und wie kann man das umgehen?
PHP ist eine Scriptsprache, mit der man mit sehr wenig Aufwand sehr viel erreichen kann. Jeder Nicht-Programmierer kann nach wenigen Wochen ein eigenes Board, CMS... programmieren, welches auch mehr oder weniger funktioniert. Das man in dieser Zeit nicht wirklich ordentlich programmieren lernen kann sollte klar sein. Entsprechend werden viele Fehler gemacht, unter anderem auch sicherheitskritische. Auf den ersten Blick sind Sachen wie include($_GET['file']) doch superpraktisch - oder?

So entsteht dann halt sehr viel fehlerhafte Software - der man es aber von außen nicht ansehen kann. Meist kommen die Leute aus dem Webdesign Bereich, wo man sich mit solchen Sicherheits-Fragen nicht wirklich auseinander setzen muss. Dafür gibts ein nettes Design...

Naja, und manchmal kommen viele solche Leute zusammen, es bildet sich eine Community, die Software wird immer komplexer, bekannter, und auf einmal - weil es viele potentielle Opfer gibt - gucken sich Leute - die ein bisschen mehr Ahnung von der Materie haben den Quellcode an, finden Sicherheitslücken und entweder werden die so veröffentlicht, oder eben nicht veröffentlicht und in eigene Angriffe eingebaut. Und wenn es veröffentlicht wird - bauen es eben die Script-Kiddies in ihre Software ein, da es mehr als genügend Leute gibt die sich nicht mehr um die Administration scheren, wenn es einmal läuft (falsches Verständnis von "never change a running system").
Transmitter wrote:Klar ist: Die Dinger sind OpenSource, somit kennt jeder den Code und weiß dann auch, wo die Sicherheitslücken sind.
Wenn man den Code nicht kennt macht es das nur geringfügig schwerer, es hat nicht viel damit zu tun ob jemand einen erfolgreichen Angriff hinbekommt.
Transmitter wrote:Das Thema würde sich doch komplett erledigen, wenn ich mein eigenes Board schreiben würde oder mein eigenes CMS, oder?
Wenn Du viel Ahnung von der Materie hast schon, wenn Du es auch nicht besser machst als die meisten anderen - dann nicht.
Transmitter wrote:Dann so eine MySQL injection: Man kennt die DB Struktur, und deswegen kann man valide Querys ausführen die über eine PHP Sicherheitslücke eingeschleust werden.
Da ist doch wieder das gleiche dabei: sobald niemand meine DB Struktur kennt, besteht doch eigentlich keine Möglichkeit mehr querys in meiner DB auszuführen, oder?
Das glaubst Du: http://www.unixwiz.net/techtips/sql-injection.html
Transmitter wrote:Genauso bei Image-Galerien: Bei PHPNuke eine riesen Sicherheitslücke, wie kann ich das denn bei meiner eigenen umgehen?
Die Benutzer können eine Datei hochladen, diese wird intern validiert und nur wenn alle Tests erfolgreich waren überhaupt akzeptiert.
Ist das eine Sicherheitslücke?
Der Benutzer weiß ja weder wohin die Datei geht, was mit ihr passiert oder wie sie heißt, wenn ich sie in /tmp oder sonst wo speichere ..
Das glaubst Du! Security by obscurity bringt hier nicht viel. Man kann vieles herausbekommen, wie bei SQL oben. Das Problem ist, dass die Gefahren an Stellen liegen, wo es ein Anfänger nicht vermutet. Irgendeine fehlende Initialisierung, irgendein Cookie der andere Werte sendet als angenommen usw. Das größte Problem ist, das Anfänger aufgrund fehlender Erfahrung nicht auf die Idee kommen (können), dass bei bestimmten Variablen die sie in Scripten verwenden Sachen drinstehen können, wo sie im Traum nicht dran gedacht haben, bzw. dessen Auswirkung sie mangels Wissen nicht verstehen.
Transmitter wrote:Worauf ich hinaus will ist eigentlich: Wie gefährdet sind meine Webs / ist mein Server bei meinen eigenen Closed Source PHP Applikationen, wenn ich die Security Tips von Zend und PHP beachtet habe und jede Benutzereingabe validiere?
Das erzählen die von phpbb, postnuke & Co schon seit Jahren. Trotzdem tauchen regelmäßig Schwachstellen auf, mit denen man eigenen Code ausführen kann. Es gibt auch Alternativen, wo das nicht so ist - z.B. FUDforum. Das hat halt auch jemand geschrieben, der sich auskennt.

Natürlich kann niemand garantieren, dass seine Software fehlerfrei ist, aber es gibt doch Software, wo das besonders häufig vorkommt (und da tut sich M$ eher negativ hervor - trotz closed-source bzw. "Security by Obscurity" - wie hier bereits bemerkt wurde).

Dazu kommt bei Root-Servern, dass Du den Server auch ordentlich konfigurieren musst - was leider viele Leute die sich nach den ersten PHP-Erfahrung fitt fühlen für den eigenen Root-Server ("wozu gibt es Confixx?"), nicht wirklich hinbekommen.

Ein paar Links für den Einstieg:

http://de3.php.net/security
http://phpsec.org/projects/guide/
http://talks.php.net/index.php/Security
http://www.owasp.org/documentation/guid ... loads.html
http://www.w3.org/Security/faq/www-security-faq.html

Und hier im Forum mal nach den feststehenden Threads gucken, da steht noch sehr viel mehr drin.


Grüße
Andreas

transmitter
Posts: 147
Joined: 2005-01-20 03:07

Re: Sicherheit bei Webapplikationen

Post by transmitter » 2005-07-08 01:05

Danke euch .. das sollte schonmal ein guter Anfang sein :)

Genug lernen kann man sowieso nie :(

andreask2
Posts: 696
Joined: 2004-01-27 14:16
Location: Aachen

Re: Sicherheit bei Webapplikationen

Post by andreask2 » 2005-07-08 14:06


suntzu
Posts: 669
Joined: 2002-12-20 19:47
Location: Mönchengladbach

Re: Sicherheit bei Webapplikationen

Post by suntzu » 2005-07-12 23:36

Wenn wir schon dabei sind, Links zu verteilen:

http://md.hudora.de/presentations/#common-failures2005