#Homelab · 5 Min. Lesezeit · Tim Rinkel

UNSICHTBAR IM HERZSTÜCK! Dein Load-Balancer liest heimlich jede Anfrage mit

UNSICHTBAR IM HERZSTÜCK! Dein Load-Balancer liest heimlich jede Anfrage mit

Dein Reverse Proxy ist die Stelle, an der die Verschlüsselung endet. Alles, was ein Besucher schickt, liegt dort für einen Moment im Klartext — Cookies, Anmeldedaten, Formularinhalte. Wer diesen einen Prozess kontrolliert, braucht keine der Anwendungen dahinter mehr.

Genau dort hat Rapid7 Labs ein bislang unbekanntes Linux-Werkzeug gefunden. Es steckte bei zwei südkoreanischen Organisationen — einem Automobilzulieferer und einem Medienhaus — direkt in der HAProxy-Programmdatei. Nicht daneben, nicht als Modul: einkompiliert. Die Angreifer haben es in Debug-Strings selbst benannt: ted.

WICHTIG ZUERST: Das ist keine HAProxy-Lücke

Bevor du losrennst und aktualisierst — das hilft hier nicht. Es gibt keine Schwachstelle in HAProxy, die das ermöglicht hätte. Der Angreifer muss vorher Code auf dem Host ausführen und die laufende Programmdatei ersetzen können. Das ist eine Lieferketten- und Nachnutzungsgeschichte, kein Update-Problem.

Trotzdem sagt ein Detail viel über die Opfer aus: Beide liefen auf HAProxy 2.8.12, veröffentlicht am 8. November 2024. Aktuell ist in diesem Zweig 2.8.28 vom 27. August 2026 — sechzehn Point-Releases später. Der HAProxy-eigene Bug-Tracker listet für 2.8.12 529 bekannte Fehler, einen davon als kritisch und sechzehn als schwerwiegend eingestuft.

Das Implantat ist so eng auf diese Version zugeschnitten, dass es die internen Datenstrukturen an festen Speicher-Offsets ausliest. Wer aktualisiert, macht es damit unbrauchbar — für den nächsten Angriff, nicht für den bereits laufenden.

DIE AUFRÄUMARBEIT KOMMT ZUERST

Bevor ted überhaupt anfängt zu arbeiten, prüft ein Vorlader, ob er Root-Rechte hat und ob HAProxy und cron laufen. Dann räumt er auf:

  • Er überschreibt crond und setzt dessen Zeitstempel auf den von /usr/bin/ssh — die Datei sieht damit so alt aus wie das restliche System.
  • Er löscht die Stichwörter tmp, wget, cron und crond aus der bash_history und aus sechs Systemprotokollen, darunter auth.log und audit.log.

Nicht die ganze Datei — nur die Zeilen mit den Spuren. Wer solche Logs nicht zentral wegschreibt, hat danach ein sauberes Protokoll und ein sehr schmutziges System.

SO STEUERT DER ANGREIFER SEINEN PROXY

ted klinkt sich in die HTTP-Verarbeitung von HAProxy ein und liest die entschlüsselten Anfragen, bevor sie an deine Backends gehen. Mitgeschnitten werden Quell-IP, Host-Header, Referrer, User-Agent, Cookies — und alles, was auf vom Angreifer definierte Suchmuster passt.

Die Steuerung selbst sieht aus wie ganz normaler Verkehr. Der Operator ruft einen bestimmten Bildpfad auf. Das Implantat zählt interne Zähler herunter, legt den Befehl in eine benannte Pipe unter /tmp und antwortet mit einem gewöhnlichen HTTP/1.0 200 OK. Kein eigener Port, kein auffälliger Dienst.

Besonders perfide ist der Umgang mit manipulierten Seiten. ted liefert sie nur aus, wenn vier Bedingungen gleichzeitig passen: der richtige User-Agent, eine passende Regel auf URL oder Referrer, eine Freigabeliste mit exakter IP oder /24-Netz — oder ein Operator-Schlüssel im Feld Accept-Language. Der Header Accept-Ranges wird dabei entfernt. Ein normaler Besucher sieht nie etwas Ungewöhnliches. Ein gezielt ausgewähltes Opfer bekommt eine veränderte Seite.

