Laßt uns mal über Systemd’s SSHD VSOCK reden.

Die Metapher „In Teufelsküche kommen“ kennt Ihr vermutlich. Etwas, daß ich nach den Fedora 43 Updates auch noch festgestellt habe war, daß systemd beim Booten folgende Meldung anzeigen lies:

Try contacting this VM's SSH server via 'ssh vsock%1' from host.

Jetzt denkt Ihr Euch natürlich sofort: „Was verflucht meint das?“  Es meint die oben genannte Küche.

Erstmal zur Erklärung: Was sind VSOCKets ?

Wie andere UNIX SOCKETS auch, handelt sich erst einmal um normales Socket, das als Kommunikationskanal zwischen Anwendung A und B dient. Im krassen Unterschied zu einem normalen Socket innerhalb eines PC oder VM, baut sich über ein VSOCK eine direkte, unsichtbare „Standleitung“ zwischen dem Host und einer VM auf. 

Wenn mal also einen Xen, VMWare oder eine Proxmox Server betreibt, kann man vom eigentlichen Serversystem direkt per SSH in die VM einloggen, vorbei an allen Firewalls, Netzwerkeinstellungen und Sicherheitsrichtlinien. Was als feuchter Traum eines VMWare Admins begonnen haben dürfte, weitet sich schnell zu einem gravierenden rechtlichen Problem aus, wenn der Serverbereiber die VM an einen Kunden vermietet, also nicht selbst die VM betreibt.

Die Bedrohungslage ändert sich mit dem Tunnel unter der Firewall

Durch die reine Bereitstellung des VSOCKets in der VM,hat sich die Bedrohungslage komplett geändert. Was vorher getrennt war, ist jetzt verbunden und zwar ohne die Möglichkeit es zu blocken. Fairerweise muß man sagen, daß auch eine VSOCK Verbindung zum SSHD Authorisierung braucht. Einfach so einloggen ist nicht.

Normale SSH Server haben wegen der ganzen Bruteforceattacken entweder Fail2BAN oder NIDS Systeme laufen, die Bruteforce-Angriffe erkennen und im Falle eines Angriffes die Angreifer-IP Blocken. Bei einem VSOCK Connect gib es keine IP die man blocken könnte, man müßte das Socket abschalten.  Einen Brute-Force stoppen kann daher schwer werden und da kommt Malware ins Spiel [1]. Es wäre also möglich, einen Server zu hacken, und sich dann per VSOCK und BruteForce in die VM rein zuhacken., ohne das jemand was merkt.

Selbst wenn wir das mal außer Acht lassen und annehmen, daß der Serverbetreiber in die VM einloggt, könnte es zu einer Straftat werden. Wenn der Serverbetreiber keinen Zugriff mit dem Kunden vereinbar hat, um z.B. Software zu managen, dann stellt der Login in das System einen unbefugten Zugriff dar, der nach §202a StGB strafbar ist. Das wäre er auch, wenn er übers Netzwerk käme. Der Umstand, das der Serverbetreiber einfach die Platte der VM so mounten könnte um an die Daten zu gelangen, ist lediglich eine Variante des Zugriffs.

Könnte ein Systemd Entwickler dafür belangt werden?

Die Frage habe ich Gemini gestellt und der meinte, der Hoster müßten jedes Changelog jeder eingesetzten Software auf Änderungen überwachen, die die Systemintegrität beeinflussen könnten und in den stände das mit dem VSOCK drin, damit wärs nicht mehr heimlich und somit nicht strafbar. Soviel zur künstlichen Intelligenz, denn die natürliche Intelligenz hat das unter „faktische Unmöglichkeit“ ausgeschlossen, da das nicht mal theoretisch leistbar ist, was man an der nicht-leistung der „künstlichen Intelligenz“ gesehen hat, die folglich auch nicht in der Lage wäre diesen Job zu leisten

Wenn der Kunde die VM mit Memoryencryption und Full-Disk-Encryption schützt, wäre ein heimlicher Zugriff per VSOCK eine nette Möglichkeit um doch an die Daten zu gelangen, z.b. weil Strafverfolgungsbehörden das so angeordnet haben ( EU Antiterror Gesetz)[übrigens ein Umstand für den das Systemdteam einen auf Github blockt, wagt man das scherzhaft zu erwähnen 😉 ][2]. Etwas, daß nicht möglich wäre, wenn man das gar nicht erst starten würde und damit kommen wir zum eigentlichen Punkt:

Systemd startet das SSHD Vsocket nach der installation automatisch.

Ein Umstand der Admins natürlich Kopfschmerzen und Herzrasen verursacht, weil sich da ungefragt etwas an Ihren Sicherheitseinstellungen vorbei mogeln will. Ums kurz zu machen, so werdet Ihr das los:

