Trojan Source: Programmiersprachen lassen sich per Unicode trojanisieren

Ein Forschungsteam zeigt systematisch, wie sich mit Unicode-Tricks Code manipulieren lässt. Open-Source-Communitys und die IT-Industrie reagieren.

Ein Bericht von und veröffentlicht am
Wie dieser Sourcecode wohl für einen Compiler ausssieht?
Wie dieser Sourcecode wohl für einen Compiler ausssieht? (Bild: fancycrave1/Pixabay)

Praktisch alle großen Programmiersprachen lassen sich mit einem Trick trojanisieren. So lassen sich über Unicode-Befehle Sicherheitslücken in den Code einbringen, die von Menschen unter Umständen nur schwer erkannt werden, durch das Kompilieren jedoch zu Schadfunktionen werden können. Das beschreiben die Sicherheitsforscher Nicholas Boucher und Ross Anderson von der Cambridge Universität in einer aktuellen Untersuchung.

Inhalt:
  1. Trojan Source: Programmiersprachen lassen sich per Unicode trojanisieren
  2. Entwicklungswerkzeuge informieren über Unicode-Fehler

Hintergrund ist der digitale Textkodierungsstandard Unicode, der mehr als 143.000 Zeichen verschiedener Schriftsysteme enthält. Diese können wie etwa für Arabisch von rechts nach links oder wie für Deutsch und Englisch von links nach rechts gelesen werden. Die unterschiedliche Anzeigenreihenfolge von gemischten Texten kann mit dem bidirektionalen oder Bidi-Algorithmus gehandhabt werden.

"In einigen Szenarien kann die vom Bidi-Algorithmus vorgegebene Reihenfolge nicht ausreichend sein", schreiben Boucher und Anderson in dem Papier (PDF). "Für diese Fälle ermöglichen Bidi-Override-Steuerzeichen das Umschalten der Anzeigereihenfolge von Gruppen von Zeichen." Damit lassen sich einzelne Zeichen einer Zeichenkette in einer anderen Reihenfolge darstellen, etwa um ein Wort auf Arabisch im Original in einen Satz auf Deutsch einzufügen.

Zusammenfassung bestehender Ideen zu Unicode-Tricks

Das Problem ist, dass die meisten Programmiersprachen die Bidi-Overrides auch in Kommentaren oder Strings erlauben, die beim Kompilieren interpretiert werden und die Reihenfolge des programmierten Codes ändern. Dadurch lässt sich die Logik des Programmes syntaktisch korrekt ändern und Programm A wird in Programm B verwandelt. Entsprechend bezeichnen die Forscher die Sicherheitslücke (CVE-2021-42574, CVE-2021-42694) als Trojan Source.

Stellenmarkt
  1. Testingenieur (w/m/d) in der Automobilindustrie
    Vdynamics GmbH, München
  2. IT - Sicherheit und Systemadministrator (m/w/d)
    ADAC Hessen-Thüringen e.V., Frankfurt am Main
Detailsuche

Das von den Forschern beschriebene Vorgehen wurde in der Vergangenheit bereits ausgenutzt, um Dateiendungen von per E-Mail verbreiteter Schadsoftware zu verschleiern. Auch für Programmiersprachen ist es nicht völlig unbekannt. So finden sich derartige Überlegungen seit Jahren in Diskussionen etwa bei Eclipse, Go, Ruby oder der für Ethereum genutzten Sprache Solidity. Die Forscher beschreiben auch Homoglyph-Angriffe, die es so ähnlich auch beim DNS seit Jahrzehnten gibt.

Die beiden Forscher haben nun aber diese theoretischen Angriffe zusammengefasst, als grundlegendes Problem für die Mehrheit der Programmiersprachen beschrieben und sich um ein möglichst weitgehendes sogenanntes Coordinated Disclosure bemüht, also zahlreiche betroffenen Stellen informiert. Auch sorgt die Vergabe von CVE-Nummern in der Software-Industrie mitunter erst dafür, dass derartige Probleme wahrgenommen und weitgehend bearbeitet werden.

Aus der IT-Sicherheitscommunity kam teilweise Kritik an der Art der Veröffentlichung. So stellten die Autoren Angriffe als neu dar, die in ähnlicher Weise bereits vorher öffentlich bekannt waren. Filippo Valsorda vom Go-Sicherheitsteam zweifelte auf Twitter an der Sinnhaftigkeit zu versuchen, solche Angriffe in Compilern zu blockieren. Das sei eher die Aufgabe von Reviewtools und Editoren.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Entwicklungswerkzeuge informieren über Unicode-Fehler 
  1. 1
  2. 2
  3.  


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
MS Satoshi
Die abstruse Geschichte des Bitcoin-Kreuzfahrtschiffs

Kryptogeld-Enthusiasten kauften ein Kreuzfahrtschiff und wollten es zum schwimmenden Freiheitsparadies machen. Allerdings scheiterten sie an jeder einzelnen Stelle.
Von Elke Wittich

MS Satoshi: Die abstruse Geschichte des Bitcoin-Kreuzfahrtschiffs
Artikel
  1. Gigafactory Berlin: Tesla verzichtet für Akkufertigung auf staatliche Förderung
    Gigafactory Berlin
    Tesla verzichtet für Akkufertigung auf staatliche Förderung

    Tesla verzichtet für die geplante Akkufertigung in Grünheide bei Berlin auf eine mögliche staatliche Förderung in Milliardenhöhe.

  2. Microsoft: Xbox-Spieler in Halo Infinite von Crossplay genervt
    Microsoft
    Xbox-Spieler in Halo Infinite von Crossplay genervt

    Im Multiplayer von Halo Infinite gibt es offenbar immer mehr Cheater. Nun fordern Xbox-Spieler eine Option, um gemeinsame Partien mit PCs zu vermeiden.

  3. 50 Prozent bei IT-Weiterbildung sparen
     
    50 Prozent bei IT-Weiterbildung sparen

    Die Black Week 2021 in der Golem Karrierewelt läuft weiter: 50 Prozent bei zahlreichen Live-Workshops, Coachings und E-Learnings sparen - noch bis Montag!
    Sponsored Post von Golem Akademie

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 • Heute ist Black Friday • Corsair MP600 Pro XT 1TB 167,96€ • Apple Watch Series 6 ab 379€ • Boxsets (u. a. Game of Thrones Blu-ray 79,97€) • Samsung Galaxy S21 128GB 777€ • Premium-Laptops (u. a. Lenovo Ideapad 5 Pro 16" 829€) • MS Surface Pro7+ 888€ • Astro Gaming Headsets [Werbung]
    •  /