Archiv für wordpress

Google Friend Connect

Nachdem ich es heute bei Caschy mal live gesehen habe, bastel ich auch gerade mal ein wenig mit Google Friend Connect herum. Man sieht es ja rechts in der Sidebar.

So wie es aktuell integriert ist, macht es allerdings in meinen Augen noch nicht ganz so viel Sinn. Man kann „Mitglied“ werden und das wird dann auch schön mit bunten Bildchen angezeigt, das war es auch schon. Funktionell ist nichts gewonnen. Einen Nutzen bringt das Ganze erst dann, wenn beispielsweise dadurch die lästigen Zusatzangaben beim kommentieren entfallen würden.

Genau da liegt aber im Augenblick noch der Hase im Pfeffer: Ich hab bislang noch kein vernünftiges WordPress Plugin dafür entdeckt. Ein Plugin erweckt den Eindruck, das zu können, aber die Seite der Entwickler steht zum Verkauf, hier ist also wohl nicht mit Updates zu rechnen. Und der getestete Rest ist irgendwie nix. Das Plugin von Google integriert sich so radikal, dass anschließend alle vorhandenen Kommentare nicht mehr zu sehen sind und nur noch die über Google Friend Connect verfassten Kommentare angezeigt werden. Ist also auch nix.  (siehe Update am Ende)

Ich schaue mich natürlich weiter um, vielleicht finde ich ja noch etwas, vielleicht kennt auch jemand von Euch eine gute Lösung. Vorerst ist die Integration von Friend Connect hier definitiv noch im Alpha-Stadium 😉

Update: Anders als eben noch geschrieben, integriert sich das Plugin von Google doch auch wesentlich angenehmer. Die Option „Enable FriendConnect Comments“ tauscht die Kommentarfunktion komplett aus und integriert eine eigene. Dadurch sind auch die alten Kommentare nicht mehr sichtbar. Deaktiviert man diese Funktion, dann hängt sich das Plugin nur über einen Hook in die WordPress Kommentarfunktion und erlaubt es dann, wenn man per Friend Connect angemeldet ist, mit den dort hinterlegten Daten zu kommentieren. So macht das alles natürlich wesentlich mehr Sinn. Also korrigiere ich von Alpha- auf Beta-Stadium 😉

Tags: , , ,

Backdoor in WordPress ganz easy

WordPress ist bei den meisten Nutzern gerade aufgrund seiner Flexibilität und einfachen Erweiterbarkeit sehr beliebt. Gerade letzteres bietet jedoch eine Vielzahl von Möglichkeiten, Backdoors einzuschleusen, die unerwünschten „Besuchern“ eine Menge Möglichkeiten für Unsinn verschaffen können.

Wie einfach es beispielsweise ist, eine Backdoor in ein Template zu integrieren, welche einen Benutzer in WordPress anlegt und diesem Administrator-Rechte zuweist, zeigt der Beitrag „How-To: Create Backdoor Admin Access in WordPress„. Der Code sitzt in der functions.php des Templates und wird durch einen speziellen Aufruf der Zielseite aktiviert. Mittels der Funktion wp_create_user aus wp-includes/registration.php wird nun ein neuer Benutzer in der Datenbank angelegt und zum Administrator gemacht. Fertig, die Tür ist offen. Egal, ob die Registrierung von neuen Benutzern erlaubt ist oder nicht.

Um solch eine Backdoor nachträglich in eine WordPress-Installation zu integrieren, benötigt ein Angreifer natürlich Zugriff auf die Daten, beispielsweise via FTP. Allerdings ist man darauf nicht zwingend angewiesen, was hindert einen potentiellen Angreifer daran, eine Seite aufzusetzen, von der man Unmengen an WordPress-Templates herunter laden kann, die durch die Bank mit einer solchen Funktion präpariert sind? Oder warum sollte ein Entwickler nicht ein solches Hintertürchen in sein wunderbares WordPress-Plugin integrieren? Hand aufs Herz: Wie groß wird der Anteil an WordPress-Nutzern wohl sein, die PHP beherrschen und ein solches Hintertürchen erkennen könnten? 10%? Und wie viele prüfen denn tatsächlich jedes Plugin oder Template auf potentiellen Schadcode? 1%? Weniger?

Aktuell überwiegt einfach das Vertrauen. Vertrauen in die Redlichkeit der Entwickler und Vertrauen in die Ehrlichkeit der Betreiber von Template-Portalen. Sicherlich löblich, offenbar ist noch nicht zu viel passiert in der Vergangenheit. Aber ein wenig Vorsicht sollte dennoch angebracht sein und somit sind vorbeugende Maßnahmen sicherlich nicht falsch.

Den oben beschriebenen „Exploit“ (um einen „echten“ Exploit handelt es sich meiner Meinung nach nicht wirklich) kann man auf verschiedene Weisen aushebeln.

Variante 1: Wir benennen die Datei wp-includes/registration.php einfach um. Damit hebeln wir allerdings automatisch sämtliche Funktionen zur Bearbeitung bereits existierender Benutzer aus. Also nicht so schick. Zudem ist das nach jedem WordPress-Update zu wiederholen.

