Effektive Sicherheitsmaßnahmen für WordPress

Grundsätzlich ist WordPress ein sehr sicheres CMS. Ein gutes Passwort vorausgesetzt ist es relativ schwer zu knacken. Aufgrund des hohen Marktanteils (über 25% aller Webseiten weltweit laufen derzeit auf WordPress) ist es trotzdem ein interessantes Ziel für potentielle Angreifer. Man sollte daher bei der Nutzung dieses CMS einige wesentliche Punkte beachten. Im folgenden Artikel gehe ich auf die wesentlichsten  Sicherheitsmaßnahmen für WordPress ein.

1) Tipps zur Installation:

Bereits bei der Installation von WordPress legt man die Grundlagen für einen sicheren Webauftritt. Wer WordPress manuell installiert, hat die Möglichkeit in der wp-config.php Sicherheitsschlüssel zu hinterlegen, die so genannten Secret Keys. Hier sollte man unbedingt auf individuelle, sichere und lange Kombinationen von Zahlen und Buchstaben zurückgreifen. Bei der Installation über den Browser übernimmt diesen Teil WordPress automatisch und erledigt diesen Punkt, ohne dass sie es merken.

Weiters ist es empfehlenswert das Standardpräfix wp_ gegen ein individualisiertes Präfix austauschen, das je nach Projekt geändert wird. Die Wahl des Präfixes wird im Browser bei der Installation abgefragt, hier tauscht man einfach das standardmäßig vorgegebene wp_ gegen wp_projektname_

Als Benutzernamen sollte man nicht den eigenen Namen und auch nicht „Admin“ admin“ ,„wordpress“ oder vergleichbare Wörter wählen und dass bei der Installation ein sicheres Passwort gewählt wird, ist selbstverständlich. Nur zur Erinnerung: Ein sicheres Passwort ist folgendermaßen aufgebaut: Es enthält Sonderzeichen, Großbuchstaben, Kleinbuchstaben sowie Ziffern und hat acht oder mehr Zeichen. Und: Jede Webseite sollte ein individuelles Passwort haben.

 

2) Anmeldung im Backend beschränken, sichere Passwörter erzwingen:

Wer nach der sicheren Installation noch darauf achtet, dass die Anzahl der Anmeldeversuche beschränkt wird, macht es Angreifern nahezu unmöglich mit einer Brute-Force-Attacke in den Administrationsbereich einzudringen. Die Plugins Limit Login Attempts Reloaded oder auch Limit Attempts by BestWebSoft sind gute Beispiele für ein solche Sicherheitsplugins.

Man kann bei diesen Plugins im Adminbereich definieren wie viele Anmeldeversuche gestattet sind, und IPs, die sich mehrmals falsch angemeldet haben, aussperren.

3) Bei der Anmeldung neuer User:

WordPress macht es neuen Nutzern leicht, sichere Passwörter zu generieren, sie werden mit grüner Farbe gekennzeichnet und können vom System selbst (durch den Klick auf einen Button) nach einem Zufallsprinzip erzeugt werden.

Force Strong Passwords unterstützt diese Funktion und zwingt neue User bei der Vergabe eines neuen Passwortes, dass dieses Passwort sicher ist. Dies kann praktisch sein, wenn man eine Seite betreibt, auf die mehrere Personen Zugriff haben. Das Plugin verhindert, dass sich User - ohne dass der Administrator es bemerkt - unsichere Passwörter beschaffen und somit die gesamte Webseite unwissentlich gefährden.

4) Plugins richtig nutzen:

Plugins sind natürlich ein beliebtes Einfallstor für Angreifer. Manche Plugins werden millionenfach verwendet und machen es Eindringlingen leicht über Schwachstellen im Code einzudringen. Je mehr Plugins man verwendet, desto größer wird natürlich die Gefahr. Plugins aus unklaren Quellen (Also nicht aus dem offiziellen WordPress-Plugin-Repository) sollte man eher vermeiden, denn die Entwickler dieser Plugins können schadenden oder fehlerhaften Code viel leichter einschmuggeln als Entwickler, die im Repository namentlich bekannt sind.

5) Themes:

Ähnlich wie Plugins sind auch Themes von Drittherstellern und bieten somit Angreifern potentielle Einfallstore. Bei Themes hat man allerdings einen grossen Vorteil: Man benötigt maximal zwei (bzw. drei) von ihnen: Das aktuelle Fallbacktheme, das genutzt wird, wenn das gewünschte Theme nicht mehr funktioniert und das Theme, das man gerade anwendet. Falls der Code im aktuellen Theme geändert wurde, sollte man auch ein Child-Theme einsetzen um Datenverluste bei Updates des Themes zu vermeiden. Alle anderen Themes sollten auch ausserhalb der WordPress-Installation archiviert werden

