Ganz schön abgefahren

Abgefahrener Reifen

Über die PIN-Group, dieses Pleiteunternehmen aus dem Hause Springer, habe ich neulich schon geschrieben.
Wenn ich mir aber die Reifen dieses PIN-Fahrrads ansehe, dann sehe ich neben den finanziellen auch noch versicherungstechnische Probleme auf PIN zu kommen, denn ich kann mir nicht vorstellen, dass man das noch als Verkehrstauglich bezeichnen kann.
Ich möchte mir garnicht ausmalen, wie es diesem Briefausträger ergangen wäre, wenn der Winter richtig schön Schnee und vor allem Eis zu bieten gehabt hätte…

Sicherheitslücke in WordPress 2.1 bis inklusive 2.3 (Massiv!!!)

Wie ich gerade auf Blogsecurity.net lese, gibt es einen massiven Bug in WordPress. Für das Management der Blogroll ist die links.php zuständig. Diese überprüft nicht, ob der eintragende dazu überhaupt berechtigt ist. Solange dieser Bug nix gefixt ist, kann sich also jeder in die Blogroll eines fremden Blogs eintragen. Dies wird auch schon als neue Spamstrategie beobachtet.

Der Fix besteht einfach darin, abzufragen, ob der Eintragende dazu eine Berechtigung hat:
if ( ! current_user_can('manage_links') ) wp_die( __('You do not have sufficient permissions to edit the links for this blog.') );

Man kann sich auch einfach eine gefixte link.php herunterladen. Diese kopiert man dann ins Verzeichnis „wp-admin“ und überschreibt die dortige link.php , schon ist das Blog wieder sicher.

Webhoster, PHP und Sicherheitslücken

Vor rund 15 Jahren wurde das, was die meisten heute als „Internet“ bezeichnen würden, erfunden:
Browser, die Grafiken anzeigen konnten

Seit dieser Zeit werden Computer mehr und mehr vernetzt und somit anfälliger für Sicherheitslücken in Software. Niemand würde meinen Computer mit einem Virus verseuchen, wenn er nicht im Internet hinge. Software zu Updaten oder neue Versionen einzuspielen, weil Sicherheitslücken gefunden wurden, ist inzwischen ein alltäglicher Vorgang. Eine Software, die dabei aber kaum jemand beachtet, ist PHP.

Was ist PHP?

PHP ist die Skriptsprache, die euer Blog zum Laufen bringt, die Sprache, mit der WordPress, die Plugins und auch die Themes programmiert werden. Aber auch Serendipity, Joomla, vBulletin oder PHPBB sind nur PHP Skripte. Fast alles, was sich Web2.0 nennt basiert an irgend einer Stelle auf PHP und doch widmet man PHP meist keine Aufmerksamkeit.

Aktuell ist PHP 4.4.7 und 5.2.4

In der Regel wird man auf seinem Webserver entweder PHP 4 oder PHP 5 finden, von beiden gibt es diversen Versionsnummern, aktuell sind 4.4.7 und 5.2.4 , meist wird man aber auf veraltete Versionen stoßen, die mit haufenweisen Sicherheitslücken bestückt sind.
PHP 4 ist noch dazu konzeptionell total veraltet, wurde PHP 4.0 doch schon im Jahre 2000 veröffentlicht. Dies ist auch der Grund, warum der Support für PHP 4 zum Jahresende eingestellt wird. Trotzdem benutzen noch fast 80% aller Webangebote PHP 4, wie nexen.net herausgefunden hat. Der Grund dürfte sein, dass die meisten Applikationen PHP 4 unterstützen und manche nicht kompatibel zu PHP 5 sind, weshalb die Hoster PHP 4 installieren und im Gegenzug damit die Entwickler nicht den Druck verspüren, ihre Anwendungen auf PHP5 zu portieren…
Wordpress, wie viele andere große Anwendungen sind aber inzwischen PHP 5 kompatibel.

Wie finde ich heraus, welche PHP-Version mein Hoster einsetzt?

