1. Home
  2. Misc IT
  3. Wordpress
  4. Disable User-Enumeration

Disable User-Enumeration

User-Enumeration in WordPress ist ein Prozess, bei dem Informationen über Benutzerkonten, typischerweise Benutzernamen, gesammelt werden. Dies kann ein Sicherheitsrisiko darstellen, da Angreifer mit Kenntnis der Benutzernamen gezielte Angriffe wie Brute-Force oder Phishing-Versuche durchführen können.

User-Enumeration by WP-JASON API

Es gibt verschiedene Methoden, um die User-Enumeration in WordPress durchzuführen. Sie können zum Beispiel mit dem Pfad /wp-json/wp/v2/users eine Liste von Benutzern abrufen. Die WP-JSON API in WordPress bietet eine REST API, die unter anderem Informationen über Benutzer preisgeben kann. Ein Angreifer kann über die WP-JSON API eine Liste von Benutzern abrufen, wenn keine Sicherheitsmaßnahmen dies verhindern.

Gegenmaßnahmen

Sie können folgendes Code-Snippet in die functions.php-Datei Ihres aktiven Themes einfügen, um den Zugriff auf die WP-JSON API zu beschränken:

// Fügt einen Filter hinzu, der auf die REST-API-Pfade angewendet wird

add_filter('rest_endpoints', function ($endpoints) {
    if (isset($endpoints['/wp/v2/users'])) {
        unset($endpoints['/wp/v2/users']);
    }
    if (isset($endpoints['/wp/v2/users/(?P<id>[\d]+)'])) {
        unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
    }
    return $endpoints;
});

Dieser Code entfernt Pfade, die Benutzerinformationen für nicht angemeldete Benutzer zugänglich machen könnten.

Nachdem Sie die User-Enumeration abgeschaltet haben, wird beim Aufruf des oben genannten Pfads ein Fehler 401 angezeigt:

User-Enumeration by RSS-Feeds

RSS-Feeds, kurz für Rich Site Summary, sind Web-Feed-Technologien, die automatische Aktualisierungen von Web-Inhalten wie Nachrichten, Blog-Einträgen und Videos in einem standardisierten XML-Format bereitstellen. Nutzer können RSS-Feeds abonnieren, um die neuesten Inhalte aus verschiedenen Quellen zu erhalten, ohne jede Website einzeln besuchen zu müssen. Ein RSS-Feed enthält in der Regel Überschriften, kurze Beschreibungen und Links zum vollständigen Inhalt und ermöglicht so einen schnellen Überblick und direkten Zugriff auf die neuesten Informationen.

Wenn ein Theme oder Plugin RSS-Feeds zur Verfügung stellt, werden bei der Installation in der Regel die ersten Standard-Feeds erstellt, die Informationen über angemeldete Benutzer enthalten. Wenn Sie die RSS-Feed-Funktion nicht nutzen, sollten Sie sie deaktivieren, da dies ein wesentlicher Bestandteil einer guten Datenhygiene ist.

Um eventuell vorhandene RSS-Feeds anzuzeigen, fügen Sie der URL Ihrer Website den Pfad /feed oder /comments/feed hinzu. Der für die User-Enumeration relevante Teil könnte dann wie folgt aussehen. Aus diesen Informationen extrahieren Scan-Tools auch vorhandene Benutzerkonten, die durch die oben gezeigte Gegenmaßnahme nicht blockiert werden:

		<title>Hallo Welt!</title>
		<link>https://kb.prontosystems.de/2022/08/31/hallo-welt/</link>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 31 Aug 2022 19:44:17 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<guid isPermaLink="false">https://kb.prontosystems.de/?p=1</guid>

Gegenmaßnahmen

Es gibt verschiedene Methoden, die RSS-Feeds zu deaktivieren, einschließlich der Verwendung von Code-Snippets oder Plugins. Hier ist eine Methode, um den RSS-Feed mit einem Code-Snippet zu deaktivieren:

Fügen Sie den folgenden Code in die Datei functions.php Ihres WordPress-Themes ein:

function disable_feed() {
    wp_die( __('Es sind keine Feeds verfügbar. Bitte besuchen Sie unsere <a href="'. esc_url( home_url( '/' ) ) .'">Homepage</a>.') );
}

add_action('do_feed', 'disable_feed', 1);
add_action('do_feed_rdf', 'disable_feed', 1);
add_action('do_feed_rss', 'disable_feed', 1);
add_action('do_feed_rss2', 'disable_feed', 1);
add_action('do_feed_atom', 'disable_feed', 1);
add_action('do_feed_rss2_comments', 'disable_feed', 1);
add_action('do_feed_atom_comments', 'disable_feed', 1);

Dieser Code fängt alle Anfragen an die RSS-Feed-URL ab und beendet sie mit einer Meldung, dass kein Feed verfügbar ist, und bietet stattdessen einen Link zur Startseite an. Dies ist eine direkte Methode, um die Verwendung des RSS-Feeds auf Ihrer WordPress-Seite zu verhindern.

Ändern Sie die functions.php Ihres Themes nicht direkt, sondern erstellen Sie ein Child-Theme. Ein Child-Theme wird nach dem eigentlichen Theme geladen und überschreibt dabei die Einstellungen des Haupt-Themes. Dadurch wird verhindert, dass Ihre Änderungen bei einem Update des Haupt-Themes zurückgesetzt werden.

Sicherheits-Plugins

Für WordPress gibt es eine Reihe von Sicherheits-Plugins, die unter anderem die User-Enumeration deaktivieren. Für ein ausgewogenes Sicherheitskonzept sollten Sie den Einsatz eines solchen Plugins in Erwägung ziehen. Achten Sie außerdem darauf, immer die aktuellen Sicherheitsupdates zu installieren.

Ein Plugin, das in seiner Freeware-Lizenz sowohl die User-Enumeration als auch die RSS-Feeds abschalten kann, ist beispielsweise Disable Everything. Dies ist eine praktische und einfache Möglichkeit, diese und eine Reihe weiterer Einstellungen vorzunehmen, ohne den Umweg über ein Child-Theme gehen zu müssen. Es sollte erwähnt werden, dass es eine Reihe von anderen Plugins gibt, die eine ähnliche Funktion haben.

Updated on 17. Februar 2024

Was this article helpful?

Related Articles