Themes sollten - genau wie Plugins - nur aus zuverlässigen Quellen bezogen werden: Entweder sie stammen aus dem WordPress Theme Repository, oder von einer anerkannten Quelle wie TemplateMonster. Wer sein  WordPress-Theme selbst codet  trägt natürlich auch selbst die Verantwortung für sauberen Code.

6) Aktualität:

Alle die Maßnahmen, die bis jetzt besprochen wurden, nutzen natürlich nichts oder nur wenig, wenn die WordPress-Installation nicht regelmäßig auf den aktuellen Stand gebracht wird. Veraltete Plugins und veraltete Themes sind wie schadhafte Türen und Fenster eines Hauses. Eindringlinge nutzen Sie, um in das Innere zu gelangen.

WordPress selbst, Plugins und Themes sollten daher regelmäßig aktualisiert werden. Dies kann mitunter recht anstrengend sein. Wer mehrere WordPress-Seiten betreibt und auf jeder Installation 20 oder 30 verschiedene Plugins nutzt, ist recht beschäftigt. In dem Fall bieten sich Plugins an, die das Updaten selbst erledigen oder es gibt auch Plugins mit denen man alle WordPress-Installationen in einem Wartungscenter kontrollieren kann. Für welche Lösung Sie sich entscheiden, ist letzten Endes egal, wichtig ist, dass sie regelmäßig updaten.

7) Nützliche Plugins zur Erhöhung der Sicherheit:

Im Grunde wären die bis jetzt beschriebenen Ansätze eigentlich ausreichend. Wer es dennoch noch sicherer haben möchte (oder muss), kann auch noch weitere Plugins einsetzen, die zusätzliche Maßnahmen ergreifen.

Antivirus  oder Sucuri Security überprüfen ob Malcode in die Installation geschmuggelt wurde und lösen - falls die Plugins neuen, unautorisierten Code entdecken - einen Alarm aus.

Wordfence Security ist mit derzeit 22 Millionen Downloads das am häufigsten heruntergeladene WordPress-Sicherheitsplugin und ermöglicht eine Reihe von kombinierten Sicherheitsmaßnahmen.

8) Das Online-Editieren von Plugins und Themes deaktivieren

Mit dem Online-Editor lassen sich WordPress Plugins und Themes direkt aus dem Administrationsbereich editieren. diese Funktion ist mehr als unsinnig. Entwickler werden ohnehin über FTP auf den Server zugreifen und alle anderen werden nicht editieren. Schalten Sie diese Möglichkeit daher ab!

Ihr müsst dazu lediglich mit einem beliebigen FTP-Programm die Datei wp-config.php folgendermaßen bearbeiten:

  • folgende Zeile zusätzlich eingeben: define( 'DISALLOW_FILE_EDIT', true );
  • sichern

Das Editieren über den Adminbereich ist nicht mehr möglich.

9) Die wp-config.php Datei verschieben

WordPress findet diese Datei auch, wenn ihr ein Verzeichnis über WordPress liegt. Legt die Datei daher eine Ebene höher an, und verseht sie mit den Rechten 600. Wie es geht, seht ihr im Bild.

10) Backups nicht vergessen!

Und last but not least: Backups! Backups eurer Webseite sollt ihr regelmäßig machen, denn es kann immer sein, dass ein wesentlicher Teil Ihrer Installation verloren geht. So könnt ihr zum Beispiel versehentlich eine wichtige Datei, einen wertvollen Codeschnipsel  oder ein wichtiges Bild löschen. Oder Hacker können – trotz aller Sicherheitsvorkehrungen – in eure Installation eindringen. Mit einem Backup könnt ihr immer auf eine ältere Version eurer Webseite zurückgreifen und so wertvolle Inhalte sehr einfach rekonstruieren.

Aber Backups sind nicht nur in diesem Fall wichtig. Backups sind auch dann eure Lebensversicherung wenn ein Mal ein Update schief ging und ihr die Seite schnell und effizient rekonstruieren wollt.

Das Plugin „Updraft Plus“ bietet euch z. B. die Möglichkeit in regelmäßigen Intervallen zwischen 4 Stunden und vier Wochen Backups der Installation und der Datenbank zu machen. Speichern könnt ihr diese Backups auf Ihrem eigenen Webspace oder auf einem externen Speicher wie z. B. in eurer Dropbox. Gerade diese Funktion ist sehr empfehlenswert, denn, selbst im schlimmsten aller anzunehmenden Fälle, wenn der Server, auf dem eure Seite liegt, physisch zerstört wurde und euer Hoster keine Backups hat, könnt ihr immer noch auf die externen Daten zurückgreifen.