Der Software-Lieferkettenangriff über npm-Pakete nimmt eine neue, bemerkenswerte Dimension an. Mit dem Auftauchen des Schadpakets os-info-checker-es6 wurde ein hochentwickeltes Angriffsszenario sichtbar, das nicht nur den offenen und weit verbreiteten npm-Ökosystemadressiert, sondern auch modernste Techniken aus den Bereichen Steganographie und Command-and-Control (C2)-Kommunikation kombiniert. Diese Entwicklung zeigt, wie böswillige Akteure immer raffinierter vorgehen und dabei legitime Dienste der Tech-Branche für ihre Zwecke missbrauchen. Das npm-Paket os-info-checker-es6 erschien erstmals im März 2025 und gab sich zunächst als harmloses Tool zur Betriebssystem-Informationssammlung aus. Erste Versionen zeigten keinerlei bösartiges Verhalten – ihre Funktion beschränkte sich auf das einfache Auslesen und Anzeigen von Systemdetails wie Plattform, Release-Version, Architektur und Hostname.
Das typische Erscheinungsbild wirkte auf Entwickler und Sicherheitslöscher denkbar unverdächtig. Eine erste Wendung trat wenige Tage später ein, als neue Versionen publik wurden, die nun plattformspezifische, kompilierte Node.js-Module enthielten. Gleichzeitig veränderte sich das Installationsskript (preinstall.js) maßgeblich: Anstelle simpler Befehle tauchte dort eine schwer verständliche Code-Sequenz auf.
Der entscheidende Kniff dabei war der Einsatz von Unicode-Steganographie – eine Technik, die es Angreifern erlaubt, Daten unsichtbar in Texten zu verstecken, ohne dabei die üblichen Verdachtsmomente für Code-Scanner zu erzeugen. Im Detail nutzt die Schadsoftware Variation Selectors aus dem Supplementary Special Purpose Plane des Unicode-Standards (U+E0100 bis U+E01EF) – unsichtbare Codepunkte, die als nicht-zeichnende Modifikatoren dienen. Diese Zeichen, eingebettet hinter einem unscheinbaren ASCII-Symbol (vertikale Leiste „|“), agieren als unsichtbare Ebene zum Verstecken von Daten. Die kompilierten Node-Module besitzen eine decode-Funktion, die diese Unicode-Zeichen interpretiert und daraus einen Base64-kodierten String rekonstruiert. Analysen zeigten, dass ein einfacher Byte-Verschiebungs-Cipher mit einem Offset von 16 (0x10) auf den Low-Byte-Anteil der Unicode-Zeichen angewandt wird, um die Daten zu entschlüsseln.
Dieses Verfahren ist intelligent, da es mit gängigen statischen Analysen kaum erkannt wird – denn der sichtbare Code wirkt harmlos und der schädliche Payload bleibt verborgen, bis zur dynamischen Dekodierung im Installationsprozess. Zunächst sichtbarer Output war harmlos, beispielsweise der Konsolenausdruck “Check”. Doch die damit demonstrierte Technik deutete auf weiteres Potenzial hin – eine frühe Tarnung für eine aufwändigere und dynamisch nachladende Malware. Der Angriff eskalierte im Mai 2025 mit der Version 1.0.
8 des Pakets, deren präinstallations-Script wie beschrieben den gleichen Unicode-Steganoskriptmechanismus enthielt, jedoch mit einem deutlich ausgedehnteren Datenblock. Die Dekodierung ergab einen umfangreichen Base64-String mit einem zweiten Schadcode-Stadium, das eine komplexe Command-and-Control-Infrastruktur enthüllte. Das auffälligste Merkmal ist die Einbindung von Google Calendar als Zwischenschicht eines C2-Systems. Konkret wird ein Google Calendar-Shortlink angefragt, der per Weiterleitung zu einer regulären Kalenderereignis-Webseite führt. Auf diesem Event wird ein spezielles Attribut (data-base-title) ausgelesen, welches vom Angreifer als Speicherort eines Base64-kodierten URLs missbraucht wird.
Das Skript decodiert die URL und fordert vom darin enthaltenen Server den nächsten Payload an. Der eigentliche finale Schadcode wird anschließend in Base64-kodierter Form vom C2-Server geladen und in laufenden Node.js-Prozess mit eval ausgeführt. Das gesamte System ist auf Robustheit getrimmt: Es bietet Wiederholungsmechanismen bei Fehlern, verhindert Mehrfachausführungen durch eine temporäre Sperrdatei und fängt Ausnahmen ab, um Neustarts einzuleiten. Die Nutzung von legitimen Plattformen wie Google Calendar für die C2-Kommunikation ist ein ausgeklügelter Taktik, welche viele herkömmliche Sicherheitskontrollen aushebelt.
Während typische Blocklisten IP-Adressen oder klassische C2-Domains erfassen, ist das Blockieren eines Google-Dienstes kaum praktikabel. Zudem verstärkt die doppelte Weiterleitung und Verlagerung der eigentlichen Kommando-URL die Schwierigkeit der Nachverfolgung und Intervention. Diese Angriffsmethode erinnert an den proof-of-concept „Google Calendar Rat (GCR)“, bei dem Google Calendar-Events zur Datenexfiltration oder Befehlsübermittlung verwendet werden. Der hier dokumentierte Fall zeigt jedoch eine Weiterentwicklung mit Fokus auf Tarnung und Auslieferung, statt direktes und laufendes C2. Die Auswirkungen des Angriffs sind weitreichend.
Os-info-checker-es6 weist laut npm-Daten wöchentlich mehrere hundert Downloads auf. Er ist zudem als Abhängigkeit in vier weiteren Paketen verzeichnet, welche vermutlich zur selben Angriffskampagne gehören. Die damit verbundenen Nutzer und Entwickler sind potenziell in die Verbreitung und Ausweitung der Malware involviert, oft unwissentlich. Die Attacke zeigt exemplarisch, wie bedeutsam es ist, die Herkunft und den Inhalt von Softwareabhängigkeiten im Blick zu behalten. Die npm-Registry, als zentrale Anlaufstelle für JavaScript-Module, gerät hiermit verstärkt ins Visier von Kriminellen, die mit raffinierten Techniken versuchen, Schadcode unentdeckt zu verbreiten.
Für Entwickler, Sicherheitsteams und Organisationen bedeutet das, verstärkt auf Sicherheitsprüfungen bei Abhängigkeiten zu setzen. Automatisierte Sicherheits-Scanner mit Fokus auf Verhaltenserkennung und dynamische Analysen können helfen, solche innovativen Tarnmethoden aufzudecken. Ebenso sollte der Einsatz von Software-Supply-Chain-Schutzmaßnahmen Hand in Hand mit Awareness und manuellem Review gehen. Ferner machen die Ergebnisse des Falls deutlich, dass Bedrohungsakteure legitime Cloud- und Kollaborationsdienste kreativ für bösartige Zwecke instrumentalisieren und dadurch klassische Abwehrmechanismen überlisten. Die Kombination aus ausgefeiltem Unicode-Steganoskript und einem über Google Calendar realisierten C2-Kommunikationskanal ist ein Paradebeispiel moderner Angriffsmethoden, die auf kulturelle und technische Unauffälligkeit setzen.
Die Analyse des Pakets os-info-checker-es6 wurde vor ihrer Veröffentlichung der npm-Sicherheitsabteilung gemeldet, was einen wichtigen Schritt im verantwortungsvollen Umgang mit neuen Bedrohungen darstellt. Gleichzeitig unterstreicht es die Bedeutung eines gemeinsamen, kooperativen Vorgehens innerhalb der Open-Source-Community, um das Ökosystem widerstandsfähiger gegenüber Supply-Chain-Attacken zu machen. Langfristig gewinnt die Kombination aus Steganographie und bewährten C2-Techniken, in Verbindung mit legitimen Plattformen, an Bedeutung als Herausforderung für die Informationssicherheit. Gegenmaßnahmen müssen sich an diesem Wandel orientieren und sowohl technische als auch organisatorische Ebenen adressieren. Zusammenfassend stellt der Angriff auf os-info-checker-es6 eine neue Generation von npm-Paket-basierter Schadsoftware dar, die durch Unicode-Steganoskript und innovative C2-Strukturen eine erhebliche Gefahr für Entwickler und Unternehmen darstellt.
Die Sicherheit von Softwarelieferketten benötigt daher eine permanente Überwachung, verbesserte Analysewerkzeuge und informierte Communities, um die digitale Infrastruktur gegen solche komplexen Bedrohungen zu wappnen.