Malware in WordPress – 10 Tipps für die Bereinigung und zur Prävention

gravatar
 · 
Samstag, 29. Oktober 2022
 · 
9 min read
Featured Image

Stell dir vor, du hast seit Monaten oder länger nicht mehr gebloggt. Und dann veröffentlichst du einen Blogpost über deinen neuen Job. Teilst den Link auf all deinen sozialen Netzwerken, freust dich, endlich wieder Mal was veröffentlicht zu haben und dann – schreiben dir Leser, dass dein Blog auf unseriöse Websites mit Phising-Absichten redirected.

Genau das ist mir vor ca. einem Jahr passiert. Und als Tüpfchen auf dem i: mein neuer Arbeitgeber hat mit Freude meinen Blogpost weitergeteilt… und als Firma mit einem hohen Sicherheitsanspruch den Malware-verseuchten Blog ihres neuen Designers gleich an ihre Kunden und Fans weitergeteilt. Grossartig, hübsch hier im Fettnäpfchen.

Unwissen schützt vor Strafe nicht

Als ich über das komische Verhalten meines Blogs informiert wurde, ärgerte ich mich natürlich. Blindlings stieg ich nachts in die Untiefen des WordPress-Maschinenraums hinunter und suchte verzweifelt nach undichten Stellen und aussergewöhnlichem Verhalten. Und fand: erst mal nichts. Gute Malware versteckt sich und gaukelt dem Admin auch vor, dass alles in Ordnung ist: eingeloggt konnte ich die Redirects auf unseriöse Sites auf meinem Blog nicht reproduzieren.

Ich tat, was ich ins solchen Fällen immer immer tue: ich wandte mich an meine Twitter-Community, ob mir jemand Tipps habe, wie ich vorgehen soll. Und erhielt viele nützliche Hinweise.

Mit Scanner Malware entdecken

Schnell kamen via Twitter Tipps für sogenannte Malware-Scanner: als Plugin installiert untersucht ein solcher Scanner die WordPress-Installation auf klassische Ungereimtheiten von Malware oder auch grundsätzlich Sicherheitslücken.

Also installierte ich einen ersten Malware-Scanner als Plugin und bekam auch schon erste Resultate. Da ich mir zwangsläufig über die Jahre zumindest ein wackeliges Halbwissen rund um die WordPress-Technik angeeignet habe, versuchte ich hier mal eine Footer.php-Datei zu bereinigen und da mal in der .htaccess-Datei Einträge zu löschen. Mit dem grossartigen Ergebnis, dass ich mich nach stundenlangem trüben Fischen schlussendlich selbst aussperrte und der Blog down war. Well done, gute Nacht erst mal.

Obwohl ich behauptem kann, als Designer ein recht gutes web-technisches Verständnis zu haben, war ich kurz davor, meine ganze WordPress-Installation platt zu machen und zu Squarespace oder Ghost zu wechseln.
Doch ich erlag der sunk cost fallacy (Versunkene-Kosten-Falle): zuviel Geld (Theme) und Zeit hatte ich schon in dieses WordPress-Ding gesteckt. Da ich die besten Follower auf Twitter habe, haben sich zwei grossartige Menschen mir anerboten zu helfen bei meinem festgefahrenen Problem. Vielen Dank an dieser Stelle schon Mal Bastian und Pascal ♥.

Meine offenen Scheunentore

Durch den Austausch mit meinen lieben Helfern wurde mir immer mehr klar, warum es überhaupt so weit gekommen ist, dass meine WP-Installation Malware eingefangen hat. Hier die Gründe im meinem Fall:

  1. Kompromittierte Login-Daten: Mein Admin-Zugang war mit einem kompromittierter E-Mail/Passwort-Kombi «geschützt» (lacht nicht!). Sprich: diese Login-Passwort-Kombination habe ich auf einer anderen Website genutzt, diese wurde gehackt und somit meine E-Mail/Passwort-Kombi frei im Netz verfügbar. Ich änderte also schleunigst mein Passwort auf ein Sicheres (siehe Blogpost Der Schlüssel zur sicheren Passwort-Strategie). Um die Sicherheit zusätzlich zu erhöhen, könnte man noch ein 2FA-Plugin installieren, was ich aber noch nicht gemacht habe. Zusatztipp: erstelle fürs reine Bloggen einen separaten Account und gebe ihm nur Redakteur-Rechte. Dann wirst du nicht immer von der Technik abelenkt, wenn du nur Schreiben willst.
  2. Viele Sicherheitslücken: ich hatte veraltete und deaktivierte Plugins installiert, gewisse Rechte meiner WordPress-Installation auf dem Server waren zu freizügig und andere Dinge reklamierte das am Ende genutzte Sicherheits-Check-Plugin Security-Ninja.

