FacebookTwitterLinkedIn

Compiler-Fehler erleichtert Angriffe auf Lieferketten

https://network-king.net/wp-content/uploads/2021/11/attack49-769x414.jpg

Forscher der Universität Cambridge haben einen Fehler entdeckt, der die meisten Compiler betrifft. Der Fehler ermöglicht es, für das menschliche Auge unsichtbare Schwachstellen in Programme einzuschleusen, die sich noch in ihrer Entwicklung befinden. Diese gezielten Schwachstellen könnten dann den Weg für Angriffe auf Lieferketten ebnen. Diese wurden nach dem SolarWinds-Fall, der Ende 2020 mit einer Flut kompromittierter Systeme bei Unternehmen des Privatsektors und großen US-Regierungsbehörden auftrat, bekannter.

In einem Artikel mit dem Titel „Trojan Source: Invisible Vulnerabilities“ (Unsichtbare Schwachstellen) erklären die Forscher, dass Entwicklungssysteme, wie z. B. Open-Source-Systeme, auf menschliche Überprüfung angewiesen sind. Nur so können sie bösartige Beiträge von Freiwilligen erkennen.

Wie ist es also möglich, Compiler so auszutricksen, dass sie Binärcode erzeugen, der nicht mit dem programmierten Code übereinstimmt – die so genannten Trojanischen Pferde in Quellcodeform? Es wurden einige Tricks entdeckt, um die Quellcodedateien so zu manipulieren, dass menschliche Prüfer und Compiler eine andere Logik erkennen. Den Forschern zufolge funktioniert dieser Angriff mit den Sprachen C, C ++, C #, JavaScript, Java, Rust, Go und Python. Es wird vermutet, dass er auch mit den meisten anderen modernen Sprachen funktioniert.

Die Schwachstelle hat mit der Unicode-Komponente und ihrem bidirektionalen oder „Bidi“-Algorithmus zu tun. Im Detail ist Unicode der Standard, der ein Zeichen einer eindeutigen Zahl zuordnet, die von Computern unabhängig von Plattform, Programm oder Sprache verstanden wird. Der Bidi-Algorithmus hingegen befasst sich mit Bedeutungsunterschieden bei der Anzeige von Texten – zum Beispiel, wenn ein Satz in Englisch, der von links nach rechts gelesen wird, in einer arabischen Zeitung zitiert wird, deren Sprache von rechts nach links interpretiert wird.

Quelle: Eine weitere Arbeit von Forschern aus Cambridge – Angriff durch Umordnung in einem maschinellen Übersetzungssystem. Der rote Kreis zeigt die in umgekehrter Reihenfolge kodierte Zeichenfolge an.

Dieses Schlupfloch wurde bereits vor mehr als zehn Jahren ausgenutzt, um die Dateierweiterungen von per E-Mail verbreiteten Malware-Dateien zu verschleiern.

Im speziellen Fall von Compilern und Programmiersprachen können die Steuerzeichen für die Anzeigereihenfolge frei, scheinbar harmlos und vor den Augen der Korrekturleser geschützt verwendet werden. Mehrere Ebenen von Textsequenzen und solche Codes können eine scheinbar zufällige Neuordnung bewirken, die aber in Wirklichkeit ein Anagramm einer ausgefeilten Logik ist. Im Allgemeinen verarbeiten Compiler keine Formatierungssteuerzeichen, einschließlich Bidi-Codes, sodass dieses Schlupfloch ausgenutzt werden kann, um Anweisungen zu entwerfen. Diese können visuell nicht erkannt werden. Die meisten gut durchdachten Programmiersprachen lassen die Verwendung beliebiger Steuerzeichen im Quellcode nicht zu, da sie wohl dazu geeignet sind, die programmierte Logik zu beeinflussen. In solchen Fällen führt die Einführung von Bidi-Steuerzeichen in den Quellcode in der Regel zu einem Syntaxfehler.

In dem Papier weisen die Forscher darauf hin, dass Gegenmaßnahmen auf verschiedenen Ebenen ergriffen werden können. Sie reichen von der Sprach- und Compiler-Spezifikation bis hin zu Code-Repository und der Entwicklungspipeline. Sie glauben auch, dass eine langfristige Lösung für das Problem in den Compilern selbst implementiert werden wird. Ihrer Meinung nach schützen fast alle Compiler bereits vor der Erstellung von Funktionen mit Null-Zeichen-Namen. Andere melden bereits Fehler als Reaktion auf Tricks, die Hieroglyphen in Funktionsnamen ausnutzen.

Darüber hinaus behaupten die Forscher, sie hätten alle Unternehmen und Organisationen informiert, in deren Produkten Schwachstellen entdeckt wurden. Sie sagen, dass sie ihnen ein 99-tägiges Embargo nach der ersten Veröffentlichung angeboten hätten, damit die betroffenen Produkte gepatcht werden können. Es hätte verschiedene Reaktionen auf die Kontaktaufnahme gegeben, die von Patch-Zusagen und Bug-Bounties bis hin zu einer fristlosen Kündigung und Verweisen auf die Rechtspolitik reichten.

FacebookTwitterLinkedIn