Er is een kwetsbaarheid ontdekt in een groot aantal compilers waarmee u kwaadaardige code kunt verbergen

Experts van de Universiteit van Cambridge hebben informatie gepubliceerd over een gevaarlijke kwetsbaarheid (CVE-2021-42574), die bijna iedereen treftmoderne broncodecompilers. Het Trojan Source-artikel beschrijft een verraderlijke aanval waarmee hackers kwaadaardige code kunnen verbergen in de broncode van verschillende programma's.

De aanval is gebaseerd op hoe compilersomgaan met unieke identificatiegegevens die worden gebruikt om de tekstoriëntatie te bepalen – van links naar rechts of van rechts naar links. De zwakte ligt in het Unicode Bidi-algoritme, waarmee woorden die van rechts naar links en van links naar rechts worden geschreven, samen kunnen worden gebruikt. Dankzij dit algoritme kun je Arabische en Engelse woorden combineren. Hierdoor kunt u tekst lezen die van rechts naar links, van links naar rechts is geschreven en omgekeerd.

In sommige gevallen zijn dit de mogelijkheden van het algoritmeUnicode Bidi is niet voldoende om de manier waarop deze woorden worden weergegeven te veranderen, en in dergelijke gevallen worden speciale controletekens gebruikt. Als dezelfde regel echter woorden met verschillende tekstrichtingen combineert, kunt u met behulp van deze controletekens de richting wijzigen waarin de compiler die tekst leest en bijvoorbeeld regels die op commentaar lijken, laten werken als uitvoerbare code.


</ img>

Met deze methode kunt u schadelijke bestanden toevoegeninstructie in de normale broncode, en maak de tekst van deze instructie onzichtbaar bij het bekijken van de code met behulp van een volgend commentaar. Hierdoor worden compleet andere tekens ingevoegd, wat in feite willekeurige code kan zijn. De uiteindelijke broncode blijft semantisch correct, maar eenmaal gecompileerd gebeurt er iets heel anders.

Bij het bekijken en analyseren van dergelijke broncodede programmeur zal code zien met commentaar dat geen enkele argwaan wekt, maar de compiler of tolk zal de logische volgorde van de symbolen omkeren, en het onschuldige commentaar zal veranderen in aanvullende code die in het programma wordt ingevoegd. De fout is aanwezig in bijna alle compilers &#8211; voor programmeertalen C, C++ (gcc en clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go en Python; in een verscheidenheid aan populaire code-editors, waaronder VS Code, Emacs, Atom en interfaces voor het bekijken van broncodes in GitHub, Gitlab, BitBucket en alle Atlassian-producten.

Bron: trojansource, zdnet

</ p>