Weltweite ssh-Login-Attacken

Diese E-Mail kommt aus einer Mailingliste, ich reiche sie hier mal an das Publikum weiter. Vielleicht kann ja jemand der Person helfen:

Hallo!

Ich habe seit geraumer Zeit das zweifelhafte Vergnügen, eine nicht ganz unerhebliche Zahl an Angriffen via ssh zu beobachten (alles nur Login-Versuche auf Server). Konkret geht es um das Ausprobieren von Kombinationen aus Benutzernamen und Passwörtern.

Im Grunde kann einem das egal sein, wenn man Login via Passwort nicht
zulässt und stattdessen mit public/private key arbeitet. Allerdings wird das in den Logfiles inzwischen extrem auffällig und es vernebelt möglicherweise die Sicht auf ernstzunehmende Angriffe. Es handelt sich um mehrere Hundertausend Zeilen pro Woche in auth.log oder grob alle 10s ein Versuch im statistischen Mittel - möglicherweise mehr und mit steigender Tendenz.

Es gibt verschiedene Antwortoptionen, z.B.:

1.) Ignorieren - Vogel Strauß.
2.) Nur erfolgreiche Logins loggen - Drei Affen
3.) Blacklist erstellen
4.) Whitelist
5.) fail2ban
6.) VPN vorschalten
7.) Port knocking

Es gibt auch harte und weiche Rahmenbedingungen. Zwingend sind:

I) Die Guten brauchen immer Zugriff (Feuerwehraxiom).
II) Die Bösen müssen draußen bleiben (Polizeiaxiom).
III) Es handelt sich um einen isolierten Mietserver (Blech).

Wünschenswert sind:

A) Ich würde gerne sehen, was da passiert.
B) Ich möchte die Angreifer studieren und lernen.
C) Die Lösung soll transferierbar und anpassbar sein.
D) Die Lösung soll in ein universelles Konzept passen, ggf. mit
mehreren Komponenten.
E) Der Aufwand soll überschaubar sein.
F) Das Konzept soll nachvollziehbar sein.
G) Gegenmaßnahmen sollen keine Informationen leaken, die für den
Angreifer hilfreich sind.
H) To be continued…

Strauß und Affen mag man in der Natur beobachten oder im Zoo; meine Welt ist das nicht, sonst gäbe es diese E-Mail auch gar nicht.

Da sich II von selbst versteht, ist I die harte Nuss. Aus den Erfahrungen der letzten 20 Jahre kann ich sagen, dass auch ein sshd manchmal leise Servus sagt. Da die Möglichkeit des Zugangs robust gestaltet werden soll, ist Redundanz erforderlich. Daher habe ich mehrere sshds am Start, teilweise in unterschiedlichen Konfigurationen. Leider bietet sich wegen III ein Zugriff über einen Jumphost und/oder über eine andere Netzwerkschnittstelle nicht an. Die Redundanz muss über eine einzige NIC realisiert werden. Eine Oder-Verknüpfung[8] über verschiedene Ports reicht
aus.

Ein VPN wäre im Sinne von II sehr schön, allerdings gäbe es dann ebenfalls das Redundanzproblem bzgl. I in sich und zusätzlich eine Und-Verknüpfung[9] mit sshd, was den Aufwand hinsichtlich E hochtreibt. Allerdings ist ein mehrfaches VPN eine Option. Vielleicht wird das eine zukünftige Ausbaustufe nach D.

Port knocking stört A, wäre aber in Verbindung mit einem kombinierten
Konzept die optimale Lösung. Dafür sollte man einen sshd reservieren.

Fail2ban kann bei direktem Kontakt eines offenen Portes im Netz auch
nützlich sein, ist aber pro Einzelangriff keine dauerhafte Lösung, wenn die Sperre temporär ist. Als zweite Verteidigungslinie ist es definitiv eine wichtige Waffe.

Damit kommen wir zum interessanten Teil - für diejenigen, die überhaupt bis hierhin durchgehalten haben. Eine Whitelist mit sonstiger Totalsperre widerspricht A und B, erfüllt aber E und funktioniert, solange ich aus dem richtigen Netz zugreifen kann.

Eine Blacklist ohne Whitelist riskiert Störungen von I. Beides ist in einem kombinierten Setup mit mehreren verschiedenen Eingängen noch robust genug. Die Kombination von beidem mit der zweiten Verteidigungslinie fail2ban ist noch eleganter.

