Sicherheitsforscher haben eine neue, besonders heimtückische Angriffsmethode entdeckt: Unsichtbare Unicode-Zeichen werden in Quellcode eingebettet, um Code-Reviews zu täuschen und ganze Software-Lieferketten zu kompromittieren – mit potenziell weitreichenden Folgen für Unternehmen weltweit.
Unsichtbarer Unicode-Code ermöglicht Supply-Chain-Angriffe auf GitHub-Repositories
Angriffsmethode nutzt Unicode-Sonderzeichen
Im Kern der Attacke stehen sogenannte Steuerzeichen und bidirektionale Unicode-Sequenzen, die in Quellcode-Dateien eingebettet werden können, ohne in gängigen Code-Editoren oder Diff-Ansichten sichtbar zu sein. Der manipulierte Code erscheint für menschliche Reviewer vollständig unauffällig, während der tatsächlich ausgeführte Programmcode vom sichtbaren Inhalt abweicht.
Selbst erfahrene Entwickler würden den eingebetteten Schadcode beim Lesen nicht erkennen – die manipulierten Zeichen werden schlicht nicht dargestellt.
Angreifer können auf diese Weise Schadlogik in Bibliotheken oder Abhängigkeiten einschleusen, die von Tausenden anderen Projekten genutzt werden. Die Methode ist besonders gefährlich, weil sie Standard-Sicherheitsprozesse wie Code-Reviews und manuelle Prüfungen systematisch unterläuft.
Supply-Chain-Risiko für abhängige Projekte
Supply-Chain-Angriffe dieser Art richten sich selten direkt gegen ein Zielunternehmen. Stattdessen werden vertrauenswürdige Open-Source-Bibliotheken oder gemeinsam genutzte Entwicklungs-Tools kompromittiert. Sobald eine manipulierte Abhängigkeit in ein Projekt integriert wird, gelangt der Schadcode automatisch in alle nachgelagerten Anwendungen – unbemerkt für die betroffenen Entwickler.
GitHub und ähnliche Plattformen bilden das Rückgrat moderner Softwareentwicklung. Millionen von Projekten, darunter produktionskritische Unternehmensanwendungen, beziehen regelmäßig Updates aus öffentlichen Repositories. Ein einzelnes kompromittiertes Paket kann sich dadurch in kurzer Zeit in einer Vielzahl von Produktionssystemen verbreiten.
Automatisierte Tools sind nur bedingt wirksam
Statische Code-Analysetools und automatisierte Security-Scanner erkennen die unsichtbaren Zeichen nicht zuverlässig, sofern sie nicht explizit auf diese Angriffsklasse ausgelegt sind. Sicherheitsexperten empfehlen konkrete Gegenmaßnahmen:
- Linting-Tools und CI/CD-Pipelines um spezifische Prüfregeln für ungewöhnliche Unicode-Zeichen erweitern
- Tools wie
grepmit entsprechenden Zeichenklassen oder spezialisierte Unicode-Analysewerkzeuge einsetzen - Kryptografische Signaturen für Abhängigkeiten prüfen
- Software Bills of Materials (SBOMs) führen, um die Herkunft jeder Komponente nachvollziehen zu können
Einordnung für deutsche Unternehmen
Für deutsche Unternehmen mit modernen Software-Entwicklungsprozessen ergibt sich konkreter Handlungsbedarf: Die bestehenden Dependency-Management-Prozesse sollten um eine automatisierte Prüfung auf nicht-druckbare und bidirektionale Unicode-Zeichen ergänzt werden.
Besonders Unternehmen unter regulatorischen Anforderungen wie NIS2 oder dem Cyber Resilience Act sind gut beraten, ihre Supply-Chain-Sicherheit zu dokumentieren und entsprechende technische Kontrollen nachzuweisen.
Die Überprüfung kritischer Abhängigkeiten auf Code-Ebene – und nicht nur auf Paketebene – wird zunehmend zu einem Mindeststandard professioneller Softwareentwicklung.
Quelle: Ars Technica