NICHT ALLEIN UNTERWEGS

Rapid7 fand weitere trojanisierte Programme auf denselben Systemen: einen sshd, der eingegebene Passwörter mitschreibt, dazu manipulierte Versionen von agetty, atd und polkitd. Dazu kommt ein Fernzugriffswerkzeug, das die Forscher curlRAT nennen — es meldet sich nur alle zwölf Stunden und läuft ausschließlich, wenn es eine Virtualisierungs-Kennung findet.

Die Zuordnung erfolgt mit mittlerer Zuversicht nach Nordkorea. Die verwendeten Domains sind in der öffentlichen Datenbank maltrail als APT37 gelistet. Alle sechs bekannten Domains, darunter img.monderhouse[.]space, lieferten am 4. September bereits keine DNS-Antwort mehr.

WAS DAS FÜR DEIN HOMELAB HEISST

Nüchtern: Du bist nicht die Zielgruppe. Das hier war ein gezielter Angriff auf zwei konkrete Organisationen. Der Lerneffekt ist trotzdem übertragbar.

  • Version prüfen. haproxy -v sagt dir in einer Sekunde, wie viele Jahre du hinterherhinkst.
  • Integrität prüfen. Unter Debian und Ubuntu vergleicht debsums haproxy die installierten Dateien mit den Prüfsummen des Pakets. Eine geänderte Programmdatei fällt sofort auf.
  • Logs außer Haus. Wenn deine Protokolle nur auf dem Server liegen, den jemand übernommen hat, sind sie wertlos. Ein zweiter Zielort ist der billigste Schutz gegen selektives Löschen.
  • Zeitstempel misstrauen. ted hat gezeigt, wie leicht sich das Änderungsdatum fälschen lässt. Verlass dich auf Prüfsummen, nicht auf ls -l.

Rapid7 ist bei der Bereinigung deutlich: Netzwerkverkehr korrelieren, Speicher analysieren, Programmdateien auf Integrität prüfen. Ein Update repariert einen bereits infizierten Host nicht.

Häufige Fragen

Muss ich meinen HAProxy jetzt sofort aktualisieren?
Aktualisieren ist immer richtig, aber es ist nicht die Antwort auf diese Meldung. Es gibt keine HAProxy-Schwachstelle, die den Angriff ermöglicht hätte. Der Angreifer hatte bereits Root und hat die Programmdatei ausgetauscht. Ein Update schützt vor anderen Problemen — und macht das versionsgebundene Implantat für die Zukunft unbrauchbar.
Wie erkenne ich eine ausgetauschte Programmdatei?
Über Prüfsummen aus der Paketverwaltung. Unter Debian und Ubuntu leistet das debsums haproxy, unter RPM-Systemen rpm -V haproxy. Beide vergleichen die Dateien auf der Platte mit dem, was das Paket ausliefern sollte. Auf den Zeitstempel ist kein Verlass — den hat das Implantat nachweislich manipuliert.
Bin ich als Privatperson mit einem Reverse Proxy im Homelab gefährdet?
Nach heutigem Stand nicht durch diese Kampagne. Betroffen waren zwei gezielt ausgewählte Organisationen in Südkorea, ein Automobilzulieferer und ein Medienhaus. Die Bauweise ist trotzdem lehrreich: Der Reverse Proxy ist die Stelle, an der der Verkehr im Klartext vorliegt.
Warum fiel das nicht in den Logs auf?
Weil das Implantat die Logs vorher aufgeräumt hat. Es löscht gezielt einzelne Zeilen mit bestimmten Stichwörtern aus sechs Systemprotokollen und aus der bash_history, statt ganze Dateien zu leeren. Eine fehlende Logdatei fällt auf, ein paar fehlende Zeilen nicht.
Was bedeutet die Zuordnung mit mittlerer Zuversicht?
Sie heißt, dass die Indizien in eine Richtung zeigen, aber nicht beweisend sind. Hier sind es unter anderem die genutzten Domains, die in der öffentlichen Datenbank maltrail der Gruppe APT37 zugeschrieben werden. Für die Frage, was du auf deinem Server tun solltest, ist die Zuordnung ohnehin zweitrangig.

Quellen

Kommentar hinterlassen

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