Mit dem PHP-Befehl phpinfo() wird der PHP Interpreter angewiesen, Systeminformationen über die PHP-Konfiguration anzuzeigen. Ladet einfach die info.php.txt (Nach dem Herunterladen das .txt einfach löschen) und kopiert sie auf euren Webserver. Ruft die Datei auf (zB http://www.mydomain.de/info.php ) und schon seht ihr, welche Version verwendet wird. Löscht aber anschließend die Datei wieder von eurem Webserver, böse Jungs können aus diesen Informationen nämlich einfach erkennen, an welchen Sicherheitslücken sie ansetzen können.

Was kann ich tun, wenn mein Webhoster PHP 4 einsetzt?

Im Gegensatz zu der Blogsoftware gehört das PHP-System zu den Systemdateien und kann darum vom Nutzer nicht einfach ausgetauscht werden, oft bieten die Hoster aber beide PHP Versionen an und der Nutzer kann die Versionen umstellen.
Verwendet euer Hoster noch PHP 4, dann durchsucht mal seine FAQs, so fand ich in den FAQs meines Webhosters 1blu,de nach der Suche mit dem Begriff „PHP5“ eine Anleitung, wie ich ganz einfach von PHP4 auf PHP5 umsteigen kann. Bei Goneo.de kann man die Umstellung einfach im Kundencenter vornehmen.

Was kann ich tun, wenn mein Webhoster veraltete Versionen einsetzt?

Direkt kann man, wie erwähnt, das PHP-System nicht upgraden. Veröffentlichen, wie veraltet die verwendete Version ist, möchte man aus Sicherheitsgründen auch nicht. Somit bleibt einem nichts anderes zu tun, als an den Support des Webhosters zu schreiben und um ein Upgrade bitten und eventuell mit Kündigung zu drohen.

Anregung via sw-guide

Blogs, Sicherheitslücken und Verantwortung

Wie ich gerade bei BlogSecurity lesen musste, wurde gestern Nachmittag das Blog SvenKubiak.de „defaced“, d.h. gehackt und die Startseite durch eine andere ersetzt. Die Ursache fand sich in einer veralteten Version des MyGallery-Plugins.

Software ist fehlerhaft. Punkt. Immer und zu jeder Zeit, den Software wird von Menschen erdacht und erschaffen und so fehlerhaft wie der Mensch so fehlerhaft ist auch Software, im Schnitt bedeutet das 2 Fehler je 1000 Zeilen Programmiercode.
Nun gibt es vielerlei verschiedene Fehler in Software. Manche Fehler treten nie auf, denn die Stelle an der der Fehler gemacht wurde, wird nicht erreicht (zB weil die Stelle nur im Fehlerfall erreicht wird), manche Fehler haben nur kosmetische Auswirkungen (Fehler in der Benutzeroberfläche oder allgemein in der Ausgabe), manche Fehler führen zum Absturz der Software. Manche Fehler aber sorgen für von außen angreifbare Sicherheitslücken, so wie in diesem Falle.

Programmierfehler sind immer ärgerlich, sowohl für den Software-Entwickler als auch für den Nutzer der Software, denn für beide bedeuten Programmierfehler Arbeit. Der Software-Entwickler steht nun vor der Aufgabe, den Programmierfehler zu beheben und dabei möglichst keine neuen Sicherheitslücken aufzureißen. Der Software-Nutzer hingegen steht nun in der Pflicht, dafür sorge zu tragen, dass er möglichst immer die aktuellste Version der Software vorliegen hat.

Software-Anwender haben üblicherweise das alleinige Interesse die Software anzuwenden. Sie wollen sich nicht um Programmierfehler und Software-Wartung kümmern, denn schließlich haben sie ja für die Software bezahlt und sich die Mühe gemacht, das Software-Produkt zu installieren und sich einzuarbeiten. Hier liegt ein gewaltiger Denkfehler.
Jedem Autofahrer ist bewusst, dass er sich um die Pflege und Wartung seines Autos kümmern muss. Das Auto muss gewaschen werden, der Öl-Druck überprüft und defekte Teile ausgewechselt werden. Tut er das nicht, kann das zu teuren Reparaturen und zum stehen bleiben des Fahrzeugs führen.
Bei Software ist dies kaum anders. Zwar gibt es keine Verschleißteile, die regelmäßig gewechselt werden müssen, allerdings ist regelmäßiges putzen (Festplatte aufräumen, nach Viren scannen, Backups anfertigen) und regelmäßige Wartung (va das überprüfen ob neue Versionen vorliegen) nötig, da es sonst zu Rucklern, Abstürzen oder Datenverlust kommen kann.
Dies nenne ich die Verantwortung gegenüber dem Eigentum.

Programmierfehler auf öffentlich zugänglichen Geräten, wozu auf ein Blog gehört, können aber zu deutlich schlimmeren Folgen, als nur zu Rechnerabstürzen führen. Wenn zB die Steuerung einer Ampel versagt und alle Ampeln gleichzeitig auf Grün springen, ist sogar Leib und Leben in Gefahr. Ganz so dicke kann es für Blogger dann doch nicht kommen. Im Idealfall wird eine Sicherheitslücke entdeckt und der Fehler behoben, noch bevor die Sicherheitslücke ausgenutzt wurde, im schlimmsten Fall kann aber der Webserver auf dem das Blog liegt gekapert werden und über ihn strafrechtlich relevante Daten verbreitet, die zu gehörigen Problemen für den Blogger führen können.

Was ist nun zu tun?

  1. Überlegen einer Backuplösung für das Blog, damit die Daten im Blog nicht verloren gehen können. Ich verwende das WordPress Database Backup Plugin um die Datenbank mit den Artikeln und Kommentaren regelmäßig (einmal am Tag) zu sichern. Desweiteren habe ich alle Dateien, die auf dem Webserver liegen, bei mir lokal gespeichert.
  2. Aktivieren des WordPress Update Monitor Plugins, dass anzeigt, wenn eine neue WordPress-Version erschienen ist, darum ein Update erforderlich ist und dieses Update zeitnah durchführen.
  3. Überprüfung des Blogs durch den WP-Scanner von BlogSecurity. Dieser testet sowohl die Plugins, als auch das verwendete WordPress Theme auf Sicherheitslücken. Die entsprechenden Updates sollten installiert werden.
  4. Überprüfen jedes einzelnen installierten Plugins, ob es eine neue Version gibt und gegebenenfalls das Installieren dieser neuen Version.
  5. Ausarbeitung eines Wartungsplans für das Blog. In meinem Fall bedeutet das, dass ich täglich die WordPress-Datenbank und bei jeder Veränderung der Dateien diese auf meinem Rechner sichere. Desweiteren lege ich vor jedem WordPress-Update eine zusätzliche Komplettsicherung aller Dateien und der Datenbank an. Bei jedem WordPress-Update überprüfe ich JEDES Plugin, ob eine neue Version vorliegt.
  6. Überprüfen des Webservers, denn natürlich kann und wird auch dieser Sicherheitslücken haben. Wenn man nicht gerade selbst Administrators seines eigenen Servers ist, bleibt einem hier nur das Anmahnen von Updates beim Hoster (va Datenbank, PHP-Version, Webserver und Betriebssystem seien hier genannt).

Hat man diese sechs Schritte durchgeführt und hält sich an seinen Wartungsplan, so kann eigentlich nichts mehr schief gehen. Außer natürlich, die verwendeten Passwörter sind nicht optimal