WordPress Security Basics – das Sicherheits 1×1

WordPress Security Basics – das Sicherheits 1×1

WordPress ist eines der beliebtesten Content-Management-Systemen. Damit einher geht aber, dass es auch ein beliebtes Angriffsziel für Hacker ist.Ist einmal eine Sicherheitslücke gefunden, können so gleich Tausende Webseiten angegriffen werden. Doch mit ein paar einfachen Grundlagen können automatisierte Angriffe – die Tausende Seiten gleichzeitig versuchen anzugreifen – erschwert oder gar verhindert werden. Hier sind die wichtigsten Maßnahmen:

Updates, Updates, Updates

Wie auch bei allen anderen IT-Systemen gilt, dass die Software am aktuellen Stand gehalten werden sollte. Veraltete WordPress-Versionen, Plugins oder Themes können bereits bekanntgewordene Sicherheitslücken enthalten, die gerne automatisiert angegriffen werden. Hält man sein System auf aktuellem Stand, sind meistens alle bekannten Sicherheitslücken rasch geschlossen.

Zu beachten gilt, dass vor allem Premium-Plugins oder Premium-Themes oftmals nicht die Updates über das integrierte WordPress-Update-System ausspielen. Hier ist besonders darauf zu achten, selbst aktiv zu sein.

Werden die verwendeten Plugins überhaupt noch betreut?

Mit den Updates geht auch einher: Einige Plugins werden vom Entwickler nicht mehr gewartet und aktualisiert. Es sollte regelmäßig überprüft werden, ob die Erweiterungen überhaupt noch gepflegt werden – also Sicherheitslücken aktiv geschlossen werden. Ein grober Anhaltspunkt gibt das Plugin-Verzeichnis von WordPress. Für jedes Plugin ist hier das Datum des letzten Updates angeführt. Liegt dieses zu weit in der Vergangenheit, sollte über Alternativen nachgedacht werden.

Sichere Passwörter

Wie auch bei Updates – sichere Passwörter sind essentiell. Niemals Passwörter für mehrere Seiten wiederverwenden. Besser ist es, für jede Seite ein eigenes Passwort zu wählen, das lange genug ist, Zahlen, Buchstaben und Sonderzeichen enthält und nicht leicht erratet werden kann. Damit man sich diese komplexen Passwörter nicht merken muss, bietet sich ein Passwort-Manager an. Die No-Gos bei der Passwort-Verwaltung sind: Passwörter weitergeben, unverschlüsselt abspeichern (Excel-Listen, Textdateien) – oder ganz klassisch: als Post-It am Schreibtisch im Büro.

„Gecrackten“ Plugins oder Themes

Premium-Plugins und Themes, also kostenpflichtige Erweiterungen, geistern immer wieder im Netz als „nulled“, „free“ oder „unlocked“ Version auf dubiosen Seiten auf. Diese enthalten oft Malware und Backdoors, und schleusen somit mutwillig Sicherheitslücken ein. Erweiterungen sollten immer von den Originalquellen bezogen werden.

Benutzermanagement

Die meisten Sicherheitslücken benötigten zumindest einen WordPress-Nutzer. Daher gilt: WordPress-Benutzer nur so viele Rechte geben wie unbedingt notwendig. Ein Autor für die eigene Webseite braucht keine Administratoren-Berechtigung. Ebenso sollte die Möglichkeit der Benutzerregistrierung deaktiviert werden, wenn sie nicht tatsächlich gebraucht wird.

Um andere Benutzer zu sicheren Passwörtern zu „zwingen“, gibt es die Möglichkeit, über Erweiterungen Passwort-Regeln zu definieren (Mindestlänge, Komplexität, etc.). Eine andere Möglichkeit ist die sogenannte 2-factor authentication (2FA). Nach dem Login muss der Benutzer noch einen zeitabhängigen Code eingeben, der beispielsweise am Handy angezeigt wird. Somit ist ein Passwort-Klau grundsätzlich nutzlos, da weiters das entsprechende Mobilgerät in Besitz genommen werden muss.

Standardname des Administrators

Nicht „admin“ als Benutzernamen verwenden. Dies hilft zwar nur bei relativ einfachen Angriffen, diese laufen aber sehr automatisiert ab. Viele Angriffsskripte versuchen, über den Standard-Benutzer „admin“ Zugriff zur Seite zu erlangen. Gibt es keinen Benutzer mit dem Namen „admin“ ist man somit schon etwas weiter auf der sicheren Seite.

Sichere Serverinfrastruktur

