
Experten der University of Cambridge haben Informationen zu einer gefährlichen Sicherheitslücke veröffentlicht (CVE-2021-42574), was fast alle betrifftmoderne Quellcode-Compiler. Der Artikel Trojan Source beschreibt einen heimtückischen Angriff, der es Hackern ermöglicht, Schadcode im Quellcode verschiedener Programme zu verstecken.
Der Angriff basiert auf der Art und Weise, wie Compiler arbeitenBehandeln Sie eindeutige Bezeichner, die zur Bestimmung der Textausrichtung verwendet werden – von links nach rechts oder von rechts nach links. Die Schwäche liegt im Unicode-Bidi-Algorithmus, der die gemeinsame Verwendung von Wörtern ermöglicht, die von rechts nach links und von links nach rechts geschrieben sind. Dank dieses Algorithmus können Sie arabische und englische Wörter kombinieren. Dadurch können Sie Texte lesen, die von rechts nach links, von links nach rechts und umgekehrt geschrieben sind.
In einigen Fällen die Fähigkeiten des AlgorithmusUnicode Bidi reicht nicht aus, um die Darstellung dieser Wörter zu ändern, und in solchen Fällen werden spezielle Steuerzeichen verwendet. Wenn jedoch dieselbe Zeile Wörter mit unterschiedlichen Textrichtungen kombiniert, können Sie mithilfe dieser Steuerzeichen die Richtung ändern, in der der Compiler diesen Text liest, und beispielsweise dafür sorgen, dass Zeilen, die wie Kommentare aussehen, wie ausführbarer Code funktionieren.

</ img>
Mit dieser Methode können Sie Schadsoftware hinzufügenFügen Sie die Anweisung in den normalen Quellcode ein und machen Sie den Text dieser Anweisung beim Betrachten des Codes durch einen nachfolgenden Kommentar unsichtbar. Dadurch werden völlig andere Zeichen eingefügt, bei denen es sich eigentlich um beliebigen Code handeln könnte. Der endgültige Quellcode bleibt semantisch korrekt, aber sobald er kompiliert ist, passiert etwas völlig anderes.
Beim Anzeigen und Analysieren eines solchen QuellcodesDer Programmierer sieht Code mit Kommentaren, die keinen Verdacht erregen, aber der Compiler oder Interpreter kehrt die logische Reihenfolge der Symbole um und der harmlose Kommentar wird in zusätzlichen Code umgewandelt, der in das Programm eingefügt wird. Der Fehler tritt in fast allen Compilern auf – für Programmiersprachen C, C++ (gcc und clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go und Python; in einer Vielzahl beliebter Code-Editoren, darunter VS Code, Emacs, Atom und Quellcode-Anzeigeschnittstellen in GitHub, Gitlab, BitBucket und allen Atlassian-Produkten.
Quelle: trojansource, zdnet
</ p>