Die technische Umsetzung erfordert etwas Denk- und Fleißarbeit, und initial ist der Aufbau der Blacklist widerliche Arbeit (der erste Teil betrifft die Struktur, der zweite die Daten), aber es lohnt sich. Man lernt bei der Recherche eine ganze Menge, sieht Muster in den Logfiles, und inzwischen kann ich mit statischen Listen (IPv4) weit über 95% filtern. Die verschiedenen Ports geben verschiedene Statistiken, und bzgl. angreifenden IPs und angegriffenen Ports kann man sogar ein Ausweichverhalten der Angriffe beobachten.

Der interessanteste Effekt war die mutmaßliche Annahme der Angreifer (ich habe natürlich nicht mit ihnen gesprochen), dass es einen Last-Trigger oder eine temporäre Sperre gibt. Die Zeit zwischen zwei Angriffen von der gleichen IP ist bei einigen mehrstufig nach oben gegangen. Ist G überhaupt erfüllbar?

Ebenfalls lässt sich vermuten, dass Portscans und Angriffe in einigen Strukturen getrennt sind. Das sieht man vermöge eines selbstgebauten TCP Loggings mit iptables.

Unerfreulich ist, dass es Firmen im Security Umfeld gibt, die ihre Ergebnisse der Portscans als Service im Web veröffentlichen. Damit muss ein Angreifer nicht selber scannen und taucht nicht im Log auf. Ist das eine Dienstleistung speziell für die Mafia? Hier wäre zu überlegen, ob man denen nicht einen völlig falschen Sachverhalt vorspiegelt. Einen offenen Port, den nur die sehen, und der deren Datenbestand mit einer Halluzination verseucht. Damit könnte man auch sichtbar machen, wer (im Sinne welche angreifende IP) sich an diesem Datenbestand bedient. Wenn die Grundstruktur steht, hat man eine Honeypot-Spielwiese.

Noch eine Erkenntnis: Dial-Up mit infizierten Privatrechnern taucht kaum auf - was an meiner verzerrten Wahrnehmung und der Reihenfolge der Sperren liegen kann. Cloudprovider von gross bis klein sind aber episch vertreten. Entweder mieten sich Angreifer die Ressourcen, die Kunden sind unfähig Ressourcen abzusichern oder die Cloudprovider stellen idiotisch schlecht abgesicherte Standardkonfigurationen für ihre Kunden bereit, weil kein Geld für geschultes Personal da ist. Es wird auch nicht besser werden: wenn heute die Jobs fehlen, wer soll dann in dieses Berufsfeld gehen und morgen die Arbeit machen? Security belastet den Shareholder Value.

Daher heute ein Menü im Sternerestaurant und morgen dann die Henkersmahlzeit. Das muss die Nachhaltigkeit sein, von der alle reden. Oder doch eher die spätrömische? Der Fachkräftemangel trifft aber auch die Angreifer. Aus dem log:

| error: kex_exchange_identification: client sent invalid protocol identifier „GET / HTTP/1.1“

Fällt der Cybercrime ROI so klein aus, dass man sich nur noch Azubis leisten kann? O tempora, o mores!

Das Thema ssh verdient definitiv eine Vertiefung. Die von den Distributionen gelieferten Werkzeuge sind IMO nicht mehr hinreichend zeitgemäß, um Infrastruktur im Netz sinnvoll zu betreiben. Es ist nicht die Gefährlichkeit der Angriffe, sondern die Datenflut und die Gefahr der Abstumpfung, die mir Sorgen bereitet. Und die nächste Iterationsstufe steht natürlich vor der Tür: KI. Damit kann man anderen Leuten dann vollautomatisch auf den Senkel gehen.

1 Like

Wieso denn helfen??

Der Text soll doch nur suggerieren, dass der Schreiberling minimum den Preis für den IT’ler des Jahrzehnts verdient hat.