systemctl disable –now sshd-vsock.socket
systemctl mask sshd-vsock.socket

Da stellt sich natürlich die Fragen, wieso das automatisch aktiviert ausgeliefert wird, statt es deaktiviert auszuliefern. Es ist ja eine nicht ganz unerhebliche Änderung am System, wenn ich da ein Loch durch alle Firewalls bohre und es dem Admin dann erst beim Boot mitteile, oder wusste Einer von Euch das schon vor meinem Artikel? Die Anzahl an „Ja“s wird sich wohl in Grenzen halten.

IMHO 

Ist das weder guter Stil noch genial durchdacht worden, zumal sich rausstellte, daß z.b. ProxMox keinen Plan hat, wie es zu dem VSOCK der VM verbinden soll, ergo der Dienst überflüssig war. Ich kann mir vorstellen, daß wenn man selbst Container und VM auf einem Server betreibt, es ok ist, wenn es funktionieren würde, obwohl ich kein Dockerimage mit SSH Zugang gefunden habe. ( nicht, das ich intensiv danach suchen würde 😉 )

Aber mal ehrlich: Spart es wirklich Zeit ein? Eher nicht, weil die VM vorher ja schon erreichbar sein mußte per SSH und das über Jahre und Jahrzehnte. Ergo ist der Workflow alt eingefahren und kommt ohne Vsock aus. Einzig die Verteilung von Datenpaketen über mehrere VM könnte mangels Netzwerklimit etwas schneller gehen, aber auch nicht wirklich, weil man es ja auch erstmal auf den Host holen muß, um es dann weiter zu verteilen. Da braucht es schon GB große Datenmengen, damit sich das lohnt.

Wäre das deaktiviert ausgeliefert worden, wärs mir egal gewesen, aber so, mußte ich was sagen.

[1] https://seclists.org/oss-sec/2025/q4/298

[2] https://github.com/systemd/systemd/issues/39640

 

Ist imap sicherer als pop3?

Autsch.. der letzte Artikel über Outlook hat ganz schön viele  Kommentare im Netz erzeugt, weniger hier an der Quelle, sondern auf Reddit, FaceBlöd und Slashdot, weil ich mir dachte, ich schreib da mal einen „Danke dafür Fedora 43“ Artikel ins Fedora-Magazin. Tschuldigung, mache ich nie wieder 😀

Ist IMAP sicherer als POP3?

Ich hätte nie gedacht, daß ich mich mal damit befassen müßte, aber ok, hier ist die Antwort…. Trommelwirbel… Pompongeraschel… „Nein!“

Ok, Danke, ich bin dann mal weg …   ok, also, das ist so:

DISCLAIMER: Der Inhalt stark simplifiziert, so daß alle folgen können, wers genau wissen will, zieht Euch die RFCs aus der Zeit rein. 

Das letzte Jahrtausend

POP3 und IMAP haben mit unverschlüsselten Verbindungen auf Port 110 und 143 angefangen und das schon weit vor 1998. Dabei wurden wegen PLAIN TEXT die Passwörter in Klarschrift übermittelt. Da das irgendwann abgefangen wurde, hat man tatsächlich erstmal nur die Authentifizierung verschlüsselt… oder so ähnlich… unglaublicherweise galt BASE64 damals als Schutz und die simple Login Methode war BASE64.encode(„username:password“). Ja, Facepalm ich weiß.

Als irgendwann Verschlüsselung in die Welt Einzug hilt, dachte man sich: Machen wir doch einfach einen TUNNEL von einem anderen Port (995) auf dem wir eine SSLv2/3 Verbindung vor den Klartextport ( 110 ) schalten .. dann leiten wir einfach das normale Protokoll was sonst zu 110 gegangen wäre dadurch. Das hat das Problem bis heute an sich gelöst.Das gleiche machte man für IMAP mit Port 993 der dann intern auf 143 ging.

SSL/TLS

Diese Tunnel hatten aber ein Problem dessen Ursache im SSLv2/3 liegt: Man kann vorher nicht sagen für welche Domain das ist, deswegen gibt es so nur ein Zert vom Server zurück, das meisten dann den Hostnamen vom Server hatte. Das hat sich erst mit der Einführung von SNI geändert, wo man vor dem Zertaustausch sagen konnte welches Zert für welche Domain man sehen will. Das machte es etwas besser. Das TLS nach der SSL Nachfolger ist, hatte es zu Beginn die gleichen Probleme.

Der Nachteil: man hatte zwei Ports, einen für alte unsichere Klienten, und einen neuen Port für begabte Programme mit Verschlüsselung. Resultat: Erhöhung der Komplexität in der Programmlogik und der Grafischen Bedienung und was das zur Folge hatte steht hier:

Outlook hat Emailverbindung nicht verschlüsselt

STARTTLS

