Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

Modul 7 · 7.3

Deutsch

Anmeldung: Passwörter, Zwei-Faktor-Authentifizierung und Brute Force

Modul 7: Sicherheit · Lesezeit: 9 Minuten

Lernziel: Nach dieser Lektion können Sie die Anmeldung an Ihrer Website mit starken Passwörtern, Zwei-Faktor-Authentifizierung und der Begrenzung von Anmeldeversuchen absichern, und Sie wissen, was xmlrpc.php ist.

Kernbegriffe: Passwort-Manager, Passphrase, einzigartiges Passwort, Zwei-Faktor-Authentifizierung (2FA, TOTP), Passkey, Brute Force, Anmeldeversuche begrenzen, wp-login.php auf IP-Adresse, xmlrpc.php, durchsickernde Benutzernamen (REST, ?author=), Anwendungspasswörter

Das Passwort: lang und einzigartig

Ein gutes Passwort hat zwei Eigenschaften:

  1. Lang: Länge zählt mehr als ungewöhnliche Zeichen. Eine Passphrase aus vier oder fünf zufälligen Wörtern (sieb-pinguin-oktober-laterne) ist sicherer und leichter zu merken als P8ssw0rt!. Behörden und Sicherheitsstellen empfehlen ein einzigartiges Passwort von mindestens 12 Zeichen, vorzugsweise eine Passphrase.
  2. Einzigartig: nirgendwo sonst verwendet. Credential Stuffing (Lektion 7.1) funktioniert nur, wenn Sie ein Passwort wiederverwenden.

Niemand merkt sich Dutzende lange einzigartige Passwörter. Verwenden Sie deshalb einen Passwort-Manager: ein Programm, das sie für Sie erstellt, speichert und einträgt. Dann müssen Sie sich nur noch eines merken: das des Managers selbst, und auch das sichern Sie mit Zwei-Faktor-Authentifizierung.

Ob ein Passwort in einem bekannten Datenleck vorkommt, können Sie auf haveibeenpwned.com prüfen. Steht Ihre E-Mail-Adresse in einem Leck, ändern Sie das Passwort bei jedem Dienst, bei dem Sie dasselbe Passwort verwendet haben.

Zwei-Faktor-Authentifizierung

Mit Zwei-Faktor-Authentifizierung (2FA) benötigen Sie beim Anmelden neben Ihrem Passwort noch etwas: meistens einen sechsstelligen Code aus einer App auf Ihrem Telefon (ein Authenticator, nach dem Standard TOTP). Ein Angreifer mit Ihrem Passwort kommt damit noch nicht hinein.

WordPress hat keine eingebaute Zwei-Faktor-Authentifizierung. Sie fügen sie mit einem Plugin hinzu. Es gibt viele; ein einfaches ist Two Factor, erstellt von Mitwirkenden an WordPress selbst. Auch Sicherheits-Plugins bringen sie oft mit. Achten Sie bei der Auswahl auf:

  • TOTP-Apps und Backup-Codes (für den Fall, dass Sie Ihr Telefon verlieren); Codes per E-Mail sind schwächer, weil Ihr Postfach ebenfalls gehackt werden kann;
  • die Möglichkeit, sie für Administratoren und Redakteure verpflichtend zu machen;
  • Passkeys: Anmelden mit Ihrem Fingerabdruck, Gesicht oder einem Sicherheitsschlüssel, ohne Passwort. Dafür gibt es ebenfalls Plugins. Passkeys sind resistent gegen Phishing, weil sie nur auf der echten Website funktionieren.

Schalten Sie Zwei-Faktor-Authentifizierung auch bei allem ein, was um Ihre Website herum liegt: Ihr Hosting-Panel, Ihre E-Mail, Ihr Registrar und Ihr Passwort-Manager. Ein Angreifer, der Ihr Hosting-Panel übernimmt, braucht Ihr WordPress-Passwort nicht.

Brute Force und Anmeldeversuche begrenzen

Eine offene WordPress-Website erhält den ganzen Tag Anmeldeversuche auf wp-login.php, oft mit admin und Listen gängiger Passwörter. Mit einem langen Passwort und 2FA kommen diese nicht hinein, aber jeder Versuch kostet Ihren Server Rechenleistung (ein vollständiger WordPress-Start). Bei einer großen Welle wird Ihre Website langsam.