Der eigentliche Inhalt und das Gejammer über die Angriffe auf seine SSH-Ports, ist so alt, wie es das Thema „Remote-Serveradministration“ gibt. Vor 30 Jahren musste man auf NT 3.5.x / 4.x / 2000 sogar noch die SSH-Unterstützung kompliziert selber installieren, da dies seitens MS nicht nativ mit an Bord war. Seit ca. 20 Jahren (+), seitdem jeder Internetnutzer sich Server anmieten kann, ist SSH der Standard für den Remote-Zugriff, da Büchsen (VPS / Dedi) auf Linux-Basis keine grafische Oberfläche besitzen und man ja irgendwie auf die Shell kommen muss, also per Secure Shell (SSH1 / SSH2).
Egal, ob vor 20 Jahren oder heute aktuell…diese Server wurden schon immer mit einer minimalen Standardkonfiguration (SSH / SFTP = 22, FTP = 21 etc.) an den Kunden übergeben.
Der mietende Kunde war immer schon, für die eigentliche und komplette Konfiguration selber verantwortlich!! Das hat NICHTS mit fehlenden oder schlechten Personal bei den Anbietern zu tun. Für die Flitzpiepen, die es nicht hinbekommen oder nur rumjammern, gab und gibt es schließlich die Möglichkeit, einen Server mit Hypervisor wie z.B. KVM oder anderen containerbasierten Systemen sich anzuschaffen!

Das SSH über die vielen Jahre nun zum populärsten Remote-Zugriffsprotokoll geworden ist und dadurch natürlich auch die meisten Zugriffsversuche und / oder Angriffe abbekommt, sollte wohl klar sein. Absichern dieser Ports und der dahinter liegenden Maschinen ist seit jeher Standard für jeden FiSi…!!!

Diese Zugriffsversuche, worüber der Schreiberling jammert, sind sehr oft gar keine wirklichen Angriffe, auch wenn sie auf den ersten Blick so aussehen. Alleine die großen Suchmaschinen, wie Shodan, Censys, FoFa, CriminalIP etc. pp. scannen mehrfach die Woche das KOMPLETTE Internet z.B. nach offenen SSH-Zugängen.
Hinzu kommen die täglichen millionenfachen Scans von Unternehmen und privater Seite aus. Auf einem meiner Server läuft auch 24/7/365 ein OpenVAS-Scanner.
Und dann kommen die illegalen bzw. kriminellen Scans und Zugriffsversuche heutzutage, die zumeist natürlich nicht von irgendwelchen einzelnen Geräten ausgehen. 98% der nicht gewollten Zugriffe erfolgen über Bot-Netzwerke, die ein rollierendes System von Socks oder anderen Proxys verwenden, um eine Rückverfolgbarkeit so schwierig wie möglich zu gestalten…

BTW → Das hat nixx mit Fachkräftemangel zu tun. Das schicken die ihm nur, damit er was zu jammern hat!!

:laughing:
Oder man will den Speznaz auf der anderen Seite vorgaukeln, dass man als Angreifer zur Zeit auch am Fachkräftemangel leidet!

1 Like

auch eine alternative zu Fail2ban
https://portguard.net/

Ich finde persönlich das Wort „Fachkräftemangel“ gehört schon seit längerem zum UNWORT des Jahres !!!

Es ist kaum fassbar, wie oft dieser „Phrasendrescher“ von den Politikern in den Mund genommen wird. Schaut man sich das Problem detaillierter an, fällt einem auf, das es irgendwie für irgenwelches Alibi-Gelaber herhalten muss.

Fachkräftemangel stoppen - Durch „IT-Leute“ aus Indien… ?!
Die so gut „deutsch“ verstehen, wir wir „indisch“

Pflegekräfte aus Brasilien, Chile und sonst wo her…

Nicht falsch verstehen, aber das Wort „Fachkräftemangel“ ist meines Erachtens eine „Blamage“ unserer Politik / Gesellschaft. Hier wird grosses Fehlversagen irgendwie auf ein Wort „gebeamt“…

PS. Und WIESO kann man solche „Fachkräfte“ nicht in Deutschland generieren… WARUM ?!

Ich will es euch sagen, weil unser LAND auf dem absteigenden Ast ist.
Wir sind doch so gesehen nur „Weichspüler mit Samthandschuhen“,
und bereits vor Jahren die „Schranken“ falsch gestellt wurden.

Anschluss verpasst… :wink:

Nochmal zum eigentlichen Thema - Back to the Topic
Zu der Email aus der Mailingliste, vielleicht kann jemand der Person helfen.
Ich sehe das genauso wie @vip
Wer schon selbst alles „Wissen“ in einem Topf wirft, der braucht nicht wirklich Hilfe, sondern erwartet im besten Fall „Belobigung“ und „Huldigung“.
Aber auch die spare ich mir auf…, so wie die meisten Leser hier.

