Ein offener SSH-Port erhält rund um die Uhr Credential-Stuffing-Verkehr
Scannende Botnetze durchlaufen den gesamten routbaren IPv4-Adressraum und probieren Passwortlisten gegen jeden Host, der auf TCP/22 antwortet. Ein aus dem Internet erreichbarer SSH-Daemon erhält diesen Verkehr unabhängig davon, ob der Host ein Unternehmens-Bastion oder ein einzelner VPS ist.
- Tausende fehlgeschlagene Authentifizierungen pro Tag
- Ein neuer Host, der auf TCP/22 antwortet, protokolliert bereits wenige Stunden nach der Routbarkeit seiner Adresse fehlgeschlagene SSH-Authentifizierungen. Ein typischer internetseitiger Server schreibt täglich Tausende "Failed password"- und "Invalid user"-Ereignisse in systemd-journald, und zwar aus Adressbereichen, die schneller wechseln, als eine einzelne Administration sie prüfen kann.
- CPU, Speicher und Journal-Schreibvorgänge für Verkehr, der sich nie authentifizieren wird
- Jeder SSH-Authentifizierungsversuch kostet einen TCP-Handshake, einen SSH-Schlüsselaustausch, einen PAM-Durchlauf über /etc/pam.d/sshd und einen synchronen Schreibvorgang in systemd-journald. Ein anhaltender Brute-Force-Strom hält damit dauerhafte Grundlast auf dem Host, bläht den Journal-Speicher auf und drängt echte administrative Anmeldungen hinter die MaxStartups-Warteschlange von sshd - all das, ohne dass sich der Angreifer je authentifizieren müsste.
- Ein erratenes Kennwort ist die vollständige Kompromittierung
- Ein einziges korrektes Passwort liefert eine interaktive Shell mit den Rechten dieses Kontos: Ransomware-Staging, Datenabfluss oder ausgehender Spam unter der Adresse des Hosts selbst. Schwache oder aus öffentlichen Leaks wiederverwendete Passwörter fallen binnen Tagen einem Wörterbuchlauf zum Opfer, und das Authentifizierungsprotokoll verzeichnet den erfolgreichen Versuch genau wie jede andere Zeile.
- pam_faillock macht aus dem Angriff eine Sperre der echten Administration
- Der in /etc/pam.d/sshd konfigurierte PAM-Stack zählt aufeinanderfolgende Fehlversuche mit pam_faillock und sperrt das Konto, sobald der deny-Schwellwert erreicht ist. Wer lediglich einen gültigen Benutzernamen erraten hat - nie das Passwort -, kann diesen Zähler also absichtlich auslösen und die echte Administration vom Host aussperren. Das Ergebnis ist eine Dienstverweigerung, die vollständig vom Schutzmechanismus selbst erzeugt wird.
SSH Protector verlagert die Entscheidung vom Userspace an den netfilter-Input-Hook
Der SSH-Protector-Daemon korreliert fehlgeschlagene Authentifizierungsereignisse je Quellnetz und setzt eine nftables-Regel, die das gesamte /24 des Angreifers verwirft. Sobald diese Regel existiert, verwirft netfilter die Pakete im Input-Hook des Kernels - bevor sshd eine Verbindung annimmt, bevor ein PAM-Durchlauf stattfindet und bevor irgendetwas ins Journal geschrieben wird. CPU-Last, Journal-Volumen und die Zahl der Rateversuche, die die Passwortprüfung erreichen, sinken gleichzeitig.