Ein weiterer kritischer Faktor in Bezug auf Sicherheit ist der Server: Wichtig ist, dass der Benutzer, der Zugriff auf die Serverdaten hat, wirklich nur auf die Daten der entsprechenden Webseite Zugriff hat. Es gibt verschiedene Hosting-Anbieter, bei denen mit einem Webhosting-Paket mehrere Websites (Domains) betrieben werden können. Jede davon sollte keinen Lese-/Schreibzugriff auf die jeweils anderen Domains haben. Wird eine der Seiten Opfer eines Angriffes, hätte der Angreifer automatisch Zugang zu allen anderen Seiten.

Wichtig ist ebenso: Gibt es ausreichende Access-Logs? Werden regelmäßig Backups automatisiert erstellt, die rasch selbst zurückgespielt werden können? Gibt es ein SSL/TLS Zertifikat, um die eigene Website über HTTPS anbieten zu können?

Wie erfolgt der Upload der Serverdaten? Dieser sollte unbedingt verschlüsselt sein – FTP scheidet somit aus. Die verschlüsselten Varianten sind demnach beispielsweise SFTP, FTPS oder SSH. Die Zugangsdaten zu diesen Daten sollten selbstverständlich nicht ident mit den WordPress-Nutzern sein.

Weiters sollte am Server die laufende Software am aktuellsten Stand sein (Betriebssystem, Webserver, PHP, MySQL, etc.)

MySQL-Zugriff nur durch den localhost

Auf die MySQL-Datenbank sollte nur der Server selbst Zugriff haben. Meistens ist auf den Servern voreingestellt, dass auch externe IP-Adressen Zugriff auf den MySQL-Server haben. In den meisten Fällen ist dies aber überhaupt nicht notwendig – und stellt somit ein Sicherheitsrisiko dar. Werden die MySQL-Zugangsdaten geklaut, hat ein Angreifer somit automatisch die Möglichkeit, die Daten in der Datenbank zu klauen. Kann sich nur der localhost – also der Server selbst – verbinden, ist dies gar nicht direkt möglich. Wie auch bei den SFTP/FTPS/SSH-Zugängen gilt: Die Datenbankzugänge sollten wieder ein einmaliges, sicheres Passwort sein.

Brute-Force-Angriffen entgegenwirken

Es wird immer (durch automatische Angriffsskripte) versucht, Zugang zur Seite zu erlangen. Dabei werden blind Abertausende Passwörter versucht – bis eines erfolgreich ist. Grundsätzlich verhindern komplexe Passwörter den Erfolg solcher Angriffe. Manche empfehlen hier, die Login-URL vom Standard zu ändern. Dies verhindert allerdings nur sehr einfache Angriffe – Security through obscurity (Sicherheit durch Unklarheit) ist eine tendenziell schlechte „Sicherheit“.

Sinnvolle Möglichkeiten gegen Brute-Force-Attacken sind, dass IP-Adresse, die zu viele ungültige Login-Versuche durchführen, für einige Zeit gesperrt werden. Ebenso ist es möglich, per .htaccess einen Verzeichnisschutz für den Administrationsbereich vorzusehen. Der Nachteil ist hier allerdings, dass ein weiteres Passwort eingegeben werden muss. Ebenso gibt es die Möglichkeit, Logins nur für bestimmte IP-Adressen zu erlauben – ebenso per .htaccess.

Weitere Maßnahmen

Werden die angeführten Punkte bedacht, ist bereits ein erster Schritt getan. Natürlich reichen diese nicht aus, um gegen alle Angriffe gewappnet zu sein – es handelt sich lediglich um die Grundlagen. Um gezielte Angriffe gegen die eigene Webseite zu verhindern, müssen selbstverständlich individuelle Sicherheitskonzepte ausgearbeitet werden, um mögliche Angriffswege zu verhindern.

Keine Neuigkeiten mehr verpassen? Melden Sie sich hier für unseren Newsletter an!

Über den Autor:
Ing. Philipp Doblhofer
Ing. Philipp Doblhofer
Head of Development
Ing. Philipp Doblhofer auf LinkedInIng. Philipp Doblhofer auf XINGIng. Philipp Doblhofer eine E-Mail senden
Die Leidenschaft an Software- und Webentwicklung ist bei Philipp seit über 10 Jahren ungebrochen. Bereits während dem Studium an der TU Wien gründete er ein Einzelunternehmen, welches individuelle Softwareentwicklung anbot. Aus einer langjährigen geschäftlichen Partnerschaft hat sich daraus schlussendlich die Agentur codeaware GmbH entwickelt.

Weitere Meldungen

Alle Blog-Artikel