Zustand nach Bereinigung

Nach den wiederholten Tests mit dem Security Ninja Plugin und dem fixen der Probleme, landete ich bei einem Score von 86%. Im Vergleich: zum Start war ich bei ca. 50%.

Die verbliebenen Failed bei mir:

Nun, die ersten beiden Warnungen weisen auf mein Plugin WP Show Posts hin, welches schon lange nicht mehr aktualisiert und nicht mit der aktuellen WP-Version getestet wurde. Ich fand gerade keine bessere Alternative. Wer hier Tipps hat, gerne her damit.

Die anderen Fails:

  • wp-config.php soll nicht am Standardspeicherort sein. Nun, ich habe meine WP-Installation via eines App-Services des Hosters gemanagt und dieser ist darauf angewiesen, dass die Config sich da befindet. Wohl nicht so tragisch.
  • WP-Installation ist dieselbe wie die Adresse: denke auch dass dies eher eine extremere Massnahme wäre, dies zu ändern und habe da kein Bock, da sonst künftige autom. Updates fehlschlagen könnten via App-Services des Hosters.
  • MySQL-Konto hat zuviele Berechtigungen: hier empfiehlt das Plugin, die Berechtigungen einzuschränken für das MySQL-Konto. Allerdings könne man dann nicht mehr einfach Plugins und WP aktualisieren. Also irgendwie kontraproduktiv und für mich wieder ein Tick zu streng.
  • Content-Security-Policy: da geht es um eine Möglichkeit, via .htaccess-Datei das Ausführen von Scripts / Dateien weiter einzuschränken. Mit dem Nachteil, dass dann ggf. Inline-JS-Code nicht mehr ausgeführt werden könne etc. Da habe ich kein Bock drauf, da ich ein Theme nutze, dass viele solche JS-Funktionen enthält und meine Website sonst nicht mehr richtig funktionieren würde.

So machst du dein WordPress sicher

Profis reden von «härten» wenn es um das Abriegeln von Software geht. Wenn du künftig sorgenfreier bloggen willst, empfehle ich dir deine WordPress-Installation soweit abzudichten, dass dir nicht das Gleiche wie mir passiert.

