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."

Stellenmarkt
  1. Web-Entwickler (m/w/d)
    artvera GmbH & Co. KG, Berlin-Charlottenburg
  2. Leiter IT Produktion & Logistik (m/w/d)
    Hays AG, München
Detailsuche

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.

Golem Akademie
  1. Jira für Systemadministratoren: virtueller Zwei-Tage-Workshop
    24.–25. Januar 2022, virtuell
  2. ITIL 4® Foundation: virtueller Zwei-Tage-Workshop
    16.–17. Dezember 2021, virtuell
Weitere IT-Trainings

"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 / Themenstart

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

Eheran 04. Nov 2021 / Themenstart

Ist das jetzt ernst gemeint oder nicht?

Gamma Ray Burst 03. Nov 2021 / Themenstart

Interessant Rust scheint das zu prüfen

Alex_M 02. Nov 2021 / Themenstart

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

Mel 02. Nov 2021 / Themenstart

"Das ist doch gar kein Problem, da fällt doch keiner drauf rein..." "Wenn der Compiler...

Kommentieren



Aktuell auf der Startseite von Golem.de
Cloud-Ausfall
Eine AWS-Region als Single Point of Failure

Ein stundenlanger Ausfall der AWS-Cloud legte zentrale Dienste und sogar Amazon selbst teilweise lahm. Das zeigt die Grenzen der Cloud-Versprechen.
Ein Bericht von Sebastian Grüner

Cloud-Ausfall: Eine AWS-Region als Single Point of Failure
Artikel
  1. Euro NCAP: Renault Zoe mit katastrophalem Crash-Ergebnis
    Euro NCAP
    Renault Zoe mit katastrophalem Crash-Ergebnis

    Mit dem Renault Zoe sollte man keinen Unfall bauen. Im Euro-NCAP-Crashtest erhielt das Elektroauto null Sterne.

  2. Wirtschaftsministerium Niedersachsen: Bisher gelten noch 56 KBit/s als Breitband
    Wirtschaftsministerium Niedersachsen
    "Bisher gelten noch 56 KBit/s als Breitband"

    Das Recht auf schnelles Internet und Universaldienstverpflichtung sind im neuen Telekommuniktionsgesetz (TKG) noch nicht bestimmt. Bisher gilt eigentlich ein absurder Wert aus der Vergangenheit.

  3. Kaufberatung (2022): Die richtige CPU und Grafikkarte
    Kaufberatung (2022)
    Die richtige CPU und Grafikkarte

    Die Verfügbarkeit von PC-Hardware ist schlecht wie nie, doch ungeachtet der Preise wird gekauft. Wir geben einen Über- und einen Ausblick.
    Von Marc Sauter

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 • Acer-Monitore zu Bestpreisen (u. a. 27" FHD 165Hz OC 199€) • Kingston PCIe-SSD 1TB 69,90€ & 2TB 174,90€ • Samsung Smartphones & Watches günstiger • Saturn: Xiaomi Redmi Note 9 Pro 128GB 199€ • Alternate (u. a. Razer Opus Headset 69,99€) • Release: Halo Infinite 68,99€ [Werbung]
    •  /