
A Cambridge-i Egyetem szakértői egy veszélyes sérülékenységről tettek közzé információkat (CVE-2021-42574), ami szinte mindenkit érintmodern forráskód-fordítók. A Trojan Source cikk egy alattomos támadást ír le, amely lehetővé teszi a hackerek számára, hogy kártékony kódokat rejtsenek el különféle programok forráskódjában.
A támadás azon alapul, hogy a fordítók hogyan kezelik az egyedi azonosítókat, amelyek meghatározzák, hogy a szöveg balról jobbra vagy jobbról balra irányul-e.A gyengeség az Unicode Bidi algoritmusban rejlik, amely lehetővé teszi a jobbról balra és balról jobbra írt szavak együttes használatát.Ennek az algoritmusnak köszönhetően arab és angol szavak kombinálhatók.Olvassa el a jobbról balra, balról jobbra írt szöveget, és fordítva.
Egyes esetekben az algoritmus képességeiA Unicode Bidi nem elegendő a szavak megjelenítési módjának megváltoztatásához, és ilyen esetekben speciális vezérlőkaraktereket használnak. Ha azonban ugyanaz a sor különböző szövegirányokkal rendelkező szavakat kombinál, akkor ezekkel a vezérlőkarakterekkel megváltoztathatja, hogy a fordító milyen irányba olvassa a szöveget, és például a megjegyzéseknek tűnő sorokat végrehajtható kódként viselkedjen.

</ img>
Ezzel a módszerrel rosszindulatú anyagokat is hozzáadhatutasítást a normál forráskódba, és ennek az utasításnak a szövegét láthatatlanná tegye a kód megtekintésekor egy következő megjegyzés használatával. Ez teljesen más karaktereket szúr be, amelyek valójában tetszőleges kódok lehetnek. A végső forráskód szemantikailag helyes marad, de a lefordítás után valami egészen más történik.
Ilyen forráskód megtekintésekor és elemzésekora programozó olyan kódot fog látni, amiben a megjegyzések nem keltenek gyanút, de a fordító vagy az értelmező megfordítja a szimbólumok logikai sorrendjét, és az ártatlan megjegyzésből további kód kerül a programba. A hiba szinte minden fordítóprogramban megtalálható – a C, C++ (gcc és clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go és Python programozási nyelvekhez; számos népszerű kódszerkesztőben, beleértve a VS Code-ot, az Emacs-t, az Atomot, valamint a GitHub, a Gitlab, a BitBucket és az összes Atlassian termék forráskód-megtekintési felületét.
Forrás: trojansource, zdnet
</ p>