Zraniteľnosť bola objavená v obrovskom množstve kompilátorov, ktoré umožňujú skryť škodlivý kód

Odborníci z University of Cambridge zverejnili informácie o nebezpečnej zraniteľnosti (CVE-2021-42574), ktorá sa týka takmer všetkýchmoderné kompilátory zdrojového kódu. Článok Trojan Source popisuje zákerný útok, ktorý umožňuje hackerom skryť škodlivý kód v zdrojovom kóde rôznych programov.

Útok je založený na tom, ako kompilátoryspracovávať jedinečné identifikátory používané na určenie orientácie textu – zľava doprava alebo sprava doľava. Slabina spočíva v algoritme Unicode Bidi, ktorý umožňuje spoločné používanie slov napísaných sprava doľava a zľava doprava. Vďaka tomuto algoritmu môžete kombinovať arabské a anglické slová. To vám umožní čítať text písaný sprava doľava, zľava doprava a naopak.

V niektorých prípadoch schopnosti algoritmuUnicode Bidi na zmenu spôsobu zobrazenia týchto slov nestačí a v takýchto prípadoch sa používajú špeciálne riadiace znaky. Ak však ten istý riadok kombinuje slová s rôznymi smermi textu, potom pomocou týchto riadiacich znakov môžete zmeniť smer, ktorým kompilátor číta text, a napríklad vytvoriť riadky, ktoré vyzerajú ako komentáre, aby fungovali ako spustiteľný kód.


</ img>

Pomocou tejto metódy môžete pridať škodlivéinštrukciu do normálneho zdrojového kódu a pomocou následného komentára urobíte text tejto inštrukcie neviditeľným pri prezeraní kódu. Tým sa vložia úplne iné znaky, čo môže byť v skutočnosti ľubovoľný kód. Konečný zdrojový kód zostáva sémanticky správny, ale po skompilovaní sa stane niečo úplne iné.

Pri prezeraní a analýze takéhoto zdrojového kóduprogramátor uvidí kód s komentármi, ktoré nevzbudzujú žiadne podozrenie, ale kompilátor alebo interpret obráti logické poradie symbolov a nevinný komentár sa zmení na dodatočný kód vložený do programu. Chyba sa vyskytuje takmer vo všetkých kompilátoroch &#8211; pre programovacie jazyky ​​C, C++ (gcc a clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go a Python; v rôznych populárnych editoroch kódu, vrátane VS Code, Emacs, Atom a rozhraní na prezeranie zdrojového kódu v GitHub, Gitlab, BitBucket a všetkých produktoch Atlassian.

Zdroj: trojansource, zdnet

</ p>