1 Like

Einfach den SSH-Port 22 auf 1024 und höher (unprivilegierte Ports) setzten & dann ist Ruhe.:+1:Ggf. die Firewall auf den neuen Port anpassen^^

Klar ist dann Ruhe, aber nicht für lange.

Sobald die Portscanner den neuen Port gefunden haben, ist wieder alles beim Alten. Das kann 1 Tag gehen oder 1 Monat, je nach dem wie ‚beliebt‘ dein Server ist.

Dafür gibts doch Portsentry od. Fail2Ban…

Fail2Ban hilft bei einem Portscan gar nichts, da es nur im Log nach fehlerhaften Loginversuchen sucht. Die kommen aber nur vor, wenn der Port bereits bekannt ist.

Auch andere Abwehrmassnahmen helfen nur gegen simple Postscans.

Mal ein Beispiel: Wenn du als Angreifer etwas mehr als 65000 IP-Adressen hast, könntest du für jeden Scan eines einzelnen Ports eine eigene IP-Adresse verheizen. Benutzer eines Botnetzes haben durchaus solche Kapazitäten. Das ist praktisch nicht dedektierbar.

Früher oder später haben sie deinen geänderten SSH-Port und deine IP zusammen mit deinem neuen Port kommt in die Datenbank der Cybermafia, welche die Datenbank zum Verkauf anbietet.

Es gibt verschiedene Möglichkeiten, SSH abzusichern…

Als erstes sollte man alle „üblichen verdächtigen Länder“ komplett rauskicken.
Kann man easy über Ipdeny (ipdeny.com/ipblocks/) machen…

Dann SSH auf einen „unprivilegierten & hohen“ Port setzen/runnen…
Ist schon mal die halbe Miete^^
/etc/ssh/sshd_config → Port 12345

Und jetzt der Clou…

  1. TOR + Hidden Service installieren/aktivieren
  2. ListenAddress in SSH auf 127.0.0.1 setzen

/etc/tor/torrc → …
HiddenServiceDir /opt/var/lib/tor/hidden_service/
HiddenServicePort 12345 127.0.0.1:12345

reboot & done…

Wer die generierte Onion-Adresse+Port nicht kennt, kommt erst garnicht bis zum SSH-Login^^

1 Like

Du bist aber auch ein rechter Bastler. :slight_smile:

In einem professionellen Umfeld kann man das nicht brauchen.

VPN und kein offener SSH-Port nach aussen oder wenn ein offener SSH-Port nötig ist, dann mit Zugang mit Public Key oder Passwort mit hoher Sicherheit. Das wären so die üblichen Verfahren.

Mein simples SSH-Setup funktioniert seit Jahren problemlos bei meinen Kunden (ca. 30 Server + ca. 500 Domains^^) :+1:

Da haben wir eindeutig nicht die gleiche Kundenbasis. :grin:

1 Like

Mag ich nicht abstreiten^^
Meine Kunden sind i.d.R. im dt. Mittelstand angesiedelt. :+1:

Die haben eher einen Focus auf „Qualität“ anstatt „Quantität“ beim Thema IT-Sicherheit & Co.:sunglasses:

Was aber bislang noch nicht zu lesen war:

Für den reinen SSH-Login einen eigenständigen User kreieren, um damit den SSH Root-Login zu unterbinden.

Ändere in der Datei /etc/ssh/sshd_config die Zeile…

PermitRootLogin yes

in

PermitRootLogin no

Danach die Konfigurationsdateien des Dienstes neu einlesen:

/etc/init.d/ssh reload (Debian/Ubuntu)
/etc/init.d/sshd reload (SUSE)

Man muss schließlich immer damit rechnen, dass ein Angreifer erfolgreich die Abwehrmaßnahmen knackt. Noch fataler wäre es dann, wenn er dann direkt „voll administrativ“ weiterarbeiten könnte!!
Nur mal so nebenbei bemerkt…
:wink:

1 Like

Kann Mann machen^^

PS: In div. NAS (Storage-Servern) ist dies bereits von „Haus aus“ so vordefiniert^^

Dann wäre der Angreifer ja schon an einer UTM-Appliance (oder anderer FW) vorbei…
IMO müsste ein Angriff schon eine Sicherheitsschicht vorher abgefangen werden!

1 Like