Die Sicherheit der Lieferkette ist seit langem ein Katz-und-Maus-Spiel, aber eine jüngste Entdeckung von Forschern bei Aikido Security deutet darauf hin, dass die Maus einen Weg gefunden hat, unsichtbar zu werden. Zwischen dem 3. und 9. März 2026 überschwemmte eine ausgeklügelte Kampagne GitHub und andere große Repositories mit 151 bösartigen Paketen. Im Gegensatz zu den Typosquatting-Angriffen der Vergangenheit, die darauf basierten, dass Benutzer den Namen einer Bibliothek falsch schrieben, nutzten diese Pakete unsichtbare Unicode-Zeichen, um bösartige Logik direkt vor den Augen der Betrachter zu verbergen.
Diese Technik stellt eine bedeutende Weiterentwicklung dar, wie Angreifer das Vertrauen ausnutzen, das Open-Source-Ökosystemen innewohnt. Durch die Nutzung von Zeichen, die das menschliche Auge nicht sehen kann, die Compiler und Interpreter jedoch mit klinischer Präzision verarbeiten, umgehen Bedrohungsakteure erfolgreich manuelle Code-Reviews und traditionelle Sicherheitsscanner.
Im Zentrum dieses Angriffs liegt die Komplexität von Unicode – dem internationalen Standard zur Kodierung von Zeichen aus praktisch jedem Schriftsystem. Während die meisten von uns bei Unicode an Emojis oder akzentuierte Buchstaben denken, enthält der Standard auch eine Vielzahl von „nicht druckbaren“ Zeichen. Dazu gehören Nullbreiten-Leerzeichen, Richtungsüberschreibungen und Verbinder, die keinen visuellen Raum auf einem Bildschirm einnehmen.
Wenn ein Entwickler einen Pull-Request überprüft oder den Quellcode einer Bibliothek inspiziert, stellt seine IDE oder sein Texteditor diese Zeichen normalerweise gar nicht dar. Für einen Python-Interpreter oder eine JavaScript-Engine sind diese Zeichen jedoch eindeutige Datenpunkte. Ein Angreifer kann eine bösartige Payload in einen String oder einen Kommentar einfügen, der für einen Menschen leer aussieht, aber einen Befehl ausführt, wenn der Code ausgeführt wird.
Ein Angreifer könnte beispielsweise ein „Right-to-Left Override“-Zeichen (U+202E) verwenden. Dieses Zeichen wurde entwickelt, um Sprachen wie Arabisch oder Hebräisch zu unterstützen, indem es die Richtung des darauffolgenden Textes umkehrt. In einem bösartigen Kontext kann es verwendet werden, um eine Datei namens annoying_executable.exe.txt als annoying_txt.exe erscheinen zu lassen und so einen Benutzer dazu zu verleiten, ein Programm auszuführen, von dem er glaubt, es sei eine einfache Textdatei.
Seit fast einem Jahrzehnt konzentriert sich die Sicherheit der Lieferkette auf „Typosquatting“ und „Dependency Confusion“. Sicherheitstools wurden entwickelt, um Pakete mit Namen wie requesst anstelle von requests zu markieren. Diese Tools sind exzellent im Musterabgleich bekannter schlechter Strings, haben aber Schwierigkeiten mit dem, was nicht da ist.
Viele ältere Tools für statische Sicherheitsanalysen (SAST) verlassen sich auf reguläre Ausdrücke (Regex), um Schwachstellen zu finden. Wenn ein Regex nicht spezifisch so konfiguriert ist, dass er nach nicht druckbaren Unicode-Bereichen sucht, wird er diese einfach überspringen. Da diese Zeichen gültiges Unicode sind, lösen sie zudem nicht unbedingt Warnungen wegen „deformierter Dateien“ aus. Der Code bleibt syntaktisch korrekt, auch wenn sein Verhalten verborgen ist.
Um die Schwere dieser neuen Welle zu verstehen, ist es hilfreich, sie mit traditionelleren Methoden der Repository-Vergiftung zu vergleichen.
| Angriffsmethode | Primärer Mechanismus | Sichtbarkeit für Menschen | Schwierigkeit der Erkennung |
|---|---|---|---|
| Typosquatting | Falsch geschriebene Paketnamen | Hoch (bei genauem Hinsehen) | Niedrig |
| Dependency Confusion | Ausnutzung interner vs. öffentlicher Namen | Niedrig | Mittel |
| Unsichtbarer Unicode | Nicht druckbare Zeichen im Quellcode | Null | Hoch |
| Kontoübernahme | Diebstahl von Maintainer-Zugangsdaten | Keine | Sehr hoch |
Die von Aikido Security identifizierten 151 Pakete waren nicht nur Proof-of-Concepts; es waren aktive Versuche, Umgebungsvariablen, SSH-Schlüssel und Cloud-Zugangsdaten von Entwicklerrechnern zu stehlen. Bis die Forscher die Kampagne markierten, waren einige dieser Pakete bereits in automatisierte Build-Pipelines integriert worden, was die Geschwindigkeit unterstreicht, mit der sich diese Bedrohungen verbreiten.
Was diese spezifische Kampagne bemerkenswert macht, ist das schiere Volumen der in einem Zeitfenster von sechs Tagen veröffentlichten Pakete. Dies deutet auf einen hohen Grad an Automatisierung auf der Seite der Angreifer hin, die wahrscheinlich Skripte verwendeten, um „Schattenversionen“ beliebter Bibliotheken zu erstellen und die unsichtbaren Payloads in gängige Hilfsfunktionen einzuschleusen.
Da Angreifer zu unsichtbaren Bedrohungen übergehen, müssen Entwickler und DevOps-Ingenieure ihre Verteidigungsstrategie anpassen. Sich auf die visuelle Inspektion zu verlassen, reicht nicht mehr aus. Hier sind praktische Schritte, um das Risiko einer unsichtbaren Code-Injektion zu minimieren:
package-lock.json, poetry.lock oder requirements.txt mit spezifischen Hashes. Dies verhindert, dass Ihr Build-System automatisch eine bösartige „neueste“ Version einer Abhängigkeit bezieht.Die Entdeckung dieser 151 Pakete ist eine ernüchternde Erinnerung daran, dass die Open-Source-Lieferkette ein lebendiges Ökosystem mit sich entwickelnden Raubtieren ist. Die Verschiebung hin zu unsichtbaren Unicode-Angriffen zeigt, dass sich Bedrohungsakteure weg von Social Engineering und hin zu technischer Verschleierung bewegen, die die Grenzen der menschlichen Wahrnehmung ausnutzt.
Während wir uns weiter in das Jahr 2026 bewegen, muss die Branche zu einem „Zero Trust“-Modell für Abhängigkeiten übergehen. Wir können nicht mehr davon ausgehen, dass Code sicher ist, nur weil er auf einem Bildschirm sauber aussieht. Die Verifizierung muss algorithmisch, automatisiert und tief genug sein, um das zu sehen, was das menschliche Auge nicht erfassen kann.



Unsere Ende-zu-Ende-verschlüsselte E-Mail- und Cloud-Speicherlösung bietet die leistungsfähigsten Mittel für den sicheren Datenaustausch und gewährleistet die Sicherheit und den Schutz Ihrer Daten.
/ Kostenloses Konto erstellen