Klaus: Sicherheit bei Updates mit PHP

Beitrag lesen

Hallo,

Ich habe ein Problem damit, dass jeder x-beliebige, der nicht berechtigt ist den Code zu laden, dann über die entsprechende URL an den code kommen kann. Dies können natürlich auch Hacker sein, die den Code analysieren wollen.

Wenn das deine einzige Sorge wäre, könntest du beruhigt sein.

Außerdem, wenn das Analysieren deines Code eine potenzielle Sicherheitslücke darstellt, dann hast du irgendetwas falsch gemacht. Die Sicherheit sollte nicht darauf beruhen, dass der Code geheim bleibt, was nich funktioniert, da jeder der dein CMS einsetzt auch den Code einsehen kann, sondern lieber sollte  dein CMS sicher programmiert worden sein.

Nun ergeben sich erhebliche Sicherheitsprobleme.

Die größte Gefahr ist in meinen Augen, dass jmd. deinen Verteilserver knackt/manipuliert.
Wenn es jmd. schafft, dort einzubrechen und den auszuliefernden Code zu manipulieren, dann lädt jedes CMS dank des automatischen Updates diese manipulierten Code. Das heißt für den Angreifer, dass wenn er es schafft, deinen Server zu unterwandern, er Zugriff auf jedes CMS hat und somit evt. mit einem Schlag tausende CMS unter seine Kontrolle bringen kann. In diesen Code kann er alles einschleusen was er möchte, also könnte er z.B. ein kleines Script schreiben, welches für ihn von jedem CMS die Datenbank kopiert und per Mail zuschickt => tausende senible Daten landen so unter Umständen direkt bei ihm.
Deswegen sollte man, wenn man soetwas plant, unbedingt seinen Code signieren  und die CMS sollte nur signierten Code akzeptieren. Natürlich muss der private Schlüssel, mit dem der Code signiert wird, seperat aufbewahrt werden, irgendwo sicher bei dir zu Hause an einem PC ohne Internet oder so.

Persönlich würde mir solch ein Modulmanager nicht gefallen und wäre für mich ein Grund, dein CMS _nicht_ einzusetzen.
Dieser Modulmanager mit Auto-Update ist gleichzusetzen mit einer Backdoor, du hast die uneingeschränkte Möglichkeit über die Applikationen zu herrschen und jede Menge Unfug zu machen, du könntest ja heimlich die Datenbank kopieren oder ähnliches.

Ein weiteres Problem sehe ich dabei, was passiert denn mal, wenn durch ein Update das CMS beschädigt wird und seinen Dienst nicht mehr tut? Dies könnte mit einem Schlag alle Systeme bei den Kunden lahm legen. Wie das mit der Haftung dann aussieht, kann ich dir nicht beantworten, so macht man seine Kunden/User aber auf keinen Fall glücklich, wenn durch ein Update das CMS nicht mehr zu erreichen ist.
Und gerade unrealistisch ist soetwas nicht. Es gibt zig tausend PHP, MySQL und Apache (o.ä.) Konfigurationen, kannst du diese alle vorher testen? Funktioniert der aktualisierte Code mit PHP4, PHP5, hardened-php, mit MySQL3, MySQL4 und MySQL5? Klappt alles, wenn der Safe Mode auf On/Off ist? Und wie sieht es mit register globals, open basdir, magic_quotes_gpc aus? Alles überprüft und gestestet?

Da man dies nicht alles abdecken kann, kann es gut passieren, dass durch das Auto-Update aufeinmal sehr viele der CMS lahmgelegt werden.
Und wie verhält sich das Update, wenn der Kunde/User am CMS Source rumgespielt hat? Evt. musste er eine Datei anpassen, damit das CMS bei ihm auf dem Server läuft? Kann man all diese Fälle mit einbeziehen?

Persönlich wäre mir so ein auto update zu gefährlich, du kannst ihn evt. darauf hinweisen das neue Versionen vorhanden sind, aber alles automatisch zu machen wäre nicht ratsam.

MFG