Brute-Force-Angriffe auf Website-Logins: Wie Sie Funktionieren und Wie Man Sie Stoppt
Was Passiert, Wenn Angreifer Ihre Login-Seite Ins Visier Nehmen
Jede Website mit einem Login-Formular ist ein Ziel. Es spielt keine Rolle, ob Sie ein kleines Unternehmen in Lugano oder einen multinationalen Betrieb fuehren. Automatisierte Tools scannen das Internet rund um die Uhr nach Login-Seiten. Wenn sie eine finden, beginnen sie Passwoerter auszuprobieren.
Dies ist kein theoretisches Risiko. Akamai meldete allein im Jahr 2020 ueber 193 Milliarden Credential-Stuffing-Angriffe. Cloudflare blockiert taeglich Millionen von Brute-Force-Versuchen in seinem Netzwerk. Ihre Website ist Teil dieser Angriffsflaeche, ob Sie es wissen oder nicht.
Der Grund, warum diese Angriffe fortbestehen, ist einfach: Sie funktionieren. Standard-Zugangsdaten, schwache Passwoerter und fehlendes Rate Limiting geben Angreifern leichte Siege. Ein einziges kompromittiertes Admin-Panel kann zu Datendiebstahl, Website-Defacement, Malware-Injektion oder Ransomware-Einsatz fuehren.
Dieser Artikel analysiert genau, wie Brute-Force- und Credential-Stuffing-Angriffe funktionieren, praesentiert echte Statistiken zu automatisierten Login-Versuchen und fuehrt durch jede Gegenmassnahme, die Sie implementiert haben sollten.
Wie Brute-Force-Angriffe Funktionieren
Ein Brute-Force-Angriff ist die einfachste Form des Passwort-Knackens: jede moegliche Kombination ausprobieren, bis eine funktioniert. In der Praxis sind moderne Brute-Force-Tools weitaus ausgefeilter als "aaaaaa" und dann "aaaaab" zu versuchen. Sie verwenden optimierte Strategien, um gueltige Zugangsdaten schneller zu finden.
Reiner Brute Force
Der Angreifer probiert jede moegliche Zeichenkombination fuer eine gegebene Laenge. Fuer ein 6-Zeichen-Passwort mit Kleinbuchstaben sind das 308 Millionen Kombinationen. Fuer ein 8-Zeichen-Passwort mit Gross- und Kleinbuchstaben, Zahlen und Symbolen sind es ueber 6 Billiarden Kombinationen.
Reiner Brute Force ist langsam gegen starke Passwoerter. Aber gegen schwache (wie "admin1" oder "password") funktioniert er in Sekunden.
Woerterbuch-Angriffe
Anstatt jede Kombination zu versuchen, verwenden Woerterbuch-Angriffe Listen gaengiger Passwoerter. Diese Wortlisten enthalten Millionen von Eintraegen, die aus frueheren Datenlecks zusammengestellt wurden. Die am haeufigsten verwendeten Passwoerter erscheinen in praktisch jeder Breach-Datenbank:
- 123456 (von ueber 23 Millionen Konten in Breach-Datenbanken verwendet)
- password
- 123456789
- qwerty
- 12345678
- admin
- welcome
- letmein
Woerterbuch-Angriffe sind schnell, weil sie unwahrscheinliche Kombinationen ueberspringen und sich auf Passwoerter konzentrieren, die Menschen tatsaechlich verwenden. Eine Wortliste mit 10 Millionen gaengigen Passwoertern kann innerhalb weniger Stunden gegen ein Web-Login getestet werden, je nach vorhandenem Rate Limiting.
Credential Stuffing
Credential Stuffing ist die effektivste Variante. Der Angreifer nimmt Benutzername-Passwort-Paare aus einem frueheren Datenleck (LinkedIn, Adobe, Dropbox oder einem der tausenden Lecks, die Milliarden von Zugangsdaten offengelegt haben) und probiert sie auf Ihrer Website.
Warum funktioniert das? Weil Menschen Passwoerter wiederverwenden. Studien zeigen durchgehend, dass 60-65% der Menschen dasselbe Passwort fuer mehrere Dienste verwenden. Wenn Ihr Mitarbeiter dasselbe Passwort fuer sein LinkedIn-Konto und das WordPress-Admin-Panel Ihres Unternehmens verwendet hat, gibt ein LinkedIn-Leck dem Angreifer Zugang zu Ihrer Website.
Credential Stuffing ist schwerer zu erkennen als Brute Force, weil jeder Login-Versuch einen gueltig aussehenden Benutzernamen und ein plausibles Passwort verwendet. Es gibt keine Muster von sequentiellen Versuchen, die man markieren koennte.
Hybride Angriffe
Hybride Angriffe kombinieren Woerterbuchworten mit gaengigen Modifikationen: Zahlen anhaengen (password1, password123), Buchstaben durch Symbole ersetzen (p@ssw0rd), den ersten Buchstaben gross schreiben (Password). Diese fangen Benutzer ein, die denken, sie seien schlau, indem sie geringfuegige Aenderungen an gaengigen Woertern vornehmen.
Die von Angreifern Verwendeten Tools
Man muss kein erfahrener Hacker sein, um Brute-Force-Angriffe durchzufuehren. Die Tools sind kostenlos, Open Source und gut dokumentiert:
- Hydra: Ein parallelisierter Login-Cracker, der Dutzende von Protokollen unterstuetzt, darunter HTTP-Formulare, SSH, FTP und SMTP.
- Burp Suite: Eine Web-Sicherheitstestplattform mit einem Intruder-Modul fuer automatisierte Login-Angriffe. Die Community-Edition ist kostenlos.
- WPScan: Ein WordPress-spezifischer Scanner mit Brute-Force-Faehigkeiten fuer wp-login.php und XML-RPC-Endpunkte.
- Sentry MBA, OpenBullet: Credential-Stuffing-Tools, die in Underground-Foren geteilte "Configs" verwenden.
Die Eintrittsbarriere ist extrem niedrig. Ein Teenager mit einem Laptop und einer Wortliste kann innerhalb von Minuten einen Brute-Force-Angriff starten.
Statistiken zu Automatisierten Login-Versuchen
Das Ausmass der automatisierten Login-Angriffe ist enorm:
| Metrik | Wert | Quelle |
|---|---|---|
| Credential-Stuffing-Angriffe 2020 | 193 Milliarden | Akamai |
| Prozentsatz des boesartigen Login-Traffics | Ueber 90% auf manchen Websites | Shape Security |
| Durchschnittliche Kosten eines Credential-Stuffing-Angriffs | 6 Millionen USD pro Jahr | Ponemon Institute |
| WordPress-Seiten, die taeglich per Brute Force angegriffen werden | Ueber 900.000 | Wordfence |
| Zeit zum Knacken von "password123" per Brute Force | Weniger als 1 Sekunde | Hive Systems |
| Prozentsatz der Benutzer, die Passwoerter wiederverwenden | 60-65% | Google/Harris Poll |
Wenn Sie eine WordPress-Website betreiben, zeigen Wordfence-Daten, dass Brute-Force-Angriffe auf wp-login.php und xmlrpc.php einen der drei wichtigsten Angriffsvektoren darstellen. Jede WordPress-Website, die wir fuer Unternehmen im Tessin pruefen, zeigt Hinweise auf Brute-Force-Versuche in den Zugriffsprotokollen.
Warum Standard-Zugangsdaten der Angriffsvektor Nummer Eins Bleiben
Es klingt absurd im Jahr 2022, aber Standard-Zugangsdaten sind immer noch der effektivste Weg in ein System. Hier ist der Grund:
- CMS-Installationen: WordPress-, Joomla- und Drupal-Installationen behalten oft den Standard-Benutzernamen "admin". Der Angreifer kennt bereits die Haelfte der Zugangsdaten.
- Netzwerkgeraete: Router, Switches und IoT-Geraete werden mit Standard-Zugangsdaten ausgeliefert (admin/admin, admin/password, root/root). Viele werden nie geaendert.
- Entwicklungsumgebungen: Staging-Server, Entwicklungsdatenbanken und Testinstanzen verwenden oft einfache Zugangsdaten, die versehentlich in die Produktion gelangen.
- Drittanbieter-Plugins: Einige WordPress-Plugins und -Themes erstellen bei der Installation Admin-Konten mit Standard-Passwoertern.
Das Mirai-Botnet, das 2016 wichtige Internetdienste lahmlegte, funktionierte, indem es nur 62 Standard-Benutzername/Passwort-Kombinationen gegen IoT-Geraete ausprobierte. Das reichte, um ein Botnet von ueber 600.000 Geraeten aufzubauen.
Gegenmassnahme 1: Rate Limiting
Rate Limiting ist Ihre erste Verteidigungslinie. Es beschraenkt die Anzahl der Login-Versuche von einer einzelnen Quelle innerhalb eines Zeitfensters.
Wie Man Rate Limiting Implementiert
Auf Anwendungsebene verfolgen Sie fehlgeschlagene Login-Versuche pro IP-Adresse und pro Benutzername. Nach einem Schwellenwert (z.B. 5 fehlgeschlagene Versuche in 15 Minuten) fuegen Sie eine zunehmende Verzoegerung hinzu.
Auf Serverebene koennen Tools wie nginx Limits auf bestimmten Endpunkten durchsetzen:
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;
Diese Konfiguration beschraenkt jede IP-Adresse auf 5 Anfragen pro Minute am Login-Endpunkt. Legitime Benutzer werden dieses Limit nie erreichen. Automatisierte Tools werden erheblich verlangsamt.
Gegenmassnahme 2: CAPTCHA
CAPTCHA fuegt eine Herausforderung hinzu, die fuer Menschen einfach, aber fuer Bots schwierig ist.
Optionen
- reCAPTCHA v2: Das "Ich bin kein Roboter"-Kontrollkaestchen. Funktioniert gut, fuegt aber Reibung hinzu.
- reCAPTCHA v3: Unsichtbar, bewertet jede Anfrage von 0.0 bis 1.0 basierend auf Verhaltensanalyse.
- hCaptcha: Eine datenschutzorientierte Alternative zu reCAPTCHA. Besonders relevant fuer Schweizer Unternehmen, die sich um die Datenverarbeitung unter dem nDSG sorgen.
- Cloudflare Turnstile: Cloudflares CAPTCHA-Alternative. Kostenlos, datenschutzfreundlich und in den meisten Faellen reibungslos.
Wann CAPTCHA Anzeigen
Zeigen Sie CAPTCHA nicht bei jedem Login-Versuch an. Das aergert legitime Benutzer. Zeigen Sie es nach 2-3 fehlgeschlagenen Versuchen von derselben IP oder fuer denselben Benutzernamen.
Gegenmassnahme 3: Kontosperrungsrichtlinien
Die Kontosperrung deaktiviert ein Konto voruebergehend nach einer Anzahl fehlgeschlagener Login-Versuche.
- Nach 5 fehlgeschlagenen Versuchen: Konto fuer 15 Minuten sperren.
- Nach 10 fehlgeschlagenen Versuchen: fuer 1 Stunde sperren.
- Nach 20 fehlgeschlagenen Versuchen: bis zur manuellen Ueberpruefung sperren.
Das Denial-of-Service-Risiko
Die Kontosperrung hat einen erheblichen Nachteil: Ein Angreifer kann absichtlich legitime Benutzer aussperren, indem er falsche Passwoerter gegen deren Konten probiert. Um dies abzumildern, kombinieren Sie die Sperrung mit anderen Signalen. Sperren Sie basierend auf der Kombination IP + Benutzername statt nur auf dem Benutzernamen.
Gegenmassnahme 4: fail2ban
fail2ban ist ein Intrusion-Prevention-Tool auf Serverebene, das Logdateien auf Anzeichen boesartiger Aktivitaeten ueberwacht und die fehlerhaften IP-Adressen automatisch sperrt.
Wie fail2ban Funktioniert
- fail2ban ueberwacht Logdateien (z.B. /var/log/auth.log, /var/log/nginx/access.log).
- Es wendet Filterregeln an, um fehlgeschlagene Login-Versuche zu identifizieren.
- Wenn eine IP den konfigurierten Schwellenwert ueberschreitet, fuegt fail2ban eine Firewall-Regel hinzu, um diese IP zu blockieren.
- Nach einer konfigurierbaren Sperrzeit wird die IP automatisch entsperrt.
Konfiguration fuer Web-Logins
[wordpress-login]
enabled = true
filter = wordpress-login
logpath = /var/log/nginx/access.log
maxretry = 5
findtime = 300
bantime = 3600
Dies sperrt jede IP, die innerhalb von 5 Minuten 5 fehlgeschlagene Login-Versuche generiert, fuer 1 Stunde. fail2ban arbeitet auf Firewall-Ebene, sodass gesperrte IPs Ihren Webserver nicht einmal erreichen koennen.
Warum fail2ban ein Muss fuer Self-Hosted Websites Ist
Wenn Sie Ihre Website auf einem VPS oder dedizierten Server hosten (ueblich fuer Unternehmen in der Schweiz, die Datenresidenz wuenschen), sollte fail2ban installiert und fuer jeden exponierten Dienst konfiguriert sein: SSH, Web-Login, FTP, SMTP.
Gegenmassnahme 5: Cloudflare WAF
Eine WAF sitzt zwischen dem Internet und Ihrem Webserver und filtert boesartigen Datenverkehr, bevor er Ihre Anwendung erreicht.
Wie Cloudflare WAF Brute Force Stoppt
- Bot-Erkennung: Cloudflare nutzt Machine Learning, um automatisierte Tools von echten Browsern zu unterscheiden.
- Rate-Limiting-Regeln: Sie koennen benutzerdefinierte Regeln erstellen, die Login-Versuche pro IP oder Sitzung begrenzen.
- Verwaltete Regelsaetze: Cloudflare pflegt Regelsaetze, die bekannte Angriffsmuster blockieren.
- Challenge-Seiten: Verdaechtiger Datenverkehr erhaelt eine JavaScript-Challenge oder CAPTCHA.
- IP-Reputation: Cloudflare pflegt eine Reputationsdatenbank von IP-Adressen ueber sein gesamtes Netzwerk.
Fuer Unternehmen im Tessin und in der ganzen Schweiz beinhaltet der kostenlose Cloudflare-Plan grundlegende WAF-Funktionen. Der Pro-Plan (20 USD/Monat) fuegt den vollstaendigen verwalteten Regelsatz hinzu. Fuer eine breitere Perspektive zur Web-Sicherheit fuer Unternehmenswebsites lesen Sie unseren Artikel zur Sicherheit von Unternehmenswebsites.
Gegenmassnahme 6: Zwei-Faktor-Authentifizierung (2FA)
Die Zwei-Faktor-Authentifizierung ist die wirksamste Einzelverteidigung gegen Brute Force und Credential Stuffing. Selbst wenn ein Angreifer das richtige Passwort erhaelt, kann er sich ohne den zweiten Faktor nicht anmelden.
Arten von 2FA
- TOTP (Time-based One-Time Password): Apps wie Google Authenticator, Authy oder Microsoft Authenticator generieren einen 6-stelligen Code, der sich alle 30 Sekunden aendert.
- Hardware-Sicherheitsschluessel: Physische Geraete (YubiKey, Google Titan), die das FIDO2/WebAuthn-Protokoll verwenden. Die sicherste Option, immun gegen Phishing.
- SMS-Codes: Ein per Textnachricht gesendeter Code. Besser als kein 2FA, aber anfaellig fuer SIM-Swapping-Angriffe.
- E-Mail-Codes: Ein an die E-Mail des Benutzers gesendeter Code. Besser als nichts, haengt aber von der Sicherheit des E-Mail-Kontos ab.
Warum 2FA das Credential-Stuffing-Problem Loest
Credential Stuffing funktioniert, weil gestohlene Passwoerter gueltig sind. Aber ein gestohlenes Passwort kombiniert mit 2FA ist nutzlos. Der Angreifer hat das Passwort, kann aber den TOTP-Code nicht generieren. Diese eine Massnahme eliminiert den gesamten Credential-Stuffing-Angriffsvektor.
Login-Sicherheit Richtig Implementieren: Ein Schichtenansatz
Keine einzelne Gegenmassnahme ist ausreichend. Der richtige Ansatz ist Verteidigung in der Tiefe, bei der mehrere Schichten zusammenarbeiten, sodass ein Versagen in einer Schicht von der naechsten aufgefangen wird.
Zusammenfassung der Empfohlenen Konfiguration
| Schicht | Tool | Konfiguration |
|---|---|---|
| Netzwerk | Cloudflare WAF | Managed Challenge auf Login-URL, Rate Limit 5 Req/Min |
| Server | fail2ban | IP-Sperre nach 5 Fehlversuchen in 5 Min, Sperrdauer 1 Stunde |
| Server | nginx Rate Limit | 5 Anfragen/Minute pro IP am Login-Endpunkt |
| Anwendung | CAPTCHA | Anzeige nach 3 Fehlversuchen pro IP oder Benutzername |
| Anwendung | Kontosperrung | Sperren nach 10 Fehlversuchen, entsperren nach 15 Min |
| Authentifizierung | 2FA (TOTP) | Pflicht fuer alle Admin- und Editor-Konten |
Zusaetzliche Haertungsmassnahmen
Login-URL Umbenennen oder Verbergen
Fuer WordPress ist die Standard-Login-URL /wp-login.php. Jeder Bot im Internet kennt sie. Plugins wie WPS Hide Login erlauben es, sie in eine benutzerdefinierte URL zu aendern. Dies bietet keine echte Sicherheit (Security through Obscurity), eliminiert aber eine enorme Menge an automatisiertem Rauschen in Ihren Logs.
XML-RPC Deaktivieren
Die XML-RPC-Schnittstelle von WordPress (xmlrpc.php) erlaubt Login-Versuche, die den Schutz von wp-login.php umgehen. Angreifer nutzen die system.multicall-Methode, um Hunderte von Passwoertern in einer einzigen Anfrage zu testen. Sofern Sie XML-RPC nicht speziell benoetigen, deaktivieren Sie es vollstaendig. Mehr zu WordPress-spezifischen Schwachstellen finden Sie in unserem Artikel ueber WordPress-Sicherheit und Updates.
Starke Passwortrichtlinien Durchsetzen
Fordern Sie Passwoerter mit mindestens 12 Zeichen und pruefen Sie sie gegen bekannte Breach-Datenbanken (die HaveIBeenPwned-API bietet diesen Dienst kostenlos an). Erzwingen Sie keine willkuerlichen Komplexitaetsregeln, da sie zu vorhersehbaren Mustern wie "Password1!" fuehren. Laenge zaehlt mehr als Komplexitaet.
Die Kosten des Nichtstuns
Die Verteidigung gegen Brute Force ist nicht teuer. Der kostenlose Cloudflare-Plan deckt den Grundschutz ab. fail2ban ist kostenlose Open-Source-Software. 2FA-Plugins fuer WordPress sind kostenlos. Die Gesamtkosten fuer die Implementierung aller in diesem Artikel beschriebenen Gegenmassnahmen liegen fuer die meisten Websites nahe bei null.
Die Kosten eines erfolgreichen Angriffs hingegen reichen von Website-Defacement (Reputationsschaden, Bereinigungskosten) bis zum vollstaendigen Datenleck (rechtliche Haftung unter nDSG und DSGVO, Kundenbenachrichtigungskosten, regulatorische Bussgelder). Fuer ein Schweizer KMU kann ein Datenleck leicht CHF 50.000 bis 200.000 kosten, wenn man Incident Response, Anwaltskosten, Kundenkommunikation und entgangenes Geschaeft beruecksichtigt.
Wenn Sie eine Unternehmenswebsite betreiben und Ihre Login-Seite kein Rate Limiting, kein CAPTCHA, kein 2FA hat und Standard-Zugangsdaten verwendet, sind Sie nicht nur gefaehrdet. Sie werden bereits angegriffen. Die einzige Frage ist, ob die Angreifer bereits Erfolg hatten.
Naechste Schritte
Bei Envestis in Lugano fuehren wir Sicherheitsbewertungen durch, die das Testen von Login-Schutzmassnahmen gegen Brute-Force-Angriffe umfassen. Wir pruefen Rate Limiting, CAPTCHA-Implementierung, 2FA-Konfiguration und Verteidigungen auf Serverebene. Anschliessend implementieren wir die Korrekturen, schichtweise vom Netzwerk bis zur Anwendungsebene.
Wenn Sie wissen moechten, ob das Login Ihrer Website ordnungsgemaess geschuetzt ist, oder wenn Sie Hilfe bei der Implementierung der hier beschriebenen Gegenmassnahmen benoetigen, kontaktieren Sie uns. Ein Login, das per Brute Force geknackt werden kann, ist keine theoretische Schwachstelle. Es ist eine offene Tuer.
Wollen Sie wissen, ob Ihre Website sicher ist?
Fordern Sie ein kostenloses Sicherheitsaudit an. In 48 Stunden erhalten Sie einen vollständigen Bericht.
Kostenloses Audit Anfordern