Több programozási nyelvet érintő sebezhetőség, észrevétlenül csempészhető vele vírus a forrásokba

A módszer lényege, hogy az Unicode szabvány egy speciális képességét használja ki, ami lehetőséget ad arra, hogy a szóban forgó formátumú szövegekben karakterek a megjelenítettől eltérő sorrendben szerepeljenek. Ennek nyomán speciálisan összeállított szekvenciákkal olyan forrásfájlok alakíthatók ki, amik egy kódszerkesztőben megjelenítve teljesen másnak tüntetik fel a program forrását, mint amilyen tartalmúnak azt valójában a fordítóprogram látja.

https://prog.hu/hirek/5855/minden-programozasi-nyelvet-erinto-sebezheto…

Eredeti publikáció:

https://www.trojansource.codes/trojan-source.pdf

Hozzászólások

Itt van néhány mintakód, érdemes megnézni azzal a szövegszerkesztővel, amit fejlesztéshez használsz.

https://github.com/nickboucher/trojan-source

Az eredeti doksi utolsó oldalán van egy összefoglalás, hogy melyik OS-en, melyik szövegszerkesztő mennyire érintett.

Azért elég kemény, hogy ha valaki Github-ra vagy Stackoverflow-ra feltölt valaki egy kódot, amibe ilyen módon belecsempészett valami kártékony kódrészletet, az ember átnézi nagyjából a webes felületen - és persze ott nem látszik ebből semmi -, behúzza a saját fejlesztésébe, és kb. ez így rejtve is maradhat.

Ra kell tenni hookot, hogy ha 127-nel nagyobb ascii kodu karakter lenne a forrasban, akkor minimum warningoljon, de inkabb ne hagyja.

Esetleg SQL dumpban el tudok kepzelni legitim esetet, vagy ha olyan a rendszer, hogy a nyelvi file-ok is valahogy forraskodba kerulnek, de mindketto elegge korbehatarokt lehetoseg.

Egyuttal az ellenorzoscript a tab jelenletere is ugyanugy reagalhat, ha mar ugyis ott van.

A strange game. The only winning move is not to play. How about a nice game of chess?

Szóval akkor a Google keresés utáni Stackoverflowról élő Copy-Paste programozók most sorban elkezdenek kiugrani az ablakon. Engem szerencsére nem fenyeget ez a veszély!

Most először örülök neki, hogy csak dönteni lehet az ablakot... :-)

De a tréfát félretéve, szerencsére nem szoktam egy-az-egyben másolni, mert az egyik hülye rigolyám, hogy háklis vagyok a jól bevált változó neveimre, meg a tördelésre, úgyhogy csak a lényeget (ahá, szóval ez a parancs!) lopom az internetről. Végre kifizetődik a hülyeségem.

Sajna a SublimeText érintett, de hálistennek a kódjaim nagy része Bash, és a még a Windowsos file eleji UTF-8 BoM -ra is sír, hogy ő ilyen trágyához nem nyúl. Okosabb mint én, na. :-)

További szerencse, hogy elég nehéz ebből valódi kihasználható dolgot csinálni. Nagyon ismerni kell a szoftver környezetét, hogy legyen hatása a turpisságnak, és ne akadjon fent az első pozitív-negatív teszten, ami tutira kiszűrné a demóban lévő authentikációs if -et. Mondjuk biztosan beleőrülnék, hogy az előttem látható sor miért nem azt csinálja amit kéne neki, de ez már egy másik történet.

Friss Rust fordító sem kajálja be ezt.