Trojan Source, útok, který umožňuje přidávání změn kódu neviditelných pro vývojáře

Před pár dny Uvedli to vědci z Cambridgeské univerzity zveřejnění technika, jak nenápadně nahrazovat kódy škodlivé ve zdrojovém kódu aplikace.

Způsob útoku to připravil Je již uveden pod CVE-2021-42574 Přichází pod názvem Trojan Source a je založen na vytváření textu, který vypadá jinak než kompilátor/interpret a osoba, která si kód prohlíží.

O zdroji trojského koně

Metoda spoléhá na použití speciálních znaků Unicode v komentářích kódu, které mění pořadí zobrazení obousměrného textu. S pomocí těchto řídicích znaků některé části textu lze zobrazit zleva doprava, zatímco jiné zprava doleva.

V každodenní praxi lze tyto řídicí znaky použít například pro vložení hebrejských nebo arabských řetězců do souboru kódu. Pokud však tyto znaky použijete ke kombinaci řádků s různými směry textu na stejném řádku, textové pasáže zobrazené zprava doleva mohou překrývat stávající normální text zobrazený zleva doprava.

S touto metodou, do kódu lze přidat škodlivý konstrukt, ale pak text s touto konstrukcí zneviditelní při prohlížení kódu přidáním znaků zobrazených zprava doleva v dalším komentáři nebo do doslovu, což povede k tomu, že na zákeřné vložce budou překryty úplně jiné znaky. Takový kód bude stále sémanticky správný, ale bude interpretován a zobrazován odlišně.

Objevili jsme způsoby, jak manipulovat s kódováním souborů zdrojového kódu tak, aby lidští diváci a kompilátoři viděli jinou logiku. Jedna obzvláště zhoubná metoda používá znaky přepisující směrovost Unicode k zobrazení kódu jako anagramu jeho skutečné logiky. Ověřili jsme, že tento útok funguje proti C, C++, C #, JavaScript, Java, Rust, Go a Python a máme podezření, že bude fungovat proti většině ostatních moderních jazyků.

Při kontrole kódu vývojář bude čelit vizuálnímu pořadí postav a v editoru uvidí podezřelý komentář text, webové rozhraní nebo IDE, ale kompilátor a interpret použije logické pořadí znaků a zpracuje škodlivý kód jak je, bez ohledu na obousměrný text v komentáři. Postiženo je několik populárních editorů kódu (VS Code, Emacs, Atom) a také rozhraní pro prohlížení kódu v úložištích (GitHub, Gitlab, BitBucket a všechny produkty Atlassian).

Existuje několik způsobů, jak použít metodu k implementaci škodlivých akcí: přidat skrytý výraz "návrat", který vede k předčasnému ukončení provádění funkce; závěr v komentáři výrazů, které jsou normálně považovány za platné konstrukty (například pro zakázání důležitých kontrol); Přiřazení dalších hodnot řetězce vedoucí k selhání ověření řetězce.

Navíc, byla navržena další možnost útoku (CVE-2021-42694), která zahrnuje použití homoglyfů, symboly, které vypadají podobně, ale liší se významem a mají různé kódy Unicode. Tyto znaky lze v některých jazycích použít v názvech funkcí a proměnných, aby uvedly vývojáře v omyl. Můžete například definovat dvě funkce s nerozlišitelnými názvy, které provádějí různé akce. Bez podrobné analýzy nemůžete okamžitě pochopit, která z těchto dvou funkcí je volána na konkrétním místě.

Jako ochranné opatření, doporučuje se implementovat do kompilátorů, interpretů a sestavení nástroje, které podporují znaky Unicode, zobrazující chybu nebo varování zda jsou v komentářích, řetězcových literálech nebo identifikátorech nespárované řídicí znaky, které mění směr výstupu. Tyto znaky musí být také výslovně zakázány ve specifikacích programovacího jazyka a musí být zohledněny v editorech kódu a rozhraních pro práci s repozitáři.

kromě toho zranitelnosti se již začaly opravovat připraveno pro GCC, LLVM / Clang, Rust, Go, Python a binutils. GitHub, Bitbucket a Jira již také společně s GitLabem připravují řešení.

Konečně Máte-li zájem o tom vědět více, můžete se poradit podrobnosti v následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.