Es gibt unendlich viele Möglichkeiten und «Härtegrade» beim Dichtmachen einer WP-Instanz. Hier meine Top-10 der Sicherheitstipps, welche ich zusammen mit technisch versierteren WP- und Softwareprofis zusammengestellt habe:

  1. Mach die Eingangstüre (Login) dicht:
    1. Nutze unbedingt ein sicheres einmaliges Passwort mit hoher Entität für dein Admin-Login. Tipps dazu findest du in meinem Artikel zur sicheren Passwortstrategie. Tipp: nutze unbedingt einen Passwort-Manager wie z.B. 1Password für deine Passwörter.
    2. Benutze wenn möglich nicht «Admin» als Benutzername für den Admin-Account.
    3. «Verschiebe» das Standard-Login-Verzeichnis wp-admin zu einem selbst definierten wie z.B. meinverzeichnis.
    4. Verhindere mehrfache Login-Versuche mit einem Plugin wie z.B. WP Login Attempts oder Security Ninja (siehe Infobox). Dadurch werden z.B. Brute-Force-Attacken verhindert und verdächtige IP-Adressen gesperrt.
    5. Zusätzlich könnte man auch mittels eines Plugins 2FA (2-Fach-Authentifizierung) fürs Login einrichten (z.B. mit dem WP 2FA-Plugin).
  2. Mache regelmässig Backups deiner WP-Installation (am besten automatisch). So kannst du jederzeit eine saubere Installation wiederherstellen, solltest du mal Malware eingefangen haben. Es gibt auch sonst genügend Gründe für Backups. In meinem Fall mache ich das direkt via Hosting. Mein Hoster Cyon bietet via Scriptcenter Softaculous eine fein einstellbare Backup-und-Wiederherstellungs-Lösung an, mit welcher ganz einfach per Klick Backups wiederhergestellt werden können. Achtung: teste auch das Wiederherstellen deiner Backup-Lösung. Nutzliches Plugin z.B. BackWPup.
  3. Halte dein WordPress, deine Plugins und Themes up-to-date: gerade veraltet Software ist häufig eine beliebte Schwachstelle für Malware. Wenn dein tolles Katzen-Emoji-Plugin zum letzten Mal vor 5 Jahren aktualisiert wurde, kann genau dieses eine willkommene Eingangstüre für Missbrauch bieten. In meinem Fall kann ich auch via dem Scriptcenter des Hosters automatisch mein WP, die Plugins und Themes aktuell halten und muss mich nicht darum kümmern.
  4. Lösche nicht verwendete Themes und Plugins ganz. Nicht nur deaktivieren. Nur wenn sie gelöscht sind, bieten sie auch keine Angriffsfläche mehr für allfällige Gefahr von aussen. Nutze wenn möglich auch ein Child-Theme für Änderungen an deinem Template.
  5. Installieren nur Plugins vom offiziellen WordPress-Verzeichnis. Das gibt dir keine Garantie, dass die Plugins sicher sind. Aber immerhin werden diese Plugins auch meist regelmässig gewartet.
  6. Nutze möglichst wenig Plugins: überprüfe regelmässig, ob du deine Plugins wirklich alle brauchst und lösche alle, die nicht notwendig sind.
  7. Monitore dein WordPress: überwache deine WP-Installation auf schädliche Manipulationen. Dafür gibt es verschiedene Monitoring-Plugins oder externe Überwachungs-Dienste. Hier hilft z.B. der Malware-Scanner Security Ninja (siehe Infobox).
  8. Führe regelmässige «Security-Audits» durch: überprüfe manuell mit Hilfe von Malware-Scannern und Sicherheitschecks deine Installation oder bitte im privaten Umfeld technisch versierte Freund*innen um Hilfe. Im professionellen Einsatz rate ich entsprechend auch Dienstleister in diesem Bereich mit einem Security-Audit zu beauftragen.
  9. Halte einen Notfallplan bereit: schreibe dir auf, welche Schritte du nach einer Schadensmeldung von deinem Malware-Scanner oder via deinem Hoster gehen musst, wenn deine WP-Installation trotz allem verunreinigt wird. In diesem Moment bist du froh, wenn du dich an einen überlegten Plan halten kannst (z.B. Kommunizieren -> Backup wieder einspielen -> Malware-Scanner laufen lassen etc).
  10. Blogge als Autor: lege dir einen separaten Account in deiner WP-Installation mit nur Autor-Rechten an, den du nutzt um zu bloggen oder Inhalte zu pflegen. Dann kannst du dich einerseits ganz auf das Schreiben der Inhalte konzentrieren und nutzt andererseits dein WordPress auf einem niedrigeren Rechte-Level.

WordPress ist nicht unsicher

Wichtig: WordPress ist nicht per se unsicher. WordPress ist einfach enorm weit verbreitet (60% Marktanteil im CMS Bereich). Alleine diese Tatsache zieht automatisch die Aufmerksamkeit von Schadsoftware auf sich.

Fazit

Wer keine gehostete Sorgenfrei-Lösung von WordPress, Squarespace und co nutzt, sondern (berechtigterweise) WordPress selbst installiert nutzt, der muss sich auch um den Motor, die Bremsen und den funktionellen Zustand seines WordPress-Autos kümmern. Oder dies regelmässig in den Service zu einem WP-Profi geben.

Wichtig: WordPress ist nicht per se unsicher. WordPress ist einfach enorm weit verbreitet (60% Marktanteil im CMS Bereich!). Alleine diese Tatsache zieht automatisch die Aufmerksamkeit von Schadsoftware auf sich.

Gutachten via Plugin

Mit Plugins wie Security Ninja holt man sich einen Garagisten nach hause und kann sich zumindest ein Gutachten ausstellen lassen. Wer dann sich selbst getraut auch an WP die empfohlenen "Fixes" entweder durchs Plugin selbst anzuwenden oder diese manuell zu machen, empfehle ich logischerweise vorher ein Backup zu machen (oder zwei).

