WordPress-Benutzerrollen absichern: Admin-Konten aufräumen
WordPress-Benutzerrollen absichern: Admins finden, alte Mitarbeiter- und Agentur-Zugänge entfernen, Anwendungspasswörter widerrufen, Zugriffe quartalsweise prüfen.
Auch auf: English Français Español Italiano Polski Português Türkçe
Die meisten WordPress-Websites haben mehr Administratoren als nötig. Jedes dieser Konten kann Plugins installieren, und wer ein Plugin installiert, führt Code auf Ihrem Server aus. Sichere WordPress-Benutzerrollen folgen deshalb einer einzigen Regel, dem Prinzip der minimalen Rechte: Jede Person bekommt ein eigenes Konto mit der niedrigsten Rolle, mit der sie ihre Arbeit noch erledigen kann.
Sichere WordPress-Benutzerrollen: Zählen Sie zuerst die Admins
Der erste Schritt ist eine Bestandsaufnahme. Öffnen Sie im Dashboard Benutzer > Alle Benutzer und klicken Sie über der Liste auf den Filter „Administrator“. Notieren Sie die Anzahl und die Namen.
Mit WP-CLI erhalten Sie dieselbe Liste samt Registrierungsdatum:
wp user list --role=administrator --fields=ID,user_login,user_email,user_registered
In einem Multisite-Netzwerk prüfen Sie zusätzlich, wer netzwerkweite Rechte hat:
wp super-admin list
Stellen Sie sich bei jedem Konto zwei Fragen: Können Sie die konkrete Person dahinter benennen? Und braucht sie wirklich noch volle Kontrolle? Ist eine der Antworten unklar, kommt das Konto auf Ihre Prüfliste. Alle Optionen, die in diesem Artikel vorkommen, finden Sie in der Dokumentation der WP-CLI-Benutzerbefehle.
Die fünf Standardrollen und wer welche bekommt
WordPress bringt fünf Rollen mit, auf Multisite-Installationen kommt der Super-Admin hinzu. Die vollständige Liste der Berechtigungen steht auf der offiziellen Seite Roles and Capabilities. Kurz zusammengefasst:
| Rolle | Darf | Typische Person |
|---|---|---|
| Super-Admin | Alles im gesamten Multisite-Netzwerk | Netzwerkbetreiber |
| Administrator | Plugins, Themes, Benutzer, Einstellungen | Inhaber, Agenturleitung |
| Redakteur | Alle Beiträge und Seiten veröffentlichen und bearbeiten | Marketing-Team |
| Autor | Eigene Beiträge veröffentlichen, Dateien hochladen | Feste Autorin |
| Mitarbeiter | Eigene Entwürfe schreiben, nicht veröffentlichen | Gastautor |
| Abonnent | Eigenes Profil bearbeiten | Mitglied, Shop-Kunde |
Plugins bringen eigene Rollen und Berechtigungen mit. WooCommerce etwa ergänzt „Shop-Manager“ und „Kunde“, und ein Shop-Manager sieht Bestellungen voller personenbezogener Kundendaten. SEO-, LMS- und Mitgliedschafts-Plugins machen oft etwas Ähnliches. Prüfen Sie im Rollenfilter der Benutzerübersicht jede Rolle, die Sie nicht kennen, und lesen Sie in der Dokumentation des jeweiligen Plugins nach, was sie darf.
Meine Empfehlung: Die tägliche Redaktionsarbeit läuft über ein Redakteurskonto. Das Administratorkonto nutzen Sie nur für Updates und Wartung. Auf einer Einzelsite dürfen Redakteure zwar weiterhin ungefiltertes HTML einfügen, eine echte Sicherheitsgrenze gegenüber nicht vertrauenswürdigen Personen ist das also nicht. Aber ein per Phishing erbeuteter Marketing-Login kann dann keine Plugins mehr installieren.
Diese Konten gehören gelöscht oder herabgestuft: Ex-Mitarbeiter, Agenturen, Sammel-Logins
Auf fast jeder Website eines kleinen Unternehmens tauchen dieselben Kontotypen auf:
- Ehemalige Mitarbeiter, deren Konto beim Ausscheiden nie entfernt wurde.
- Die frühere Agentur, die Jahre nach Vertragsende noch als Administrator eingetragen ist.
- Ein Freelancer aus einem einmaligen Projekt, etwa einem Relaunch oder einer Shop-Migration.
- Ein gemeinsamer „Büro“- oder „Info“-Login, den mehrere Personen nutzen.
- Der Benutzername „admin“ aus der ursprünglichen Installation.
Sammel-Logins sind am schwersten abzusichern. Wenn fünf Personen ein Konto teilen, lässt sich nicht nachvollziehen, wer eine Einstellung geändert oder Kundendaten exportiert hat. Und Sie können einer einzelnen Person den Zugang nicht entziehen, ohne das Passwort für alle zu ändern. Geben Sie jeder Person ein eigenes, namentliches Konto.
Für Agenturen gilt dasselbe. Jede Mitarbeiterin und jeder Mitarbeiter der Agentur bekommt ein eigenes Konto, und diese Konten werden am Tag des Vertragsendes entfernt. Hat eine Agentur Admin-Zugriff auf eine Website mit personenbezogenen Daten, ist sie nach Art. 28 DSGVO in der Regel Auftragsverarbeiter. Ihr Zugang gehört dann in die Unterlagen, die Sie zum Auftragsverarbeitungsvertrag führen. Was Sie als Nachweis aufbewahren sollten, lesen Sie in Was in einen Sicherheitsaudit-Bericht gehört.
Den Benutzernamen „admin“ können Sie im Dashboard nicht umbenennen, WordPress zeigt im Profil nur den Hinweis „Benutzernamen können nicht geändert werden.“ Legen Sie stattdessen einen neuen Administrator mit persönlichem Benutzernamen an:
wp user create jane.doe jane@example.com --role=administrator
Melden Sie sich als neuer Benutzer an und löschen Sie dann das alte „admin“-Konto. Dessen Inhalte ordnen Sie dabei neu zu, wie im nächsten Abschnitt beschrieben.
Sicher löschen: Inhalte zuordnen und einen funktionierenden Administrator behalten
wp user delete 7 --reassign=2
Wollen Sie ein Konto herabstufen statt löschen, etwa bei einem Mitarbeiter, der weiterhin Artikel schreibt:
wp user set-role mark.writer editor
Herabstufen ist oft der sicherere erste Schritt. Beschwert sich zwei Wochen lang niemand, löschen Sie das Konto.
Anwendungspasswörter: Zugänge, die einen Passwortwechsel überleben
Anwendungspasswörter gehören seit WordPress 5.6 zum Kern. Mit ihnen melden sich Apps und Integrationen an der REST-API an, zum Beispiel eine Mobile-App, ein Reporting-Tool oder ein Automatisierungsdienst. Der Haken: Sie funktionieren weiter, wenn das Hauptpasswort des Benutzers geändert wird. Setzen Sie also das Passwort einer früheren Agentur zurück, lassen aber deren Anwendungspasswort bestehen, hat die Agentur weiterhin Zugriff.
Prüfen Sie die Anwendungspasswörter bei jedem Administrator: Öffnen Sie Benutzer > Alle Benutzer, bearbeiten Sie den Benutzer und scrollen Sie nach unten zu Anwendungspasswörter. Mit WP-CLI:
wp user application-password list jane.doe
Die Liste zeigt, wann jedes Passwort erstellt und zuletzt verwendet wurde. Widerrufen Sie alles, was Sie keiner aktuellen Integration zuordnen können:
wp user application-password delete jane.doe <uuid>
Benennen Sie jedes neue Anwendungspasswort nach der Integration, die es nutzt, etwa „Zapier – Bestellexport“. Dann geht die nächste Prüfung schnell. Nutzt auf Ihrer Website niemand diese Funktion, lässt sie sich mit vielen Sicherheits-Plugins und bei manchen Hostern komplett abschalten.
Versteckte Admin-Konten nach einem Hack erkennen
Angreifer, die eingedrungen sind, legen manchmal einen eigenen Administrator an und verstecken ihn mit Code, der die Benutzerabfrage filtert. Das Konto erscheint dann nicht unter „Benutzer“ und unter Umständen auch nicht in wp user list, weil WP-CLI dieselben Plugins lädt. Eine direkte Datenbankabfrage umgeht diesen Code:
wp db query "SELECT u.ID, u.user_login, u.user_email, u.user_registered FROM wp_users u JOIN wp_usermeta m ON m.user_id = u.ID WHERE m.meta_key = 'wp_capabilities' AND m.meta_value LIKE '%administrator%'"
Das Präfix wp_ ist nur der Standard. Führen Sie zuerst wp db prefix aus und ersetzen Sie wp_ in beiden Tabellennamen und im Meta-Key. Lautet Ihr Präfix xy7_, heißt der Key xy7_capabilities. Auf Multisite hat jede Site ihren eigenen Key, etwa wp_2_capabilities.
Vergleichen Sie das Ergebnis mit der Anzahl im Dashboard. Achten Sie dann auf frische user_registered-Daten und E-Mail-Domains, die zu niemandem gehören, mit dem Sie zusammenarbeiten. Ein versteckter oder unerklärlicher Administrator ist ein Hinweis auf eine Kompromittierung, keine Aufräumarbeit. Löschen Sie ihn nicht einfach. Gehen Sie vor wie in Anzeichen, dass Ihre WordPress-Website gehackt wurde beschrieben.
Der Scan nach Kompromittierungsindikatoren im secaudit.eu-Plugin prüft im Rahmen des Audits auch auf versteckte Administratoren.
Quartalsweise Zugriffsprüfung als Nachweis für NIS2 und DSGVO
Eine Prüfung dauert etwa 15 Minuten. Führen Sie sie jedes Quartal durch und zusätzlich immer dann, wenn jemand ausscheidet oder sich ein Agenturvertrag ändert:
- Liste der Administratoren exportieren (auf Multisite auch die Super-Admins).
- Für jedes Konto Person und Rolle bestätigen. Alle anderen herabstufen oder entfernen.
- Von Plugins hinzugefügte Rollen prüfen, etwa den Shop-Manager.
- Anwendungspasswörter aller Administratoren auflisten und ausdünnen.
- Bestätigen, dass alle Administratoren Zwei-Faktor-Authentifizierung nutzen.
- Bestätigen, dass der Datei-Editor im Dashboard deaktiviert ist.
- Datum, prüfende Person und Änderungen dokumentieren.
Erst dieser letzte Eintrag macht aus einer Gewohnheit einen Nachweis. Art. 21 Abs. 2 Buchst. i NIS2 nennt die Sicherheit des Personals, Konzepte für die Zugriffskontrolle und das Management von Anlagen als Mindestmaßnahmen (Richtlinie (EU) 2022/2555). Die konkreten Pflichten für wichtige und besonders wichtige Einrichtungen ergeben sich aber aus der nationalen Umsetzung, prüfen Sie also das deutsche NIS2-Umsetzungsgesetz. Nach der DSGVO gehört die Zugriffskontrolle zu den „geeigneten technischen und organisatorischen Maßnahmen“ nach Art. 32, und Art. 5 Abs. 2 verlangt, dass Sie diese nachweisen können (Verordnung (EU) 2016/679).
Eine Einschränkung sollten Sie kennen: WordPress selbst speichert nicht, wann sich ein Benutzer zuletzt angemeldet hat. Um ruhende Konten zu finden, brauchen Sie ein Aktivitätsprotokoll-Plugin oder die Zugriffslogs Ihres Servers. Andernfalls bleibt nur, direkt nachzufragen.
Beim wiederkehrenden Teil hilft das Plugin Security Audit & Compliance von secaudit.eu. Es meldet versteckte Admins, schwache oder Standardpasswörter und Härtungslücken wie einen aktivierten Datei-Editor, ordnet die Ergebnisse Art. 32 DSGVO und Art. 21 NIS2 zu und exportiert einen Bericht, den Sie zu Ihren Prüfnotizen legen können.
FAQ
Reicht es, den Benutzernamen „admin“ umzubenennen, um Angriffe zu stoppen?
Nein. Damit fällt eine naheliegende Vermutung weg, aber Benutzernamen lassen sich oft auf anderen Wegen herausfinden. Starke, einzigartige Passwörter und Zwei-Faktor-Authentifizierung bringen deutlich mehr.
Darf eine Agentur einen Admin-Login für ihr ganzes Team nutzen?
Nein. Jede Person braucht ein namentliches Konto. Nur so sehen Sie, wer was getan hat, und können einer Person den Zugang entziehen, ohne die anderen zu beeinträchtigen.
Was passiert mit WooCommerce-Bestellungen oder Beiträgen, wenn ich einen Benutzer lösche?
Beiträge und Seiten werden gelöscht, wenn Sie sie nicht neu zuordnen. Plugins speichern ihre Daten auf unterschiedliche Weise, lesen Sie also vor dem Löschen von Kunden- oder Shop-Mitarbeiterkonten die Dokumentation des Plugins. Im Zweifel stufen Sie das Konto zunächst herab.
Dieser Artikel ist eine allgemeine Information und keine Rechtsberatung.
Prüfen Sie Ihre eigene Website
Security Audit & Compliance ist das WordPress-Plugin von secaudit.eu: Es sucht nach Malware, verstecktem Spam, veränderten Kerndateien und unsicherem Code und ordnet seine Befunde DSGVO Art. 32, NIS2 Art. 21 und den OWASP Top 10 zu.
Sehen, was das Plugin prüft