WordPress selbst begrenzt die Anzahl der Versuche nicht. Was hilft, in der Reihenfolge von „früh abwehren":

  1. Auf dem Server: Viele Hoster blockieren eine IP-Adresse, die in kurzer Zeit viele fehlgeschlagene Versuche durchführt, noch bevor WordPress startet (mit einer Firewall oder einer Webserverfunktion). Fragen Sie Ihren Hoster, was dort passiert.
  2. wp-login.php nur für Ihre IP-Adresse: mit ein paar Zeilen in .htaccess (bei LiteSpeed und Apache):
<Files wp-login.php>
Require ip 192.0.2.10
</Files>

Das funktioniert gut, wenn Sie eine feste IP-Adresse haben. Ist das nicht der Fall (zu Hause, auf dem Telefon), sperren Sie sich selbst aus, sobald sich Ihre Adresse ändert. Eine Alternative ist ein zusätzliches Passwort auf der Anmeldeseite (ein „geschützter Ordner", Basic Authentication) mit einem anderen Passwort als Ihrem WordPress-Passwort.

  1. Ein Plugin, das Versuche begrenzt: Nach fünf fehlgeschlagenen Versuchen wird die IP-Adresse für eine Weile blockiert. Funktioniert, aber erst nachdem WordPress bereits läuft, der Rechenaufwand bleibt also bestehen.

Das Verbergen oder Umbenennen der Anmeldeseite (zum Beispiel /mein-login statt /wp-login.php) verringert das Rauschen in Ihrem Logbuch. Es ist keine echte Sicherheitsmaßnahme, und manche Plugins und Themes erwarten die Standardadresse. Gut als Ergänzung, niemals als Ersatz für ein starkes Passwort und 2FA.

xmlrpc.php

xmlrpc.php ist eine alte Schnittstelle aus der Zeit vor der REST API, über die Apps und andere Websites mit WordPress kommunizieren. Sie wird noch von einigen Apps, von Jetpack und von ein paar Schnittstellen verwendet. Für die meisten Websites ist sie überflüssig.

Angreifer mögen xmlrpc.php, weil man damit in einer einzigen Anfrage Hunderte Passwörter gleichzeitig ausprobieren kann (mit der Funktion system.multicall), und weil sie für Angriffe auf andere Websites missbraucht werden kann (Pingbacks). Was Sie tun:

  • Nutzen Sie sie nicht: blockieren Sie sie. Manche Hoster, darunter WebOké, blockieren xmlrpc.php standardmäßig auf dem Server. Andernfalls mit einer Regel in .htaccess oder mit einem Sicherheits-Plugin.
  • Nutzen Sie sie doch (zum Beispiel für eine App, die sie benötigt): lassen Sie sie offen, aber sorgen Sie für starke Passwörter, 2FA und eine Begrenzung der Versuche. Moderne Apps nutzen meistens die REST API mit einem Anwendungspasswort (Lektion 3.3).

Durchsickernde Benutzernamen

In Lektion 3.3 haben Sie gesehen, dass WordPress eine Ableitung von Benutzernamen anzeigt:

  • https://example.com/?author=1 leitet weiter zu /author/<name>/;
  • https://example.com/wp-json/wp/v2/users zeigt eine Liste mit den Slugs aller an, die etwas veröffentlicht haben.

Ist das schlimm? Ein Benutzername ist kein Passwort. Mit einem langen einzigartigen Passwort und 2FA macht das wenig aus. Aber es gibt einem Angreifer die Hälfte der Anmeldedaten und erleichtert gezieltes Phishing. Sinnvolle Maßnahmen:

  • geben Sie Administratoren einen Benutzernamen, der nicht ihrem öffentlichen Namen entspricht, und veröffentlichen Sie nicht mit einem Administratorkonto (Lektion 3.3);
  • beschränken Sie die Benutzerliste in der REST API mit einem Sicherheits-Plugin oder ein paar Zeilen Code, wenn Sie sie nicht benötigen. Schließen Sie die REST API nicht vollständig: der Block-Editor und viele Plugins benötigen sie.

Anwendungspasswörter

Anwendungspasswörter (Lektion 3.3) sind eine sichere Möglichkeit, einer App oder einem System Zugriff zu gewähren, aber sie umgehen Ihre Zwei-Faktor-Authentifizierung: Eine App mit einem Anwendungspasswort benötigt keinen Code. Erstellen Sie sie nur, wenn es nötig ist, bei einem Konto mit niedriger Rolle, und widerrufen Sie sie, sobald Sie die Verbindung nicht mehr nutzen.

Zusammenfassung

  • Verwenden Sie lange, einzigartige Passwörter (Passphrasen) in einem Passwort-Manager.
  • Schalten Sie Zwei-Faktor-Authentifizierung ein, mit einem Plugin in WordPress und auch auf Ihrem Hosting-Panel, Ihrer E-Mail und Ihrem Registrar.
  • Halten Sie Anmeldeversuche so früh wie möglich auf: auf dem Server, mit einer IP-Regel oder einem zusätzlichen Passwort, oder mit einem Plugin.
  • Blockieren Sie xmlrpc.php, wenn Sie sie nicht nutzen.
  • Durchgesickerte Benutzernamen sind keine Katastrophe, aber ein Hinweis: veröffentlichen Sie nicht als Administrator und beschränken Sie die REST-Benutzerliste, wenn Sie sie nicht benötigen.

Quiz

1. Welches Passwort ist am stärksten?



2. Warum ist xmlrpc.php bei Angreifern beliebt?



3. Sie legen wp-login.php auf die IP-Adresse Ihres Büros fest. Was ist das Risiko?



4. Reicht das Umbenennen der Anmeldeseite in eine geheime Adresse als Sicherheitsmaßnahme aus?



Aufgabe

Aufgabe A7.3: Was gibt Ihre Website beim Einloggen preis? Geben Sie die Adresse Ihrer Website ein und weisen Sie nach, dass es sich um Ihre eigene Website handelt (mit dem Code der Aufgabe, als TXT-Eintrag oder als Datei). Das Programm prüft drei Dinge: ob xmlrpc.php eine Liste von Funktionen zurückgibt (offen) oder blockiert ist, ob /wp-json/wp/v2/users Benutzernamen (Slugs) anzeigt, und wohin /?author=1 weiterleitet. Geben Sie an, ob Sie xmlrpc.php benötigen; wenn nicht, wird ein offenes xmlrpc.php rot markiert. Durchgesickerte Slugs werden orange mit Erläuterung markiert.

Aufgabe A7.3: Was gibt Ihre Website beim Einloggen preis?

Diese Kontrolle fragt Pfade ab, die Sie nur bei Ihrer eigenen Website prüfen lassen. Klicken Sie zuerst auf "Meinen Code anzeigen" und setzen Sie diesen Code als TXT-Record auf _weboke-cursus.<ihre Domain> oder als Datei auf Ihrer Website (siehe die Erklärung beim Code).



Was Sie eingeben und was wir finden, speichern wir nicht. Ihr Browser merkt sich Ihre Antworten und ob Sie die Aufgabe bestanden haben. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe (fast) richtig hatten; auch das können Sie dort löschen.

Aufgabe D7.3: Zwei-Faktor-Authentifizierung einschalten. Schalten Sie Zwei-Faktor-Authentifizierung für alle Administratoren Ihrer WordPress-Website ein, und auch auf Ihrem Hosting-Panel und Ihrer E-Mail. Bewahren Sie die Backup-Codes in Ihrem Passwort-Manager auf. Kreuzen Sie pro Komponente an, dass sie aktiviert ist, und notieren Sie, welche Methode Sie verwenden (App, Passkey, E-Mail) und wo die Backup-Codes gespeichert sind. Notieren Sie auch, wie Sie wp-login.php zusätzlich schützen und warum Sie sich für diese Methode entscheiden.

Aufgabe D7.3: Zwei-Faktor-Authentifizierung einschalten

Diese Aufgabe machen Sie selbst; niemand prüft sie nach. Haken Sie ab, was Sie erledigt haben, und markieren Sie die Aufgabe als erledigt.




Ihre Haken und Notizen bleiben nur in diesem Browser; wir senden sie nirgendwohin. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe erledigt haben.

Weiterführende Lektüre

Diese Artikel beschreiben die Schritte in den Panels von WebOké; in anderen Panels funktionieren sie ähnlich.

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…