Erkennung von Angriffe anhand von SSH Hostkeys

SSH Angriffe werden in der Regel von Systemen aus durchgeführt, die bereits selbst auf die gleiche Weise kompromittiert wurden. Folglich handelt es sich oft um UNIX oder Linux Systeme und es ist ein SSH-Server aktiv. Um einen Angriff früh zu erkennen, sammeln manche Projekte die IP-Adressen angreifender Systeme (z.B. DenyH0st [3]). Alternativ können die Fingerprints der Hostkeys der angreifenden Systeme verwendet werden, um diese erneut zu erkennen. Der Vorteil liegt in der Unabhängigkeit von der IP-Adresse:

Die Wiedererkennung mit Hilfe verschiedener Merkmale wurde anhand von 12858 Angriffen untersucht, die zwischen dem 15. Februar und dem 15. November 2012 von SSH-Honeypots aufgezeichnet wurden. Die Ergebnisse wurden im Februar 2013 im Konferenzband des 20. DFN-Workshops in Hamburg [4] und im Rahmen der Frühjahrsfachgespräche der GUUG in Frankfurt vorgestellt [5]. Weitere Analysen wurden auf der 6. Secure Linux Administration Conference (SLAC) in Berlin vorgestellt [7] (z.B. das Geheimnis um die allgegenwärtigen Hostkeys). Insgesamt zeigte sich eine höhere Wiedererkennungsrate bei Verwendung von Hostkeys als bei IP-Adressen.

Further analysis has been presented at the 6th Secure Linux Administration Conference (SLAC) in Berlin [7] (e.g. the mystery of the ubiquitous hostkeys). The data shows a slightly higher detection rate using SSH hostkeys instead of source IP addresses.

Wir laden interessierte Administratoren ein, dies selbst zu testen. In der folgenden Tabelle sind die Hostkeys angreifender Systeme der letzten zwei, vier bzw. acht Wochen verzeichnet. Die Listen werden täglich aktualisiert. Die Daten wurden durch SSH-Honeypots gewonnen und liegen jeweils mit und ohne Zeitstempel für den letzten Angriff vor.

  2 Wochen 4 Wochen 8 Wochen
Fingerprints fp-2w.txt fp-4w.txt fp-8w.txt
Fingerprints und Zeitstempel fp-ts-2w.txt fp-ts-4w.txt fp-ts-8w.txt

Der Prozess zur Erhebung der Daten ist automatisiert und wurde sorgfältig geprüft. Leider können wir dennoch Fehler nicht komplett ausschließen und übernehmen daher keine Garantie für die Korrektheit der Daten. Speziell muss immer mit einzelnen Falschmeldungen gerechnet werden (d.h. legitime Systeme, die dennoch auf einer Sperrliste stehen).

Ein Test von Systemen ist unterschiedlich möglich. Beispielsweise kann das Logfile des SSH-Servers per Skript verfolgt werden. Bei einem Anmeldeversuch wird der Hostkey des Quellsystems ermittelt. Dies kann z.B. mit dem Scan-Werkzeug nmap geschehen:

nmap -PN -n --script=ssh-hostkey -p 22 <IP-von-der-Login-erfolgte>
Die so ermittelten SSH Hostkeys können mit den oben bereitgestellten Listen verglichen werden. Wird eine Übereinstimmung gefunden, sollte ein Alarm ausgelöst werden. Wir freuen uns über Rückmeldung zum des Einsatz der Listen!