Entwicklungswerkzeuge informieren über Unicode-Fehler

Der Forscher Anderson sagte dem Journalisten Brian Krebs bezüglich der praktischen Auswirkungen der Lücken: "Man kann sie also in Quellcode verwenden, der für einen menschlichen Prüfer harmlos erscheint und in Wirklichkeit etwas Böses anrichten kann." Weiter heißt es: "Das ist eine schlechte Nachricht für Projekte wie Linux und Webkit, die Beiträge von zufälligen Personen akzeptieren, sie einer manuellen Überprüfung unterziehen und sie dann in kritischen Code einbauen. Diese Schwachstelle ist, soweit ich weiß, die erste, die fast alles betrifft."

Für menschliche Codeprüfer ist es möglicherweise schwierig, einen solchen Angriff zu erkennen, weil der gerenderte Code je nach Editor und genutzter Kodierung völlig akzeptabel aussieht. Solchen Schadcode könnten sich Entwickler auch durch das Kopieren von Code-Beispielen auf Internetplattformen einfangen. "Jeder Entwickler, der Code aus einer nicht vertrauenswürdigen Quelle in eine geschützte Codebasis kopiert, kann versehentlich eine unsichtbare Schwachstelle einführen", sagte Anderson.

Dieser Ansicht widersprechen aber einige Entwickler vehement. So schreibt etwa die Vorsitzende des Security-Teams von Alpine Linux, Ariadne Conill, auf Twitter, dass derartige über Unicode umgesetzte Tricks schnell und leicht in Editoren erkannt werden könnten, wenn diese entsprechend eingestellt sind. Bei Conill geschieht dies etwa sogar standardmäßig mit GNU Nano.

Gegenmaßnahmen sollen Entwicklern bei der Fehlersuche helfen

Matthew Green, der an der Johns Hopkins Universität Kryptographie lehrt, überrascht es nicht, dass die meisten Compiler mit Unicode dazu gebracht werden können, Code anders zu verarbeiten. "Was mich jedoch überrascht, ist, wie viele Compiler Unicode ohne jegliche Abwehrmechanismen analysieren und wie effektiv ihre Rechts-nach-links-Kodierungstechnik ist, um Code in Codebasen einzuschleusen. Das ist ein wirklich cleverer Trick, von dem ich nicht einmal wusste, dass er möglich ist", sagte Green.

"Die schlechte Nachricht ist, dass es keine Abwehrmechanismen gab, und jetzt, wo die Leute davon wissen, könnten sie anfangen, es auszunutzen", sagte Green. "Hoffentlich patchen die Entwickler von Compilern und Code-Editoren das Problem schnell! Aber da einige Leute ihre Entwicklungswerkzeuge nicht regelmäßig aktualisieren, wird es zumindest für eine Weile ein gewisses Risiko geben."

Betroffen von den Unicode-Problemen sind theoretisch alle Programmiersprachen, deren Compiler oder Interpreter sich an den Standard halten. Die Forscher selbst haben entsprechende Beispiele für C, C++, C#, Javascript, Java, Rust, Go und Python auf Github veröffentlicht.

Als Gegenmaßnahmen stehen nun erste Patches für die Compiler-Sammlungen von GCC und LLVM bereit, die entsprechende Warnungen vor den Unicode-Zeichen umsetzen. Das Rust-Team schreibt in einer Sicherheitsnotiz darüber hinaus, dass es sich bei dem Verhalten um keinen Fehler in dem eigenen Compiler Rustc handele, das Team dennoch aktiv dagegen vorgehe.

Mit der aktuellen Version 1.56.1 stehen zwei Linter bereit, die entsprechende Zeichen erkennen. Das Rust-Team nennt außerdem weitere Unicode-Zeichen, deren Vorhandensein Entwickler in Code künftig einfach regelmäßig prüfen sollten. Letzteres umgesetzt haben bereits die Code-Hoster Github und Gitlab als Reaktion auf die wissenschaftliche Veröffentlichung. Auch Atlassian hat schon reagiert. Weitere Editoren und Werkzeuge dürften folgen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Trojan Source: Programmiersprachen lassen sich per Unicode trojanisieren
  1.  
  2. 1
  3. 2


Jakelandiar 09. Nov 2021

Ist für mich das gleiche :-) Und das verstehe ich nicht. Warum soll ich das in der...

Eheran 04. Nov 2021

Ist das jetzt ernst gemeint oder nicht?

Gamma Ray Burst 03. Nov 2021

Interessant Rust scheint das zu prüfen

Alex_M 02. Nov 2021

https://i.blackhat.com/USA-19/Thursday/us-19-Birch-HostSplit-Exploitable-Antipatterns-In...



Aktuell auf der Startseite von Golem.de
T-1000
Roboter aus Metall kann sich verflüssigen

Ein Team aus den USA und China hat einen Roboter entwickelt, der seinen Aggregatzustand von fest zu flüssig und zurück ändern kann.

T-1000: Roboter aus Metall kann sich verflüssigen
Artikel
  1. Apple: MacBook Pro braucht wegen Lieferproblemen nur kleine Kühler
    Apple
    MacBook Pro braucht wegen Lieferproblemen nur kleine Kühler

    In den neuen MacBook Pro mit M2 Pro und M2 Max sitzen kleinere Kühlkörper. Der Grund sind Probleme in der Lieferkette.

  2. Trotz Exportverbot: Chinesische Kernforscher nutzen weiter US-Hardware
    Trotz Exportverbot
    Chinesische Kernforscher nutzen weiter US-Hardware

    An Chinas wichtigstes Kernforschungszentrum darf seit 25 Jahren keine US-Hardware geliefert werden. Dennoch nutzt es halbwegs aktuelle Xeons und GPUs.

  3. Virtualisieren mit Windows, Teil 3: Betrieb und Pflege von VMs mit Hyper-V
    Virtualisieren mit Windows, Teil 3
    Betrieb und Pflege von VMs mit Hyper-V

    Hyper-V ist ein Hypervisor, um VMs effizient verwalten zu können. Trotz einiger weniger Schwächen ist es eine gute Virtualisierungssoftware, wir stellen sie in drei Teilen vor. Im letzten geht es um Betrieb und Pflege der VMs.
    Eine Anleitung von Holger Voges

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • PCGH Cyber Week - Rabatte bis 50% • Acer Predator 32" WQHD 170Hz 529€ • MindStar-Tiefstpreise: MSI RTX 4090 1.982€, Sapphire RX 7900 XT 939€ • Philips Hue bis -50% • Asus Gaming-Laptops bis -25% • XFX Radeon RX 7900 XTX 1.199€ • Kingston 2TB 112,90€ • Nanoleaf bis -25% [Werbung]
    •  /