Es gab aber noch einen konkurrierenden Ansatz: STARTTLS (STLS) . Dabei wird erstmal eine Klartextverbindung aufgebaut und gefragt „Hey Server, was kannst Du denn so an Zeugs“ und dann konnte man sehen, ob der STLS konnte oder nicht. Wenn er es konnte, wurde eine sichere Verbindung ausgehandelt und dann erst Username und Passwort übermittelt.

Der Vorteil: man brauchte die GUI nicht umbauen, weil das mit dem Portwechsel nicht nötig war. Man mußte also nur im Programm einen Block einfügen, der tested ob STARTTLS geht und es ggf. tun, danach gings normal weiter.

Im Endeffekt ist das beides gleichwertig, weil das Ergebnis das gleiche ist, mit einem nicht so entscheidenden Unterschied, bevor man STLS aktivierte wäre es möglich gewesen zu sagen, für welche Domain das Zert gebraucht wird und das ohne SNI. AFAIk, hat das aber so keiner implementiert.

Was die Fehleranfälligkeit angeht, liegt STARTTLS nach Punkten vor, trotzdem war das am Anfang eher unbekannt und POP3S und IMAPS haben sich zunächst durchgesetzt. Das konnten am Anfang fast alle Programme.

Fazit

Nehmt bitte eins von beiden, aber testet auch, ob das wirklich funktioniert. Wie ich das im Fedora Artikel beschrieben habe, könnt Ihr das einfach testen: Schickt Euch selbst eine Email und schaut in die Emailheader rein. Ihr findet Zeilen wie diese:

Received: from bastion01.fedoraproject.org ([38.145.32.11] helo=bastion.fedoraproject.org)
by s113.resellerdesktop.de with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384
(Exim 4.99.2)
(envelope-from <updates@fedoraproject.org>)

Jeder gute MTA( MailTransportAgent) aka Server wie Exim,Postfix usw. schreiben das dazu. Wenn man da nichts sieht ist es entweder nicht verschlüsselt gewesen, oder der MTA ist ein Ignorant 😉  Dann braucht Ihr ein ROOT-Terminal und TCPDUMP um den Netzwerkverkehr zu analysieren:

tcpdump -A -n -n port 110 or port 143

Wenn Ihr dabei den Inhalt Eurer Email sehen könnt, wars nicht verschlüsselt. Ende der Geschichte.

Outlook hat Emailverbindung nicht verschlüsselt

Ja, das Fedora 43 Update hatte eine spannende Offenbarung für alle Outlook Benutzer zur Folge, von der Microsoft nicht begeistert sein wird.

Outlook hat Emailverbindung nicht verschlüsselt

und das, obwohl SSL/TLS in den Kontoeinstellungen nachweislich aktiviert war.

Aber der Reihe nach… Ende Mai haben wir turnusgemäß unser ServerOS aktualisiert. Dabei wurde Fedora 42 mit Dovecot 2.3.x durch Fedora 43 und Dovecot 2.4.3 ersetzt. Dies erforderte nicht nur eine komplett neue Konfiguration, es verhinderte auch, daß über einen unsicheren Kanal Passwörter in Klartext übermittelt werden.

Wenn jemand das tat gab es in Outllook diesen Fehler zu bestaunen:

„-ERR [AUTH] Cleartext authentication disallowed on non -secure ( SSL/TLS ) connections.“ stammt tatsächlich vom Dovecot. Die kommt, wenn man über Port 110 mit Netcat (oder telnet 😀 )  eine Verbindung aufbaut und „USER“ / „PASS“ direkt da reinschreibt. Das wäre ein Klartextpasswort über einen Klartextport und das mag Dovecot nicht mehr, was gut so ist.

„Wir hatten doch SSL/TLS aktiviert!“ 

meldeten die Kunden und hatten Recht, es war SSL/TLS bei den Konto aktiviert, nur leider juckte Outlook das nicht, weil als PORT 110 für POP3 eingetragen war, hat Outlook statt einer „Das paßt aber so nicht zusammen Benutzer!„-Meldung einfach NICHTS gemacht und die Verbindung einfach nicht verschlüsselt, weil 110 der Klartextport ist und man für SSL 995 hätte angeben müssen. Beobachtet haben wir bislang nur POP3 Port 110, ich geh aber davon aus, daß es bei IMAP auch ist.

Mutmaßliches (latest) Outlook für MacOs

Ergo, haben Kunden wohl seit mehr als einem Jahrzehnt Ihre Emails im irrigen Glauben an die aktivierte Verschlüsselung stattdessen im Klartext abgeholt. Zur Zeit liegen mir passende Screenshots von Outlook vor, einzig die Versionsnummern fehlen noch, obwohl einer hatte noch Outlook 2007 im Einsatz. Gehen wir mal von der Annahme aus, daß alle nachfolgenden auch diesen Fehler hatten, da gleichlautende Meldungen auch von Outlook 2016 und neuer bekannt wurden, ist die Sicherheitslücke praktisch 20 Jahre im Einsatz und wäre nie aufgefallen, wenn Dovecot nicht was dagegen gehabt hätte.

