Rohe Gewalt

Oh Wunder, es gab diese Zeiten, wo Kinder noch draußen gespielt haben, anstatt ihre Fertigkeiten als zukünftiger Raumpilot am Flugsimulator zu trainieren. Aber schon damals trafen wir Vorsichtsmaßnahmen, damit die Jungs von der gegnerischen Gang nicht unsere Fahrräder klauten. Ein Fahrradschloss war eine schnelle und günstige Möglichkeit, groß genug, um das Rad an einer Straßenlaterne anzuschließen. Das Problem war nur, dass ich den Schlüssel regelmäßig verloren habe.

Irgendwann kamen dann Fahrradschlösser auf, die mit einem Zahlencode arbeiteten. Den zumeist dreistelligen Code musste man sich merken, aber auch damit hatten wir in der Regel kein Problem. Und 1000 Möglichkeiten durchzuprobieren erschien uns sicher genug, „das schafft keiner“. Der offensichtliche Denkfehler dabei: Erstens sind keineswegs immer 1000 Versuche nötig, genausogut könnte nach 10 Versuchen das Schloss geöffnet sein. Auch die Vermutung, jeder Angreifer würde bei 000 beginnen und dann mit 001, 002, 003 weitermachen, greift zu kurz. Was, wenn ich 987 einstelle und der Gegner die Folge mit 999 beginnt und herunter zählt? Wie wäre es außerdem, wenn so typische Nummern wie „123“, „471“ (Kurzform für 4711, das gab es damals schon) oder gar „666“ (nur so ein Gedanke, die Sonderbedeutung kannten wir damals noch nicht) als erstes ausprobiert würden?

Attacke!

Der Titel dieses Beitrages ist die deutsche Übersetzung des englischen Begriffes „brute force“. Als brute force attack bezeichnet man eine Attacke, die systematisch alle möglichen Passwörter durchprobiert, in der Hoffnung, irgendwann das richtige zu finden.

Eine Abwandlung davon ist der sog. dictionary attack (Wörterbuchattacke), bei der nicht alle möglichen, sondern (nur) alle in einem Wörterbuch enthaltenen Passwörter durchprobiert werden. Beide Techniken habe ich oben am  Fahrradschloss beschrieben.

Erkennbarkeit eines Angriffes

Die Erkennbarkeit war beim Zahlenschloss nicht so einfach. Vielleicht hatte ich die Gewohnheit, nach dem Verschließen immer 000 einzustellen. Wenn der potentielle Dieb dann gestört wurde, ließ er vielleicht eine andere Nummer eingestellt, woran ich hätte erkennen können, dass jemand dran war. Aber wie viele Nummern er schon durchprobiert hat, hätte ich nicht feststellen können, vor allem nicht, wie lange er es schon probiert hat.

Mit Websites und serverseitigem Logging ist das ein wenig einfacher. Dort können wir solche Attacken bemerken, indem wir die fehlgeschlagenen Anmeldeversuche mit IP und Zeitstempel loggen und dann versuchen, ein Muster zu erkennen.

Gegenmaßnahmen

Aber nur weil es passiert, bedeutet das nicht, dass wir nichts dagegen tun können. In WordPress-relevanten Blogs wird immer wieder empfohlen, typische Usernamen wie „admin“ zu vermeiden, und statt dessen einen kryptischen Namen und ein ebensolches Passwort zu verwenden. Beides kann z.B. durch Keepass generiert werden. Da man den Admin-Account nur selten braucht, ist der „Umstand“ vertretbar. Natürlich sollten diese Daten dann nicht im Browser gespeichert werden.

Bei aktuellen Neuinstallationen wird „admin“ meines Wissens ohnehin nicht mehr verwendet. Statt dessen muss der User einen eigenen Usernamen eingeben. Aber ältere Installationen könnten den früheren Standard immer noch beinhalten, da sollte man also sicherheitshalber mal nachschauen.

Das Plugin All in one WP Security kann sehr viel. Unter anderem können damit fehlgeschlagene Loginversuche überwacht werden. Nach einer einstellbaren Anzahl Fehlschläge kann die betreffende IP-Range sodann für eine ebenfalls einstellbare Zeitspanne gesperrt werden. So ist im Standardfall z.B. nach 3 falschen Logins erstmal eine Pause von einer Stunde angesagt.

Dieses Muster ist in nebenstehender Tabelle leicht erkennbar. Es handelt sich um eMails, die das beschriebene Plugin dem Administrator jedesmal schickt, wenn mal wieder drei Fehlanmeldungen in kurzer Folge zu einer temporären Sperre der IP-Range geführt haben. Unter Berücksichtigung der einstündigen Pause ist der Abstand dieser Mails (und damit der vorangegangenen Versuche) von nur wenige Minuten über einer Stunde sehr interessant! Ich habe nun den Sperrzeitraum etwas erhöht und werde das weiter beobachten.

Übrigens hat der Angreifer immer ein und die selbe IP-Adresse verwendet und es immer mit dem Usernamen „admin“ versucht. Ich denke, die mangelnde Rechtmäßigkeit sollte damit jedem klar sein.

Hintergrund

IP-Adressen sind nötig, ohne diese könnte niemand eine Website abrufen. Leider sind sie – nach allem, was man so liest – aber auch personenbezogene Daten. Zwar wird die IP-Adresse fast bei jeder Einwahl in das Netz neu vergeben, aber zusammen mit dem genauen Zeitpunkt kann über die Logfiles des Providers der Vertragspartner ausfindig gemacht werden. Allerdings ist der Vertragspartner dann nicht auch zwangsläufig der konkrete Benutzer. Man denke nur an eine Familie, die naturgemäß nur einen Internetanschluss besitzt, der dann allen (auch den Gästen) zur Verfügung steht. Noch umfangreicher ist die Anzahl User in einer Firma, die prinzipiell nach dem gleichen Muster „Internet für alle“ bereit stellt. Und richtig schwierig wird es, wenn der Zugangsanbieter Carrier-grade NAT einsetzt.

Eine Rechtfertigung für das zeitweilige Speichern dieser IP-Adressen könnte hier Art. 6 Abs. 1f DSGVO liefern. Immerhin werden bei diesem Vefahren ja nicht alle Besucher und deren Aktionen geloggt, sondern nur die Vorgänge, bei denen ein Sicherheitsrisiko bestehen kann. Außerdem werden die tatsächlichen User nicht identifiziert, denn das würde eine Anfrage an jeden einzelnen Provider voraussetzen.

Ich sehe es also als gerechtfertigt an, IP-Adressen fehlgeschlagener Login-Versuche zu speichern. Und den Hacker möchte ich sehen, der mich nach DSGVO verklagt, weil ich ihm den Einbruch in meine Systeme unangemessen erschwert habe.

 


SmallInvoice Logo

Ähnliche Artikel:

AuthorChristoph Jüngling

Selbständiger Softwareentwickler und Seminarleiter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

siebzehn − 3 =