Grundlegende Website-Sicherheit auf Basis WordPress
ein Beitrag von Julia Liebknecht
Vorwort
Dieser Beitrag richtet sich an Laien und angehende Profis. Keinesfalls handelt es sich um eine umfassende Einweisung ins Thema Website-Sicherheit. Stattdessen soll es um ganz grundsätzliche Sicherheitsmaßnahmen gehen, die eine einfache Website vor häufigen Bedrohungen schützen können.
Bei den Ausführungen müssen zwei Dinge stets im Hinterkopf behalten werden:
1. Wenn ein Hacker eine Website wirklich hacken will (und die nötigen Fähigkeiten besitzt), ist es nahezu unmöglich, das zu verhindern. Die Frage ist lediglich, ob der Aufwand die mögliche „Beute“ rechtfertigt. Dieses Verhältnis möchte dieser Beitrag zugunsten der Lesenden verschieben.
2. Mit Punkt eins im Bewusstsein sollte bedacht werden, dass die im Folgenden genannten Tipps und Hinweise für eine Shopseite oder eine Website mit sensiblen Daten nicht ausreichen.
Kurze Begriffserklärung: Mit Websites sind in diesem Beitrag die ganze Webseite mit allen einzelnen Seiten und Beiträgen/ Posts gemeint, während mit Webseiten einzelne Seiten gemeint sind.
Das Problem
In diesem Beitrag geht es um WordPress-Websites. WordPress ermöglicht es schnell und einfach Websites zu erstellen und mithilfe von Plugins Funktionen der Website-Installation zu erweitern. Themes erfüllen eine ähnliche Funktion, allerdings kann eine Website immer nur ein Theme aktiv nutzen, während der Anzahl der Plugins (theoretisch) kaum Grenzen gesetzt sind.
Die Möglichkeiten, die WordPress bietet, führten dazu, dass es das beliebteste Content-Management-System (CMS) auf dem Markt wurde. Schnell, zuverlässig und nahezu grenzenlos individualisierbar.
Doch genau in diesem Vorteil liegt auch ein großes Problem. Wie bei z.B. Windows, das aufgrund seiner Verbreitung viel mehr Angriffen ausgesetzt ist, als etwa Linux, lohnt es sich für „böse Akteure“, Schadsoftware zu erstellen. Denn die Wahrscheinlichkeit, dass ihnen ein Opfer ins Netz geht, ist einfach größer.
Bei WordPress kommt noch hinzu, dass die extrem hohe Anzahl an Plugins die Gefahr erhöht, dass auch mal „schlechte“ Software (ob absichtlich oder unabsichtlich) dabei ist.
Als wäre das allein nicht schon problematisch genug, sind Websites nichts Statisches. Ebenso wie WordPress und Plugins nicht statisch sind, ebenso Servertechnologie und jegliche Software.
Ebenso wie Skript- und Programmiersprachen und Coding jeglicher Art permanent weiterentwickelt werden, werden z.B. Plugins und Themes weiterentwickelt. Zum einen, um sich an die Veränderungen bei der Programmierung und beim Coding anzupassen, zum anderen aber auch, um neue (teils durch die Weiterentwicklungen überhaupt erst möglich gemachten) Funktionen einzuführen.
Aus diesen Fakten ergeben sich also gleich mehrere Probleme:
1. WordPress Websites sind ein beliebtes Ziel für Hacker.
2. Aufgrund der Vielfalt an Funktionen (von WordPress selbst, aber insbesondere von Plugins und Themes, sowie Custom Codes, die man selbst hinzugefügt hat) gibt es unzählige Möglichkeiten für Angreifer, mögliche Sicherheitslücken ausfindig zu machen und auszunutzen.
3. Da sich Alles ständig weiterentwickelt, gibt es auch immer wieder neue Sicherheitslücken. Manche werden erst nach einiger Zeit entdeckt, andere recht schnell. Dabei gibt es aber auch ethische Hacker, also Hacker, die einem nichts Böses wollen, sondern versuchen, z.B. Schwachstellen zu finden, damit diese „gestopft“ werden können.
Bevor es um konkrete Sicherheitsmaßnahmen geht, kann man aus dem bisher Erwähnten schon mal drei extrem wichtige Fakten für die eigene Website schlussfolgern:
1. Themes und Plugins sollten immer aus einer vertrauenswürdigen Quelle stammen. Auch wenn man sie von WordPress selbst herunterlädt, sollte man immer die Rezensionen lesen und z.B. kein Plugin wählen, das nur sehr Wenige bisher heruntergeladen haben bzw. nutzen. Ebenso kann man anhand von Supportfragen erkennen, ob der / die Entwickler bemüht sind, individuelle Probleme zu lösen.
2. Updates, Updates, Updates! Ein Theme oder Plugin, das nicht regelmäßig vom Hersteller/ Programmierer aktualisiert wird, ist unsicher. Gleichzeitig bringen Hersteller-Updates überhaupt nichts, wenn der Nutzer die Website nicht regelmäßig aktualisiert. Einmal pro Woche ist super. Alle zwei Wochen, okay. Einmal im Monat zu wenig, aber falls absolut nicht vermeidbar, das absolute Minimum!
3. Wenn man Custom Code verwendet, dann sollte man dies nur tun, wenn man weiß, was man tut, und wenn man sich auf dem Laufenden über Sicherheitslücken hält (und die Custom Codes im Bedarfsfall kurzfristig selbstständig updaten kann). Die betrifft insbesondere PHP und Javascript.
Die Lösung / was zu tun ist
Trotz der „Schwächen“ von WordPress, ist es möglich, mit relativ einfachen Mitteln einen grundsätzlichen Basisschutz zu erreichen. In diesem Beitrag wird sich dabei auf einfache Schritte beschränkt, die keine umfassenden (technischen) Kenntnisse erfordern.
Unterschieden werden die Maßnahmen in
a) Hoster
b) WordPress
c) Theme + Plugin(s)
Hoster
Allgemein: Die Wahl des Hosters ist wichtiger, als es auf den ersten Blick den Anschein hat. Es wird nicht überall das Gleiche geboten. Der Preis allein ist auch nicht unbedingt ein Kriterium, um zu beurteilen, was man für’s Geld bekommt. Teurer ist nicht automatisch besser. Aber richtig billig ist niemals gut.
Leider ist es als Laie nahezu unmöglich zu beurteilen, welcher Hoster für einen am besten geeignet ist. Entweder fragt man hier einen Profi oder man liest sich in die Thematik ein. Keinesfalls sollte man (nur) auf (oft gesponserte) Blog-Posts mit Empfehlungen vertrauen. Stattdessen sollte man die jeweiligen Angebote (also die detaillierte Auflistung der gebotenen Leistungen auf den Websites der Hoster selbst) vergleichen und auch schauen, was man tatsächlich benötigt. Ebenfalls sollte man nicht nur den Eingangspreis betrachten. Viele Hoster bieten für das erste Jahr einen günstigeren Preis an und danach geht der Preis, teils drastisch, hoch.
Empfehlenswerte Hoster im deutschsprachigen Bereich sind Webgo, All-Inkl und Mittwald. (Links finden sich unter dem Blog-Post.)
Shared Hosting:
Es gibt bei den Hostern große Unterschiede in den angebotenen Leistungen und der Sicherheit.
Shared Hosting (bei dem sich mehrere Nutzer einen Server teilen) ist weit verbreitet, jedoch kann bei billigen Anbietern der Schutz zwischen den Accounts unzureichend sein, was zu Sicherheitsrisiken führt. Man sollte daher einen Hoster wählen, der gute Sicherheitsmaßnahmen bietet, und die Accounts innerhalb des Shared Hostings gut abschirmt/ schützt. Im Zweifelsfall hilft ein Profi bei der Auswahl des Hosters.
PHP Version:
Ebenfalls wichtig ist, welche PHP-Version angeboten wird und welche PHP-Version voreingestellt ist. Egal was angeboten wird, sollte man immer vor oder direkt nach der WordPress-Installation im Dashboard des Hosters schauen, welche PHP-Version aktiv ist und diese ggf. updaten. Die derzeit (Stand Juli 2024) aktuelle PHP (Haupt)Version ist 8.3. Tatsächlich ist die aktuellste öffentliche Version 8.3.9, allerdings bieten die Mehrheit der Hoster nur das Updaten ganzer Versionen (bezogen auf die Zahl nach dem Punkt) an.
Grundsätzlich sollte man immer die neueste, verfügbare Version verwenden. Das vorausgeschickt gibt es jedoch ein qualifiziertes Aber und um das zu erklären, muss ein kleines bisschen ausgeholt werden:
PHP ist eine Skriptsprache (man könnte auch im weitesten Sinne Programmiersprache sagen) auf der viele Elemente von Websites beruhen. Wie auch andere Skript- und Programmiersprachen (wie z.B. HTML, CSS und Javascript) werden die Sprachen konstant weiterentwickelt. Das ist, wie bereits weiter oben erwähnt, für (neue) Funktionen, Geschwindigkeit, aber auch für die Sicherheit sehr wichtig.
Da WordPress, Themes und Plugins (auch) PHP verwenden, kann es zu Kompatibilitätsproblemen kommen. Alter Code wird durch neuen ersetzt und es kommt irgendwann zu sog. „deprecations.“ Irgendwann funktionieren manche Dinge einfach nicht mehr, wenn die PHP Version und der Code von WordPress, Themes und Plugins nicht übereinstimmt.
Deshalb muss man bei PHP-Updates immer ein Backup erstellen, bevor man updatet und es ist sehr wichtig, die Website anschließend gründlich (visuell und funktionell) zu überprüfen.
Hier lohnt sich vor dem Updaten immer ein Blick in die Changelogs/ das Development von installierten Plugins und dem aktiven Theme. Da steht nämlich in der Regel, mit welcher PHP Version Kompatibilität bzw. Inkompatibilität besteht.
In diesem Zusammenhang sei Elementor erwähnt. Mit ca. 16 Millionen Installationen steht das beliebte Plugin vor dem Dilemma, mit möglichst vielen Kundenseiten kompatibel sein zu müssen. Da jedoch viele Website-Inhaber oft sehr schleppend sind mit ihren Updates, hinkt Elementor oft absichtlich ein kleines bisschen hinterher mit der Kompatibilität bzgl. neuerer PHP Versionen. Das wiederum bedeutet, dass man bei Elementor-Websites durchaus versuchen kann, auf die jeweils neueste PHP Version upzudaten. Das kann (!) auch gut gehen. Aber im Zweifelsfall fährt man sicherer mit der Vorjahresversion. Leider.
Vorarbeit beim Hoster
Nach diesem kleinen Exkurs, zurück zum eigentlichen Prozess: Noch bevor man WordPress installiert, ist es wichtig, sich beim Hoster zu informieren (die FAQ Seiten helfen da in der Regel weiter) wie man ein SSL-Zertifikat einrichtet. Das geht in der Regel ganz einfach mit ein oder zwei Klicks. Wenn man unsicher ist, was einige Einstellungen bedeuten, bitte vorher informieren! Auch hier helfen die Hoster-FAQ weiter oder YouTube.
Wenn man keinen Shop hat, reicht in der Regel (falls erhältlich) ein kostenloses ‚‚Let’s Encrypt”-Zertifikat aus. Dies sollte mittlerweile wirklich von jedem Hoster kostenlos zur Verfügung gestellt werden.
Kurze Erklärung: Das SSL Zertifikat sorgt dafür, dass die Kommunikation von und zur Website verschlüsselt ist. Ohne ein SSL Zertifikat ist alles ersichtlich und überhaupt nicht geschützt. Die Seite ist ein einfaches Ziel für ‚‚böse Akteure”.
Außerdem zeigen Browser eine Warnung bei HTTP-Seiten (die kein Zertifikat haben) an. Teilweise weigern sich die Browser sogar, die Seite zu öffnen, bis man selbst aktiv wird und ‚‚die Gefahr” ignoriert.
Eine sinnvolle Maßnahme, zusätzlich zum Zuweisen eines SSL Zertifikats, ist das Abrufen via HTTPS zu erzwingen. Bei den meisten (aber nicht allen) Hostern, geht das mit einem zusätzlichen Klick im Hoster Dashboard. Links zu den Anleitungen für All-Inkl und Mittwald sind unten aufgeführt.
Bei Hostern, die das Erzwingen nicht mit einem Klick ermöglichen, muss man leider in die .htaccess Datei und die wp-config entsprechende Anweisungen formulieren, die der aufgerufene Browser interpretieren kann. Dies sollte ein Laie grundsätzlich nicht tun, hier kann einiges schiefgehen.
Wenn man sich aber informiert hat und es sich zutraut, dann gilt:
Bitte den Inhalt der jeweiligen Datei vor jeglichen Änderungen in ein txt-Dokument o.ä. kopieren. So kann man alles wieder herstellen, falls etwas schief gelaufen ist. Die anschließenden Schritte unternimmt man idealerweise, nachdem im WordPress-Dashboard (siehe nächster Punkt) die Seite auf HTTPS umgestellt wurde.
1. die .htaccess Datei bearbeiten (Dazu bitte die folgenden Zeilen (ganz unten) einfügen):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
Bitte Speichern nicht vergessen.
In der wp-config (über der Zeile “That’s all, stop editing!”) fügt man dann bitte noch Folgendes ein:
define(‚FORCE_SSL_ADMIN‘, true);
Auch hier gilt wieder: Speichern bitte!
WordPress
1. Auf HTTPS umstellen
Wenn WordPress installiert wurde (oft mit ein oder zwei Klicks beim Hoster erledigt), kann man im WordPress-Dashboard loslegen. Dort geht man als Erstes zu ‚‚Einstellungen” und hier zu ‚‚Allgemein”.
Hier sieht man einmal die WordPress-Adresse und darunter die Seiten-Adresse. Falls da noch http:// vor der URL steht, sollte man das jetzt (vor allem anderen) ändern. Einfach das “http://“ durch “https://“ ersetzen und dann unten auf Speichern klicken.
Nicht erschrecken, in der Regel wird man dann ausgeloggt. Einfach wieder einloggen und nochmal schauen, ob nun alles ist, wie es sein soll. Steht in den allgemeinen Einstellungen nun ‚‚https://“, ist alles wie es sein soll.
2. Den Zugang schützen
Wenn Mehrere Zugang zu einer Website haben, ist die Website immer nur so sicher, wie die Person mit den ‚‚schwächsten” Zugangsdaten. Daher gilt:
- Es sollten so wenig Personen wie möglich Zugang zur Website haben
- Nur wer unbedingt Administratorrechte benötigt, sollte auch Administratorrechte bekommen. Es gilt, dass immer so wenig Nutzerrechte wie möglich vergeben werden sollten. Ein Autor (für Blog-Posts) muss z.B. keine Administratorrechte besitzen.
- Niemals sollten zwei Personen dasselbe Passwort verwenden
- Der Benutzername sollte nicht offen ersichtlich sein und nicht leicht erratbar sein. Der eigene Name, Admin, Benutzer123, usw. sind eine Katastrophe. Ebenso ist es ein häufiger und leider fataler Fehler einen Benutzernamen mehrfach zu verwenden. Das gilt übrigens nicht nur für Website-Sicherheit, sondern für jegliche (online) Konten. Ein akzeptabler Benutzername (den man sich aber trotzdem noch merken kann, falls man keinen (sicheren!) Password Manager verwendet, könnte z.B. sein: Der_mit_den_Gartenzwergen_tanzt
Das ist an sich kein extrem sicherer Benutzername, aber er ist deutlich besser als z.B. ‚‚Horst” oder ‚‚Lena” oder ‚‚Administrator”. - Das Passwort (wie bereits erwähnt) sollte einmalig sein. Die häufigsten verwendeten Passwörter in Deutschland sind (kein Witz!):
- passwort
- passwort1
- passwort123
- 123456789
- 11111
- hallo
- target123
- iloveyou123
- gwerty
- Schatz
- Sunshine
- passw0rd
- monkey
- admin
- passwort
Diese Passwörter (und einige zehntausend mehr) werden innerhalb von einem Sekundenbruchteil geknackt. Bei einem guten Passwort sind grundsätzlich vier Dinge zu beachten:
1. Länge:
Eine Länge von mindestens zehn, besser zwölf oder mehr Zeichen ist dringend zu empfehlen.
2. Heterogenität
Das Gegenteil von Heterogenität im Zusammenhang mit Passwörtern wäre zum Beispiel, nur Wörter oder nur Zahlen zu verwenden. Was man stattdessen sollte, ist Zahlen, Buchstaben (Groß- und klein) und Sonderzeichen zu verwenden.
3. Einmaligkeit
Einmaligkeit bezieht sich auf die einmalige Nutzung dieses Passwortes. Denn wenn ein Passwort einmal irgendwo geknackt wurde und die betreffende Person das Passwort mehrfach verwendet (im absolut schlimmsten Fall auch noch in Verbindung mit demselben Benutzername), ist die Wahrscheinlichkeit extrem hoch, dass diese online Zugänge ebenfalls geknackt werden.
4. Schutz
Mit Schutz ist gemeint, dass dieses Passwort nirgendwo zugänglich sein sollte. Ein mangelnder Schutz ist, wenn man, wie bereits erwähnt, ein Passwort mehrfach einsetzt. Aber es kann auch passieren, wenn man z. B. in seinem Browser das Passwort speichert und es hier ein Sicherheitsproblem gibt. Browser-Erweiterungen sind, wie auch Plugins in WordPress, immer ein potentielles Sicherheitsrisiko. Daher sollte man da auch sehr vorsichtig sein und auf das Speichern von Passwörtern im Browser generell verzichten. Diesbezüglich sollte man sich die Browser Einstellungen näher anschauen.
Ebenfalls wichtig: Man sollte sich Passwörter IMMER auch per Hand irgendwo notieren und Browser Caches regelmäßig löschen. In der Regel kann man z. B. einstellen, dass, wann immer man den Browser schließt, die Cache automatisch gelöscht wird. Hier mal ein Beispiel für ein sicheres Passwort: H7+z_9%r#Q@-?4
Nun ist also WordPress installiert, die URL ist auf https:// umgestellt, und es wurden ein sicherer Benutzername und ein sicheres Passwort vergeben.
Plugins
Backup-Plugin
Ein Backup-Plugin ist für die Sicherheit einer Website unerlässlich. Es schützt nicht direkt vor Angriffen, aber im Falle eines Hackerangriffs oder nach einem problematischen Update ist ein ‚‚sauberes“ Backup unbezahlbar.
Drei Dinge sind bei Backup-Plugins zu beachten:
1. Speicherort der Backups: Backups sollten niemals (nur) lokal auf dem FTP-Server oder der Installation selbst gespeichert werden. Dies verhindert den Zugriff durch Hacker und schützt bei Installationsbeschädigungen. Lokale Backups erhöhen außerdem die Größe der Installation erheblich, da jedes Backup auch frühere Backups umfassen kann. Stattdessen sollten Backups exportiert werden, zum Beispiel in einen sicheren Cloud-Dienst (idealerweise sollte es sich um eine verschlüsselte Übertragung handeln) oder regelmäßig auf einem lokalen Computer gespeichert werden. Ältere Backups können nach sechs Monaten gelöscht werden.
2. Inkrementale Backups: Alte Backups sollten automatisch überschrieben werden, um eine endlose Datenansammlung zu vermeiden.
3. Automatisierte Backups: Während Auto-Updates bei Plugins, Themes und WordPress selbst eine schlechte Idee sind, sieht es bei Backups anders aus. Backups sollten in regelmäßigen Intervallen automatisiert durchgeführt werden. Dies stellt sicher, dass man keine Backups vergisst und im Schadensfall vorbereitet ist.
Randbemerkung: Obwohl viele Hoster Backups anbieten, variieren die Intervalle und Speicherdauer stark. Man sollte daher nicht ausschließlich auf die Backups des Hosters vertrauen, sondern eigene Backups erstellen und speichern.
Mein bevorzugtes Backup Plugin ist die Premium Version von Updraft Plus. Aber auch die kostenlose Version ist empfehlenswert. All-in-one Migration ist ein weiteres gutes Plugin. Es gibt jedoch noch viele andere Gute. Allerdings ist es wichtig, sich immer mit (jedem) Plugin, welches man installiert, auseinanderzusetzen. Da hilft vor allem YouTube. Aber auch die Plugins selbst haben oft gute Anleitungen.
Security-Plugin
Ein Sicherheits-Plugin sollte auf jeder Website installiert sein. Meine Empfehlung ist NinjaFirewall (WP-Edition). Im Gegensatz zu vielen anderen Sicherheits-Plugins hat NinjaFirewall einzigartige Ansätze und integriert viele Sicherheitsmaßnahmen, die sonst zusätzliche Plugins erfordern würden. Warum nicht Wordfence (kostenlose Version)? Sicherheitsupdates werden mit einer 30-tägigen Verzögerung ausgeliefert, was ein erhebliches Sicherheitsrisiko darstellt.
Kurz zusammengefasst (und keinesfalls vollständig) sind die Vorteile von Ninja Firewall:
– Schützt die Loginseite durch Vorschaltung einer zusätzlichen Seite, die Zugangsdaten abfragt (bitte unterschiedliche Zugangsdaten verwenden)
– Bietet eine Firewall im Full WAF Mode
– Ermöglicht die Einstellung einer Content Security Policy (CSP)
Es gibt noch weitere, umfassende Sicherheitsmaßnahmen, die man einfach und schnell einstellen kann. Diese zu verstehen und richtig einzustellen erfordert jedoch Zeit und Lernbereitschaft. Dann kann man allerdings ein relativ hohen Schutz erreichen.
Noch einmal kurz zur Loginseite: Diese ist normalerweise in WordPress für jeden erreichbar. Daher wird häufig empfohlen, diese Seite zu schützen. In der Regel mit einem zusätzlichen Plugin. Doch diese Funktion ist (wenn aktiviert) bereit in NinjaFirewall integriert. Es wird eine Seite ‚‚vorgeschaltet” und erst wenn man die Zugangsdaten dort eingegeben hat, kommt man überhaupt auf die eigentliche Loginseite. Bitte niemals auf dieser Seite dieselben Zugangsdaten wie für die Website verwenden.
Hier ein Link zu einem Basis-Setup: NinjaFirewall Basis Setup
Code Snippet(s)
Warnung: Code Snippets sollten nur verwendet werden, wenn man den Code versteht und bei Bedarf anpassen kann. Code Snippets können ein Sicherheitsrisiko darstellen! Gerade, wenn man sie irgendwo im Netz gefunden hat und nicht weiß, welcher Entwickler zum Beispiel dahinter steckt.
Das vorausgeschickt, empfehle ich (für diejenigen die wissen was sie tun) das Plugin Code Snippets. Die kostenlose Version reicht. Ein Vorteil des Plugins ist, dass bei einer Fehlersuche, zum Beispiel nach einem Update, man die einzelnen Code-Snippets gezielt temporär deaktivieren kann zur Prüfung.
Ich empfehle folgenden Code Snippet wenn es um Website-Sicherheit geht:
/* Leitet Anfragen für das Autorenarchiv zur “About Page” um. ‚about‘ zu gewünschter Seite ändern, z.B. ‚kontakt‘ */
add_filter( ‚author_link‘, function ( $link ) {
return home_url( ‚kontakt‘ );
});
add_action( ‚template_redirect‘, function () {
if ( is_author() ) {
wp_redirect( home_url( ‚kontakt‘ ) );
exit;
}
});
Wichtig ist ebenfalls, die XML-RPC-Schnittstelle zu deaktivieren und Login-Versuche zu begrenzen. Ebenfalls sollte immer auch der Datei-Zugang limitiert werden. Diesbezüglich empfehle ich dringend, sich die NinjaFirewall Optionen genau anzuschauen und sich zu informieren, was für einen selbst Sinn macht. Das Verbergen der WordPress-Version kann auch Sinn machen und ist sogar in Elementor (Pro), falls verwendet, möglich. Letzteres erledigt man unter WordPress Dashboard -> Elementor -> Einstellungen -> Erweitert und dann der Punkt ganz unten.
Sollte man jedoch kein Elementor (Pro) verwenden, bieten sich die folgenden Code Snippets an:
// Entfernt die WordPress-Version aus dem HTML-Code, um Sicherheitsinformationen zu verbergen
remove_action(‚wp_head‘, ‚wp_generator‘);
Zusammenfassung und abschließende Tipps
Grundlegende Sicherheitsmaßnahmen für eine Website:
- 1. NinjaFirewall (gut eingestellt)
- 2. Nicht erratbarer und geschützter Benutzername
- 3. Nicht erratbares und langes Passwort
- 4. Schutz der Loginseite (mit NinjaFirewall)
- 5. Regelmäßige Updates (Plugins, Theme, PHP-Version)
- 6. Niemals FTP, sondern SFTP verwenden
- 7. Regelmäßige Backups (extern sichern)
- 8. Regelmäßige Security Checks
Security Checks
Klein:
- Überprüfung des Security Logs von NinjaFirewall
- 404 Monitor bei Rank Math (falls installiert) -> Da sieht man häufig, wenn jemand versucht hat auf bestimmte Dateien zuzugreifen. Denn nicht alles taucht unbedingt im Security Log auf.
- Zusätzliche User im Dashboard?
Groß:
- Alles vom kleinen Security Check
- (Online) Virenscanner verwenden
- In der WordPress Health schauen, ob siech die Größe der Installation erhöht hat Google-Suche der Website. Wenn etwas merkwürdig aussieht (kyrillische oder z.B. chinesische Schriftzeichen) wurde man gehackt
- Überprüfung von Security Headern/CSP (falls vorhanden)
- Durchsicht von Plugins, Themes und Custom Code (wurde etwas hinzugefügt oder verändert)
- Security-/ Vulnerability reports (z.B. von Wordfence auf deren Website oder auf Github) anschauen. Dabei gilt: Bitte nicht immer nur nach installierten Plugins suchen, sondern auch nach ähnlichen Plugins. Und dann immer genau schauen, was die Vulnerability ist. Grund: Wenn man z.B. ein seltenes Plugin hat, dass aber nach dem selben Muster arbeitet (mit ähnlichen oder teilweise gleichen Codes), kann es sein, dass das Plugin eine Sicherheitslücke hat, aber diese noch nicht (von den ‚‚Guten“) entdeckt wurde. Dann kann man sich entweder den Security Patch anschauen und versuchen ihn temporär selbst zu implementieren oder man wechselt (falls möglich) das Plugin.
Was man generell tun sollte, ist sich bei Updates die Changelogs anzuschauen, um zu sehen, was geändert wurde. Das ist insbesondere bei Security-Updates der Fall.
Hinweis: Es wurde schon am Rande erwähnt, aber es ist wirklich wichtig:
Bitte niemals auto-updates aktivieren, da dies zu unerwarteten Problemen führen kann. Wie bereits mehrfach erwähnt, sind dies lediglich grundlegende Empfehlungen. Auf Schutzmaßnahmen z.B. in der .htaccess Datei wird absichtlich nicht eingegangen, da man dort wirklich nur tätig werden sollte, wenn man weiß was man tut.
Für weiterführende Informationen und detaillierte Sicherheitsanleitungen:
https://infosec.mozilla.org/guidelines/web_security
https://sucuri.net/guides/website-security/
https://blog.nintechnet.com/securing-wordpress-with-a-web-application-firewall-ninjafirewall/
https://magos-securitas.com/downloads/
https://all-inkl.com/wichtig/anleitungen/providerwechsel/einrichtung/ssl/einbindung-selbstsigniertes-ssl-zertifikat_397.html
https://www.mittwald.de/faq/domains-ssl/ssl/ssl-verschluesselung-erzwingen
https://www.webgo.de/
https://all-inkl.com/
https://www.mittwald.de/
Anmerkung der Autorin: Vielen Dank an Stephan Koenigk für die freundliche Unterstützung.