- Das Paket Lotusbail ist ein Fork der legitimen WhatsApp-Web-API-Bibliothek Baileys und enthält Schadcode; es wurde in sechs Monaten mehr als 56.000 Mal über npm heruntergeladen
- Es stellt normal funktionierende API-Funktionen bereit, während es gleichzeitig WhatsApp-Anmeldedaten, Nachrichten, Kontakte und Mediendateien exfiltriert und an Server der Angreifer sendet
- Die Daten werden über mehrere Schichten aus RSA, AES, Base-91 und LZString verschlüsselt und verschleiert übertragen, wodurch Sicherheitsüberwachung umgangen werden kann
- Das Paket installiert eine Backdoor, die über einen hartkodierten Pairing-Code das Gerät des Angreifers dauerhaft mit dem WhatsApp-Konto des Nutzers verbindet
- Der Fall zeigt die zunehmende Raffinesse von Supply-Chain-Angriffen und unterstreicht die Notwendigkeit verhaltensbasierter Sicherheitsüberwachung, da eine Erkennung allein durch statische Analyse nicht möglich ist
Überblick über das Lotusbail-Paket
lotusbail ist ein Fork von @whiskeysockets/baileys und bietet dieselben WhatsApp-Web-API-Funktionen
- Das Senden und Empfangen von Nachrichten funktioniert ordnungsgemäß, weshalb Entwickler es wahrscheinlich ohne Verdacht installieren
- Es war sechs Monate lang auf npm registriert und konnte zum Zeitpunkt der Erstellung weiterhin heruntergeladen werden
- Hinter der eigentlichen Funktion verbergen sich jedoch bösartige Aktivitäten wie Diebstahl von WhatsApp-Anmeldedaten, Abfangen von Nachrichten, Sammeln von Kontakten und Installation einer Backdoor
Welche Informationen gestohlen werden
- Dazu gehören Authentifizierungs-Token und Sitzungsschlüssel, der gesamte Nachrichtenverlauf, Kontaktlisten inklusive Telefonnummern, Mediendateien und Dokumente sowie dauerhafter Backdoor-Zugriff
- Alle Daten werden vor der Übertragung an den Server der Angreifer verschlüsselt
Funktionsweise
Tarnfunktion, die tatsächlich arbeitet
- Die meisten bösartigen npm-Pakete funktionieren fehlerhaft oder lassen sich durch verdächtigen Code leicht identifizieren, doch Lotusbail tarnt sich als normal funktionierende API
- Es basiert auf der legitimen Baileys-Bibliothek und verfügt über eine vollständig implementierte Nachrichten-Sende- und Empfangsfunktion
- Dadurch kommt ein Social-Engineering-Ansatz zum Einsatz, bei dem Entwickler in „normal funktionierendem Code“ keine bösartigen Aktivitäten vermuten
Datendiebstahl und Übertragung
- Das Paket arbeitet, indem es den WebSocket-Client für die Kommunikation mit WhatsApp umschließt
- Bei der Authentifizierung werden Anmeldedaten erfasst, und beim Empfang und Versand von Nachrichten werden sämtliche Inhalte dupliziert
- Die legitime Funktion bleibt unverändert erhalten; lediglich alle Daten werden zusätzlich an die Angreifer weitergeleitet
- Die gestohlenen Daten werden mittels einer benutzerdefinierten RSA-Implementierung verschlüsselt übertragen
- Diese existiert getrennt von der Ende-zu-Ende-Verschlüsselung von WhatsApp selbst und dient als Verschlüsselung zur Umgehung der Netzwerküberwachung
- Die Serveradresse wird nicht direkt im Code offengelegt, sondern in einer verschlüsselten Konfigurationszeichenfolge verborgen
- Dabei kommt eine vierstufige Verschleierung mit Unicode-Variablenmanipulation, LZString-Komprimierung, Base-91-Kodierung und AES-Verschlüsselung zum Einsatz
Installation der Backdoor
- Die Funktion für Geräte-Pairing-Codes von WhatsApp wird missbraucht, um das Gerät des Angreifers mit dem Konto des Nutzers zu verbinden
- Im Paket ist ein mit AES verschlüsselter hartkodierter Pairing-Code enthalten
- Wenn sich der Nutzer authentifiziert, wird gleichzeitig auch das Gerät des Angreifers verbunden und erhält dadurch dauerhaften Kontozugriff
- Der Angreifer kann dadurch das gesamte Konto kontrollieren, also Nachrichten lesen und versenden, Medien herunterladen und auf Kontakte zugreifen
- Selbst wenn das npm-Paket gelöscht wird, bleibt das Gerät des Angreifers weiterhin verbunden; eine Sperrung ist nur möglich, wenn in den WhatsApp-Einstellungen manuell alle Geräteverbindungen getrennt werden
Techniken zur Analyseumgehung
- Der Code enthält 27 Fallen mit Endlosschleifen, die bei Erkennung von Debugging-Tools die Ausführung stoppen
- Es werden Debugger, Prozessargumente und Sandbox-Umgebungen erkannt, um die dynamische Analyse zu behindern
- Die bösartigen Codebereiche sind kommentiert, was auf Spuren systematischer Entwicklungsverwaltung hinweist
Fazit und sicherheitsrelevante Implikationen
- Die Verfeinerung von Supply-Chain-Angriffen schreitet voran, und Fälle nehmen zu, in denen sich Schadcode als normal funktionierender Code tarnt
- Eine Erkennung allein durch statische Analyse und reputationsbasierte Verifikation ist schwierig; erforderlich ist eine Verhaltensanalyse zur Laufzeit (behavioral analysis)
- Der Fall Lotusbail zeigt, wie eine Sicherheitslücke ausgenutzt wird, die darauf beruht, „Code für sicher zu halten, nur weil er funktioniert“, und verdeutlicht die Bedeutung von Systemen zur Überwachung des Laufzeitverhaltens
- Das Forschungsteam von Koi Security identifizierte durch solche laufzeitbasierten Erkennungstechniken Bedrohungen, die bestehende Prüfverfahren umgehen
Noch keine Kommentare.