WordPress gegen Hacker-Angriffe absichern

hacked

Open Source Software ist eine tolle Sache – doch es gibt auch Nachteile. So z.B. die Sicherheit. Denn der Quellcode liegt offen und ist somit auch Hackern zugänglich. Allgemein bekannt sind demnach bei Content-Management-Systemen – wie WordPress, Joomla!, Drupal oder Typo3 – die URLs, die zum Backend-Login führen. Bei WordPress ist es der am die Domain angehängte Verzeichnisname …/wp-admin oder …/wp-login.
Es besteht jedoch die Möglichkeit in den Einstellungen unter "Allgemein" die Login-Seite auf z.B.

Login url: www.domain.de/login

umzuleiten. Zusätzlich kann der Zugriff auf dieses Verzeichnis über die .htaccess-Datei mittels einer Passwortabfrage geschützt werden. Den Verzeichnisschutz bieten einige Provider als Dienst an; er kann aber auch leicht durch eine zusätzliche Passwortdatei .htpasswd erreicht werden.

Weitere Infos unter: https://developer-blog.net/htaccess-verzeichnisschutz-einrichten

Eine weitere Möglichkeit ist die Nutzung einer 2-Faktor-Authentifizierung. Dies ermöglicht z.B. das Plugin Google Authenticator – Two Factor Authentication (2FA).

Sicherheitslücke Benutzernamen
Wird für den SuperUser "admin" oder "Administrator" als Benutzerkonto mit einem dazu noch relativ unsicherem Passwort verwendet, das sich leicht erraten lässt, so sinkt die Sicherheitshürde enorm. Denn unsichere Passwörter lassen sich mittels Wörterbuchangriffen oder Brute-Force-Attacken leicht knacken. Bei Wörterbuchangriffen werden Passwörter nach dem Versuch- und Irrtum-Prinzip (trail and error) ausprobiert, wobei riesige Textdateien zum Einsatz kommen. Die Wörterbuchlisten können aber auch Passwörter aus einem anderen Hack enthalten. Solche Angriffe sind häufig erfolgreich, da viele Nutzer für unterschiedliche Dienste die selben Passwörter verwenden. Bei Brute-Force-Attacken (Brute Force = rohe Gewalt) werden alle möglichen Kombinationen für eine bestimmte Zeichenlänge systematisch durchprobiert. Man geht heute davon aus, dass moderne Computer achtstellige Passwörter, die nur Groß- und Kleinbuchstaben enthalten, innerhalb weniger Minuten geknackt werden können. Deshalb sollte man immer auch Sonderzeichen in Passwörtern verwenden.
Um solche Hacker-Angriffen zu verhindern, kann man z.B. das Plugin Limit Login Attempts einsetzen. Hierüber lässt sich die Anzahl der fehlgeschlagenen Logins begrenzen; der Account wird dann anschließend für eine gewisse Zeit gesperrt.

Häufig sind Benutzernamen leicht herauszufinden. In Foren werden sie oft unter den Beiträgen angezeigt. Auch bei Blogs steht manchmal der Autor mit seinem Benutzernamen unter dem Beitrag. Um hier die Benutzernamen möglichst geheim zu halten, sollte man an dieser Stelle den Namen oder ein Kürzel des Autors anzeigen. Auch bei fehlgeschlagenen Login-Versuchen, gibt WordPress aus Gründen der Usability Hinweise darauf, dass der Benutzername bzw. das Passwort falsch waren.
Um die Fehlermeldung bei fehlgeschlagenen Logins zu verbessern kann man einen Filter in der functions.php einsetzen:

add_filter('login_errors', create_function('$removeError', "return 'Fehler';" ));

Die Fehlermeldung lautet dann immer nur noch “Fehler” und gibt somit keinen Hinweis mehr auf korrekte  (Standard-)Benutzernamen.

Es ist auch möglich, die E-Mail-Adresse für das Login zu nutzen. Hier hilft das Plugin WP Email Login.

Grundsätzlich sollte für die gesamte Website SSL-Verschlüsselung genutzt werden. SSL-Zertifikate erhält man beim Provider und muss diese lediglich Aktivieren. Die Umstellung von http auf https gelingt mit dem Plugin Really Simple SSL.

Was bereits bei der Installation zu mehr Sicherheit führt
Um die eigene Wordpress-Installation sicherer zu gestalten, sollte man bei der Installation das Datenbank-Tabellenpräfix ändern. Bei einigen Installationsroutinen werden hier bereits dynamisch generierte Präfixe vorgeschlagen. Weiterhin sollte man die Wordpress-Dateien auf dem Webserver in ein Unterverzeichnis ablegen und nicht im root-Verzeichnis.

Ein weiteres Einfallstor ist bei WordPress der Medienordner wp-content/uploads. Damit WordPress Dateien über das Backend auf dem Webspace ablegen kann, muss dieser Ordner über entsprechende Dateirechte verfügen (755 oder 777). Hier besteht die Möglichkeit den Upload-Ordner auszulagern. Dies kann auch für die Suchmaschinenoptimierung hilfreich sein. Denn wenn man den Upload-Ordner auf eine Subdomain auslagert, kann die Performance (also die Ladegeschwindigkeit) der Webseite gesteigert werden.

Um den Upload-Ordner in ein anderes Verzeichnis zu verschieben, gibt es zwei Wege:
1.    Folgenden Filter in die functions.php einfügen, um ein Feld für die Eingabe des gewünschten Ablageortes unter Einstellungen > Mediathek  zu erhalten:

add_filter( 'pre_option_upload_url_path', 'wpse_77960_upload_url' );

function wpse_77960_upload_url()
{
    return 'http://www.domain.de/ordner';
}

2.    Die entsprechenden Einstellungen in der Konfigurationsdatei wp-config.php vorzunehmen:

define('UPLOADS', 'wp-content/data');

Weitere Informationen zum Auslagern des Upload-Ordners auf eine Subdomain unter: https://blog.kulturbanause.de/2012/05/wordpress-mediathek-auf-subdomain-auslagen-warum-und-wie/

Hinweis: Unter Umständen kann das Auslagern des Upload-Ordners zu Problemen beim Wordpress-Update oder im Zusammenspiel mit bestimmten Plugins führen.

Für die Dateirechte auf dem Server gilt:
•    alle Ordner sollten auf 775 stehen
•    alle Dateien sollten auf 664 stehen
•    die wp-config.php sollte auf 660 stehen

Weiterhin sollte man auch keine uneingeschränkten Dateiuploads durch die Wordpress-Autoren zulassen. Nur der Upload von Dateien, die tatsächlich gewünscht sind, sollte möglich sein.

Generator-Metatag aus dem Quellcode entfernen
Um Neugierige nicht gleich mit der Nase auf das verwendete Content-Management-System zu stoßen, kann man  das verräterische Metatag Generator aus dem Quellcode entfernen:
Eintrag in der functions.php:

remove_action('wp_head', 'wp_generator');

 

Der letzte Tipp ist ebenfalls äußerst wichtig und wird häufig vernachlässigt oder schlicht weg vergessen: Immer aktuelle Updates einspielen und regelmäßig Backups erstellen.

 

 

Kategorie