WordPress

Update Muffel aufgepasst – WordPress 4.7.2

Am 26.1.2017 erschien mit WordPress 4.7.2 ein Sicherheitsupdate zur Schließung von drei Sicherheitslücken. Am 1.2.2017 gab das WordPress Sicherheitsteam in einem Beitrag bekannt, dass im Update auch eine vierte Sicherheitslücke in der WordPress REST API geschlossen wurde. Obwohl die Version 4.7.2 über das automatische Updatesystem von WordPress verteilt wurde, kam es laut einem Bericht von WP Tavern bei einigen tausend Webseiten zu sogenannten Defacements, quasi einem „freundlichen“ Hack, der zumindest keinen Schadcode einspielt oder verbreitet. Ob das so bleibt ist fraglich, denn zwischenzeitlich tauchen vermehrt sogenannte RCE (Remote Code Execution) Angriffe auf, die versuchen die Sicherheitslücke auszunutzen.

Basierend auf den Zahlen von Sucuri (70.000 gehackte Seiten) und built With (17.4 Millionen WordPress Installationen) wurden bis jetzt rund 0.4% der WordPress Webseiten Opfer der REST API Sicherheitslücke. Das spricht zwar zum einen für die Wirksamkeit der automatischen Updates und rechtfertigt die verzögerte Offenlegung, zum anderen Zeigt es aber, dass immer noch viel zu viele WordPress Benutzer den Sicherheitsmechanismus der automatisierten Aktualisierung deaktiviert haben. In den letzten 3 Tagen erreichten mich mehrere Hilferufe von Anwendern, deren WordPress gehackt wurde. Ausnahmslos bei allen waren die automatischen Updates deaktiviert.

Gerade erst zum Jahreswechsel habe ich in meinem Beitrag „Gute Vorsätze für 2017“ Updates und Backups thematisiert und auf deren Wichtigkeit hingewiesen. Und wie man sieht aus gutem Grund. Wer als noch immer kein Update gemacht hat, sollte jetzt nicht länger zögern und auf WordPress 4.7.2 upgraden.

Was ist die REST API?

Bei den Gesprächen mit den betroffenen WordPress Benutzern kam immer wieder die Frage auf, wofür die REST API benötigt wird und wie man diese deaktivieren kann. Die REST API ist eine Schnittstelle (Application Programming Interface), die es einem Client (Browser) oder einer entfernten Anwendung (Remote) erlaubt mit dem Server Daten auszutauschen. Eine ausführliche Erklärung über REST APIs im Allgemeinen gibt es zum Beispiel bei Mittwald. Seit WordPress 4.7 ist die WordPress REST API fester Bestandteil im Core und kein Plugin mehr wie in den Versionen davor. Erste Plugins und Themes nutzen die REST API um über Javascript direkt auf WordPress Funktionen zuzugreifen, wie z.B. das Anzeigen von Blogbeiträgen oder das Auslesen von Custom Post Types.

Wer die REST API nicht benötigt, kann sie deaktivieren. Leider gibt es dafür keine Checkbox im Backend, sodass man eine kleine Funktion in die functions.php eines Childthemes oder als MU-Plugin installieren muss. Folgender Code verhindert die erfolgreiche Kommunikation mit der REST API, ein Abschalten im herkömmlichen Sinn gibt es nicht:

add_filter( 'rest_authentication_errors', 'mmx_disable_rest_api' );
function mmx_disable_rest_api( $access ) {
    return new WP_Error( 'rest_disabled', __( 'The REST API on this site has been disabled.' ), array( 'status' => rest_authorization_required_code() ) );
}

Das beste Mittel ist und bleibt aber die sorgsame Wartung von WordPress. Automatische WordPress Updates aktiviert lassen und Plugins sowie Themes bei Erscheinen neuer Versionen umgehend aktualisieren. Das Argument möglicher Betriebsunterbrechungen wegen Inkompatibilitäten darf besonders bei kommerziellen Anwendern nicht zählen. Wenn es immer wieder Probleme mit einem Plugin oder Theme gibt, gehört das Problem gelöst oder das Plugin oder Theme ausgetauscht. Unternehmer, denen die Zeit für die Pflege fehlt, sollten sich einen Dienstleister suchen, der die Arbeiten für sie übernimmt. Eine Auswahl unterschiedlicher Serviceverträge finden Sie in meiner Preisliste.