Variante 2: Wir kommentieren die Funktion wp_create_user in der Datei wp-includes/registration.php aus. Das Gleiche müssten wir mit der Funktion wp_insert_user in der gleichen Datei tun. Auch hier sind verschiedene Funktionen in der Admin-Oberfläche anschließend defekt und auch dieses Procedere müsste nach jedem Update wiederholt werden. Also auch nicht wirklich schön…

Variante 3 (empfohlen): Wir legen einen zusätzlichen Verzeichnisschutz für das Verzeichnis /wp-admin/ an. Die meisten Provider bieten diese Funktion in der Admin-Oberfläche an, wer diese Funktion bei seinem Provider nicht findet, dem empfehle ich Punkt 8 dieses Artikels. Hier wird die Vorgehensweise recht gut erläutert, auch die anderen Tipps sind prinzipiell sehr zu empfehlen.
Dieser zusätzliche Verzeichnisschutz sorgt nun dafür, dass für den Zugriff auf /wp-admin/ eine zusätzliche Anmeldung erforderlich ist. Bevor also ein Angreifer, der bspw. die oben beschriebene Backdoor ausführen konnte, sich mit seinem neuen Benutzer an Eurem Blog anmelden könnte, müsste er eine weitere, von WordPress unabhängige Authentifizierung erfolgreich vollziehen. Wenn Ihr hier mit einem ausreichend starken Passwort arbeitet, wird das (relativ) schwierig.

Wie weiter oben bereits geschrieben, sehe ich die im verlinkten Beitrag aufgezeigte Möglichkeit zum Anlegen eines administrativen Benutzers nicht als „echten“ Exploit an sondern sehe die Problematik allgemein in der Möglichkeit der Erweiterbarkeit. Und sicherlich beschränkt sich das Problem somit nicht allein auf WordPress. Allerdings ist es natürlich durch die von WordPress zur Verfügung gestellten Funktionen wesentlich einfacher, erfolgreich eine Hintertür einzurichten. Möglicherweise sollten gerade die Funktionen zur Erstellung und Änderung von Benutzern gekapselt werden und eben nicht von jedem xbeliebigen Addon genutzt werden können. Aktuell ist es aber möglich, daher sollten WordPress-Nutzer sich nicht allein auf die mitgelieferten Sicherheitsfunktionen verlassen, sondern selbst Hand anlegen. Und sicherlich auch hin und wieder mal nachschauen, ob plötzlich neue Benutzer in der Datenbank auftauchen, obwohl die Registrierung nicht erlaubt ist.

Tags: , , ,

WordPress-Plugin: Private WP 2

Wer zu Testzwecken oder zur Präsentation nur für ausgewählte Benutzer ein WordPress-Blog nur beschränkt zugänglich machen möchte, kann dies recht einfach mit dem Plugin Private WP 2 erreichen. Das Plugin ist ebenso simpel wie wirksam: Jeder Aufruf auf das Blog wird zur Anmeldeseite von WordPress umgeleitet, solange der Besucher nicht eingeloggt ist. Ist er angemeldet, sieht das Blog aus wie jedes andere auch.

Idealerweise richtet man vorab dann noch die passenden Benutzer ein und deaktiviert die Möglichkeit, sich selbst zu registrieren.

Tags: , ,

WordPress Plugin: Hash Comment IP

Am Wochenende war ich ja einigermaßen baff war angesichts des Falles, in dem Stefan Niggemeier vom Berliner Datenschutzbeauftragten eine Geldbuße in Höhe von 50.000 Euro angedroht wurde, da er in seinem Blog die IP- und Mailadressen der Kommentatoren speichert.

In meinen Kommentaren verwies dann jemand auf das WordPress Plugin 123 AntiVDS 0.10, welches verhindert, dass eMail-Adresse, Name und IP-Adresse eines Kommentators gespeichert werden. Es wird einfach ein leerer String in die Datenbank geschrieben und gut ist. Schon mal nicht schlecht.

Stefan verweist in seinem Beitrag aber auch auf die Notwendigkeit, gewisse Störer erkennen zu können und schnell sämtliche Beiträge dieser Leute zu finden, wenn sie beispielsweise nachts aus Langweile das Blog vollmüllen. Ohne gespeicherte IP-Adresse in dieser Form unmöglich.

Ein Kompromiss wurde in Stefans Kommentaren auch vorgschlagen: Statt der IP-Adresse einfach einen Hash-Wert speichern. Es befindet sich dann keine IP-Adresse mehr in der Datenbank und der Blogger hat dennoch die Möglichkeit, Kommentare (bei gleichbleibender IP-Adresse) einem Kommentator zuzuordnen. Was für den Fall, den Stefan beschreibt, ausreichen sollte.

Genau das mach nun mein Mini-Plugin Hash Comment IP, welches ich mir gestern mal fix gestrickt habe und das seitdem hier Verwendung findet. Es hat keinerlei Einstellungsmöglichkeiten, einfach nur den entpackten Ordner in Euer WordPress Plugin-Verzeichnis kopieren, das Plugin aktivieren und fertig. Für sämtliche Kommentare wird dann ab sofort nur noch ein Hash-Wert statt der IP-Adresse gespeichert.

Hinweis: Bereits in der Datenbank gespeicherte IP-Adressen bleiben davon ausgenommen, sie werden (noch) nicht nachträglich durch einen Hash-Wert ersetzt!

Download Version 0.1

Tags: , , ,