Regress“ und „Schadensersatz

sind so Worte, die einem dabei durch den Kopf gehen. Den Schaden haben alle, die nach DSGVO zum Verschlüsseln der Emails verantwortlich gewesen sind und sich darauf verlassen haben, daß aktiviertes „SSL/TLS“ auch eine Verschlüsselte Verbindung bedeutet.

Den Serverbetreibern kann man hier keinen Vorwurf machen, da der Server nicht hellsehen kann, reagiert(e) er früher auf eine Klartextverbindung  wie das im POP3 RFC vorgesehen ist. Selbst wenn man jetzt eine verschlüsselte Passwortübertragung auf Klartextport benutzt, ändert das nichts daran, daß die unverschlüsselte Übertragung der Email selbst für Unternehmen und Organisationen ein Gesetzesverstoß ist.

Wenn diese Meldung bei betroffenen Unternehmen publik wird, könnte Microsoft ein kleines finanzielles Loch entstehen.

Kleines Reddit Update:

Auf Reddit kam die Frage auf, wieso man unverschlüsselte Passwort-Auth überhaupt zulässt. Das ist ganz einfach: Kompatibilität. Auf diese Server prasseln Verbindungen aus der ganzen geographischen und IT-Welt ein, meint: Du hast keine Chance einen einheitlichen Standard durchzusetzen, ohne dabei 10% der Nutzer auf die Füße zu treten. Solange der Transportkanal modern verschlüsselt ist, besteht IMHO auch kein Grund auf eine komplizierte Methode auszuweichen, da es keinen zusätzlichen Schutz bietet. Wichtiger wäre, Verbindungen über Klartextports nur noch mit STARTTLS zu erlauben, weil das wirklich die Mail und nciht nur die Auth schützen würde.

Was so eine Änderung in der Realität bedeutet, möchte mal nur an einer Mailprogrammauflistung darstellen:

Thunderbird für Linux, MacOs, Windows
Outlook 2007 Windows 7
Outlook 2013 Windows 8
Outlook 2016 Windows 10+11
Outlook 2019 Windows 10+11
Outlook 2024 Windows 11
Outlook for MacOS ( diverse inkompatible Versionen)
AppleMail ( einer der schlimmsten Clienten überhaupt )
Evolution ( Linux )
The Bat ( das war echt übel damals )
Geary ( Linux )
k9 Mail
Mail for Android
Java Mailx
Avira AntVir
Kaspersky
Avast
Bitdefender
Norten
G Data
M$ Defender
Sophos

und die Liste geht weiter und weiter und weiter.

Alle diese Programme müssen mit dem Server reden können und jeder spricht ein klein wenig anders mit dem Server. Sehr beliebt bei Mailfehlern sind die Antiviren MITM-Attacken wo sich das Mailprogramm zu einem lokalen Proxy verbindet, statt zum echten Server. Da knallt es alle Naselang, weil diese Software mit der heißen Nadel gestrickt geworden zu scheint.

Wenn man in dem Konglomerat von Mailklienten auch nur auf die Idee kommt, Plaintext als Authmethode nicht mehr anzubieten, dann macht sich das direkt proportional auf Deinem Gehaltscheck bemerkbar, weil Deine Kunden nämlich folgenden Standpunkt einnehmen: „Lief doch gestern noch!“

Schon dieser Outlook Bug hat Wellen geschlagen und das will man als Anbieter nicht wirklich. Stellt Euch mal vor, was erst passiert, wenn man Plaintext abschaltet und die ganzen Antivirenprogramme failen… da bin ich dann im Urlaub 😀

Update:

1. es gibt einen Nachfolgeartikel zur Frage on IMAP sicherer ist als POP3
2. Es kam die Frage nach der Orptunistischen Verschlüsselung auf, wobei es mit Klartext anfängt und dann wenns geht, verschlüsselt wird, wozu der Server STARTTLS können muß: Ja, können die natürlich alle.
3. Wenn Ihr darüber nachdenkt, setzt nicht Maßstäbe von 2026 ein, sondern von < 2010, da war SSL Luxus und vor allem meinte die SSL/TLS Checkbox auch wirklich SSL/TLS und gerade NICHT STARTTLS. Die meisten betroffenen Konten werden auch nicht in 2025 eingerichtet worden sein, sondern wurden über Jahrzehnte mit geupgraded, was das völlig erklären würde, weil das vom Entwicklerstandpunkt her ein echtes Problem darstellt, so lange Rückwärtskompatibel zu sein, ohne das was zerbricht.