Ranjivost je otkrivena u velikom broju kompajlera koja vam omogućuje skrivanje zlonamjernog koda

Stručnjaci sa Sveučilišta Cambridge objavili su informaciju o opasnoj ranjivosti (CVE-2021-42574), što pogađa gotovo svemoderni prevoditelji izvornog koda. Članak o trojanskom izvoru opisuje podmukli napad koji hakerima omogućuje skrivanje zlonamjernog koda u izvornom kodu raznih programa.

Napad se temelji na tome kako prevoditeljirukovati jedinstvenim identifikatorima koji se koriste za određivanje orijentacije teksta – s lijeva na desno ili s desna na lijevo. Slabost leži u Unicode Bidi algoritmu, koji omogućuje da se riječi napisane s desna na lijevo i slijeva na desno koriste zajedno. Zahvaljujući ovom algoritmu, možete kombinirati arapske i engleske riječi. To vam omogućuje čitanje teksta napisanog s desna na lijevo, slijeva na desno i obrnuto.

U nekim slučajevima, mogućnosti algoritmaUnicode Bidi nije dovoljan da promijeni način na koji se ove riječi prikazuju, pa se u takvim slučajevima koriste posebni kontrolni znakovi. Međutim, ako isti redak kombinira riječi s različitim smjerovima teksta, tada pomoću ovih kontrolnih znakova možete promijeniti smjer u kojem prevodilac čita taj tekst i, na primjer, učiniti da reci koji izgledaju kao komentari djeluju kao izvršni kod.


</ img>

Pomoću ove metode možete dodati zlonamjerneupute u normalni izvorni kod i učinite tekst ove upute nevidljivim pri gledanju koda pomoću naknadnog komentara. Ovo će umetnuti potpuno različite znakove, koji zapravo mogu biti proizvoljni kodovi. Konačni izvorni kod ostaje semantički ispravan, ali jednom kada se kompajlira događa se nešto sasvim drugo.

Pri pregledu i analizi takvog izvornog kodaprogramer će vidjeti kod s komentarima koji ne izazivaju nikakvu sumnju, ali kompajler ili tumač će obrnuti logički redoslijed simbola, a nevini komentar će se pretvoriti u dodatni kod umetnut u program. Greška je prisutna u gotovo svim kompajlerima &#8211; za programske jezike C, C++ (gcc i clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go i Python; u raznim popularnim uređivačima koda, uključujući VS Code, Emacs, Atom i sučelja za gledanje izvornog koda u GitHubu, Gitlabu, BitBucketu i svim Atlassian proizvodima.

Izvor: trojansource, zdnet

</ p>