Natürlich ist ein solches Plugin nicht wirklich intelligent und die Empfehlungen sind mit Vorsicht zu geniessen. Trotzdem gibt es einem Anhaltspunkte, wenn man total im Schilf steht und keinen Plan hat, wo man beginnen soll.

Rabatt-Code für Security Ninja

Da ich das Security Ninja Plugin persönlich am besten fand, habe ich lieb bei den Entwicklern nachgefragt und einen 20%-Rabatt-Code für euch angefragt. Mit dem Code davidblum bekommt ihr 20% beim Kauf einer Lizenz: Website Security Ninja öffnen

Hilfe vom Hoster

Wenn man bereits eine mit Malware oder anderen Schadcode verseuchte WP-Installation hat, kann es sehr schwierig sein, seinen Blog / Website wieder sauber zu kriegen. Meist bieten die Hoster selbst auch gute Malware-Checks an und helfen einem dabei, wenn man ein Problem hat. In meinem Fall war ich auch sehr froh um eine erste Einschätzung seitens meines Hosters des Vertrauens Cyon, als ich merkte, dass mein Blog verseucht war.

Empfehlung Hoster

Ich nutze seit ich Websites bastle das Hosting von Cyon. Gerade wenn es um den Support geht, ist Cyon in der Schweiz aus meiner Sicht führend. Auch die Preise und die Hosting-Pakete finde ich fair im Vergleich. Gerne kann man sich über meinen Affiliate-Link deren Hosting mal anschauen: Cyon.ch öffnen

Tagged: malware | plugins | security | tipps | wordpress
Comments
Vielen Dank Aron für deine super Ergänzungen. Vielleicht werde ich die auch noch gleich in den Artikel aufnehmen 🙂
Die Backups und Updates von WP sind ein wichtiger Hinweis. In meinem Fall erledigt das bei mir das Script-Scenter Softaculous und regelmässige Backups, welche mein Hoster Cyon beide zur Verfügung stellt.
Bei Login habe ich erstens das Standard-Login-Verzeichnis geändert und die Logins werden auch überwacht, damit da keine Attacken stattfinden können. Beides erledigt bei mir das im Artikel empfohlene Plugin Security Ninja.
Gut zusammengefasst. Da WordPress ja mit weitem Abstand das meist genutzte CMS im Internet ist bietet es eine interessantes Angriffsziel für solche, welche das ausnutzen wollen.
Ich empfehle immer folgende Basics mit welchen man üblicherweise ein ruhiges Leben hat mit WordPress:
1. Automatisierte Backups zu einen externen Speicherort. Ich mache das mit ManageWP (kostenlos für monatliche Backups), alternativ funktioniert auch BackWPUp zu Dropbox meist gut.
2. Automatisierte Updates von WordPress, Plugins und Themes (möglichst wöchentlich oder öfter). Da man immer auf ein Backup zurückgreifen kann, falls etwas beim Update durch Inkompatibilitäten kaputt geht muss man sich da keine Sorgen machen. Mache ich auch meist auch gleich über ManageWP.
Damit alleine hat man eine grundsätzlich viel bessere Ausgangslage und hinkt nicht allen Sicherheitsupdates hinterher.
Folgendes mache ich meist auch:
– Security Plugin für Login Limits nutzen. Blockiert IP-Adressen von denen aus mehrfach versucht wird mit einem ungültigen Login anzumelden.

Leave a replyReply to

Featured Image
AI-generierte Bilder sind ein immer beliebteres Werkzeug für Künstler und Content-Ersteller. Sie ermöglichen es, realistische Bilder zu erstellen, die von echten kaum zu unterscheiden sind, und können die Arbeitsgeschwindigkeit erheblich verbessern. In diesem Blogpost …
Featured Image
Seit Elon Musk begonnen hat, Twitter kaufen zu wollen, fliegen die Federn rund um Twitter. Ich versuche den Durchblick zu behalten in diesem Post.
Featured Image
Stell dir vor, du hast seit Monaten oder länger nicht mehr gebloggt. Und dann veröffentlichst du einen Blogpost über deinen neuen Job. Teilst den Link auf all deinen sozialen Netzwerken, freust dich, endlich wieder …
Follow me
Talk to me

+41 77 412 97 97
hallo@davidblum.ch

Subscribe to me

Get my latest blogposts and news in your inbox. No spam, guaranteed.

© 2021 David Blum – Switzerland isch geil