Trojan Source, útok, ktorý umožňuje pridávanie zmien kódu neviditeľných pre vývojára

Pred pár dňami Uviedli to vedci z Cambridgeskej univerzity uverejnenie technika na jemné nahradenie kódov škodlivý v zdrojovom kóde aplikácie.

Spôsob útoku to pripravil Už je uvedený pod CVE-2021-42574 Prichádza pod názvom Trojan Source a je založený na tvorbe textu, ktorý vyzerá inak ako kompilátor/prekladač a osoba, ktorá si kód prezerá.

O zdroji trójskych koní

Metóda sa spolieha na použitie špeciálnych znakov Unicode v komentároch kódu, ktoré menia poradie zobrazenia obojsmerného textu. Pomocou týchto ovládacích znakov niektoré časti textu je možné zobraziť zľava doprava, iné sprava doľava.

V každodennej praxi sa tieto riadiace znaky dajú použiť napríklad na vloženie hebrejských alebo arabských reťazcov do kódového súboru. Ak však tieto znaky použijete na kombinovanie riadkov s rôznymi smermi textu na rovnakom riadku, pasáže textu zobrazené sprava doľava môžu prekrývať existujúci normálny text zobrazený zľava doprava.

Pri tejto metóde do kódu možno pridať škodlivý konštrukt, ale potom urobte text s touto konštrukciou neviditeľným pri prezeraní kódu pridaním znakov zobrazených sprava doľava v nasledujúcom komentári alebo do doslovu, čo bude mať za následok, že na zákernej vložke budú prekryté úplne iné znaky. Takýto kód bude stále sémanticky správny, ale bude sa inak interpretovať a zobrazovať.

Objavili sme spôsoby, ako manipulovať s kódovaním súborov zdrojového kódu tak, aby ľudskí diváci a kompilátori videli odlišnú logiku. Jedna obzvlášť zhubná metóda používa znaky na prepísanie smeru Unicode na zobrazenie kódu ako anagram jeho skutočnej logiky. Overili sme, že tento útok funguje proti C, C++, C #, JavaScript, Java, Rust, Go a Python a máme podozrenie, že bude fungovať aj proti väčšine ostatných moderných jazykov.

Pri kontrole kódu vývojár bude čeliť vizuálnemu poradiu postáv a v editore uvidí podozrivý komentár text, webové rozhranie alebo IDE, ale kompilátor a interpret použije logické poradie znakov a naloží so škodlivým kódom ako je, bez ohľadu na obojsmerný text v komentári. Ovplyvnených je niekoľko populárnych editorov kódu (VS Code, Emacs, Atom), ako aj rozhrania na prezeranie kódu v úložiskách (GitHub, Gitlab, BitBucket a všetky produkty Atlassian).

Existuje niekoľko spôsobov, ako použiť metódu na implementáciu škodlivých akcií: pridať skrytý výraz „návrat“, ktorý vedie k predčasnému ukončeniu vykonávania funkcie; záver v komentári výrazov, ktoré sa bežne považujú za platné konštrukcie (napríklad na deaktiváciu dôležitých kontrol); priradenie iných hodnôt reťazca vedúce k zlyhaniam overenia reťazca.

Okrem toho, bola navrhnutá ďalšia možnosť útoku (CVE-2021-42694), ktorá zahŕňa použitie homoglyfov, symboly, ktoré vyzerajú podobne, ale líšia sa významom a majú rôzne kódy Unicode. Tieto znaky môžu byť použité v niektorých jazykoch v názvoch funkcií a premenných, aby zavádzali vývojárov. Môžete napríklad definovať dve funkcie s nerozoznateľnými názvami, ktoré vykonávajú rôzne akcie. Bez podrobnej analýzy nemôžete okamžite pochopiť, ktorá z týchto dvoch funkcií sa volá na konkrétnom mieste.

Ako ochranné opatrenie, Odporúča sa implementovať do kompilátorov, tlmočníkov a zostavovacích nástrojov, ktoré podporujú znaky Unicode, zobrazujúce chybu alebo varovanie či sú v komentároch, reťazcových literáloch alebo identifikátoroch nepárové riadiace znaky, ktoré menia smer výstupu. Tieto znaky musia byť tiež výslovne zakázané v špecifikáciách programovacieho jazyka a musia byť zohľadnené v editoroch kódu a rozhraniach pre prácu s repozitármi.

okrem toho zraniteľnosti sa už začali opravovať pripravené pre GCC, LLVM / Clang, Rust, Go, Python a binutils. GitHub, Bitbucket a Jira už tiež pripravujú riešenie spolu s GitLabom.

Konečne Ak máte záujem dozvedieť sa viac, môžete sa poradiť podrobnosti v nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Za údaje zodpovedá: AB Internet Networks 2008 SL
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.