Uzbrukuma koda redaktoriem demonstrācija, kas izraisa failu noplūdi, atverot pirmkodus

Ir demonstrēta metode, kā uzbrukt VSCode koda redaktoram, kas ļauj pārsūtīt patvaļīgus failus pašreizējā lietotāja tiesību ietvaros, atverot redaktorā īpaši izstrādātu pirmkodu. Šajā demonstrācijā, atverot Rust kodu, kas izmanto procesuālo makro, tas izveido savienojumu ar resursdatoru 127.0.0.1:8080 un nosūta faila "~/.ssh/id_rsa" saturu ar lietotāja SSH atslēgām.

Lai panāktu kompromisu, pietiek vienkārši atvērt failu ar kodu, neveicot nekādas citas darbības ar projektu. Lai piemērs darbotos, VSCode ir nepieciešams rūsas analizatora spraudnis (saistīšana standarta rustc kompilatora augšpusē) un rīku klātbūtne sistēmā darbam ar kodu Rust valodā. Problēma ir saistīta ar procesuālo makro paplašināšanu sākotnējās koda analīzes laikā. Līdzīgu efektu var panākt arī kompilēšanas laikā, izmantojot komandu "kravas uzbūve".

Jāatzīmē, ka problēma var ietekmēt citus kodu redaktorus un programmēšanas valodas. VSCode un rūsas analīze tiek izmantoti tikai uzbrukuma vektora demonstrēšanai. Teorētiski jebkurš koda redaktors, kas atklāj procesuālos makro, kas ļauj izveidot sintakses paplašinājumus un izpildīt kodu kompilēšanas laikā, ir jutīgs pret problēmu. Pētnieks sākotnēji pētīja ļaunprātīgu darbību iespējamību koda kompilēšanas laikā, taču atklāja, ka procesuālie makro tika paplašināti, kad pirmkods tika apstrādāts koda redaktoros. Uzbrukums, iespējams, var ietekmēt citas programmēšanas valodas, piemēram, Java ar anotāciju apstrādi var manipulēt līdzīgi.



Avots: opennet.ru

Pievieno komentāru