Trojas avots, uzbrukums, kas ļauj pievienot izstrādātājam neredzamas koda izmaiņas

Pirms dažām dienām Kembridžas universitātes pētnieki izlaiduši publikācija paņēmiens, lai smalki aizstātu kodus ļaunprātīgs lietojumprogrammas pirmkods.

Uzbrukuma metode to sagatavoja Tas jau ir norādīts CVE-2021-42574 Tas nāk ar nosaukumu Trojas avots, un tā pamatā ir tāda teksta veidošana, kas kompilatoram/tulkam un personai, kas skatās kodu, izskatās savādāk.

Par Trojas avotu

Metode paļaujas uz īpašu unikoda rakstzīmju lietošanu koda komentāros, kas maina divvirzienu teksta attēlošanas secību. Ar šo vadības rakstzīmju palīdzību dažas teksta daļas var parādīt no kreisās puses uz labo, bet citas no labās uz kreiso.

Ikdienas praksē šīs vadības rakstzīmes var izmantot, piemēram, lai koda failā ievietotu ebreju vai arābu valodas virknes. Tomēr, ja izmantojat šīs rakstzīmes, lai vienā rindiņā apvienotu rindas ar dažādiem teksta virzieniem, teksta fragmenti, kas tiek rādīti no labās uz kreiso pusi, var pārklāties ar esošo parasto tekstu, kas tiek rādīts no kreisās puses uz labo.

Izmantojot šo metodi, kodam var pievienot ļaunprātīgu konstrukciju, bet pēc tam padariet tekstu ar šo konstrukciju neredzamu, skatoties kodu, pievienojot nākamajā komentārā vai literāla iekšpusē parādītās rakstzīmes no labās uz kreiso pusi, kā rezultātā uz kaitīgā ievietojuma tiks uzliktas pavisam citas rakstzīmes. Šāds kods joprojām būs semantiski pareizs, taču tas tiks interpretēts un attēlots atšķirīgi.

Mēs esam atklājuši veidus, kā manipulēt ar pirmkoda failu kodējumu, lai skatītāji un kompilatori redzētu atšķirīgu loģiku. Viena īpaši kaitīga metode izmanto Unikoda virziena ignorēšanas rakstzīmes, lai parādītu kodu kā tā patiesās loģikas anagrammu. Mēs esam pārliecinājušies, ka šis uzbrukums darbojas pret C, C ++, C #, JavaScript, Java, Rust, Go un Python, un mums ir aizdomas, ka tas darbosies pret lielāko daļu citu mūsdienu valodu.

Pārskatot kodu, izstrādātājs saskarsies ar tēlu vizuālo secību un redaktorā redzēs aizdomīgu komentāru teksts, tīmekļa saskarne vai IDE, bet kompilators un tulks izmantos rakstzīmju loģisko secību un apstrādās ļaunprātīgo kodu kā ir, neatkarīgi no divvirzienu teksta komentārā. Tiek ietekmēti vairāki populāri kodu redaktori (VS Code, Emacs, Atom), kā arī saskarnes koda skatīšanai krātuvēs (GitHub, Gitlab, BitBucket un visi Atlassian produkti).

Ir vairāki veidi, kā izmantot metodi, lai īstenotu ļaunprātīgas darbības: pievienojiet slēptu "atgriešanās" izteiksmi, kas noved pie funkcijas izpildes priekšlaicīgas pārtraukšanas; secinājums komentārā par izteiksmēm, kuras parasti tiek uzskatītas par derīgām konstrukcijām (piemēram, lai atspējotu svarīgas pārbaudes); citu virkņu vērtību piešķiršana, kas izraisa virknes validācijas kļūmes.

Turklāt, tika piedāvāta cita uzbrukuma iespēja (CVE-2021-42694), kas ietver homoglifu izmantošanu, simboli, kas pēc izskata ir līdzīgi, bet atšķiras pēc nozīmes un kuriem ir atšķirīgi Unikoda kodi. Šīs rakstzīmes dažās valodās var izmantot funkciju un mainīgo nosaukumos, lai maldinātu izstrādātājus. Piemēram, varat definēt divas funkcijas ar neatšķiramiem nosaukumiem, kas veic dažādas darbības. Bez detalizētas analīzes jūs nevarat uzreiz saprast, kura no šīm divām funkcijām tiek izsaukta noteiktā vietā.

Kā aizsardzības pasākums, ieteicams ieviest kompilatoros, tulkos un montāžas rīkos, kas atbalsta unikoda rakstzīmes, parādot kļūdu vai brīdinājumu vai komentāros, virkņu literāļos vai identifikatoros ir nesapārotas vadības rakstzīmes, kas maina izvades virzienu. Šīs rakstzīmes ir arī skaidri jāaizliedz programmēšanas valodas specifikācijās, un tās ir jāņem vērā kodu redaktoros un saskarnēs darbam ar krātuvēm.

Bez tam ievainojamības jau ir sāktas novērst sagatavots GCC, LLVM / Clang, Rust, Go, Python un binutils. Arī GitHub, Bitbucket un Jira kopā ar GitLab jau gatavo risinājumu.

Beidzot Ja jūs interesē uzzināt vairāk par to, jūs varat konsultēties sīkāku informāciju šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.