Pētnieki ir atklājuši, ka ir pārsteidzoši viegli augšupielādēt ļaunprātīgus Visual Studio Code paplašinājumus VSCode Marketplace vidē, un atklāja pazīmes, ka šo ievainojamību jau izmanto Draudu dalībnieki (threat actors).
Visual Studio Code (VSC) ir Microsoft publicēts pirmkoda redaktors, ko izmanto aptuveni 70% profesionālu programmatūras izstrādātāju visā pasaulē.
Microsoft nodrošina arī integrētu iztrādes vidi (IDE) paplašinājumu tirgu ar nosaukumu VSCode Marketplace, kurā tiek piedāvāti papildinājumi, kas paplašina lietojumprogrammas funkcionalitāti un nodrošina vairāk pielāgošanas iespēju.
Daži no šiem paplašinājumiem ir lejupielādēti desmitiem miljonu reižu, tāpēc, ja būtu viegls veids, kā tos viltot platformā, ļaunprātīgie dalībnieki (malicious actors) varētu ātri iegūt ievērojamu upuru skaitu.
Šie paplašinājumi darbojas ar lietotāja privilēģijām inficētajos datoros, un tos var izmantot, lai instalētu papildu programmas, nozagtu vai manipulētu ar pirmkodu VSCode IDE un pat izmantotu izstrādātāja SSH (Secure Shell) atslēgu, lai piekļūtu pievienotajiem GitHub repozitorijiem.
Saskaņā ar jauno AquaSec ziņojumu pētnieki ir atklājuši, ka ir diezgan viegli augšupielādēt ļaunprātīgus paplašinājumus Microsoft Visual Studio Code Marketplace un jau ir atraduši dažus esošos paplašinājumus, kas ir ļoti aizdomīgi.
Ļaunprātīgu paplašinājumu izplatīšana
Veicot eksperimentu ar ļaunprātīga paplašinājuma augšupielādi VSCode Marketplace, AquaSec komanda mēģināja typosquat populāru koda formatēšanas paplašinājumu “Prettier”, kas ir lejupielādēts vairāk nekā 27 miljonos eksemplāru.
Tomēr, izveidojot paplašinājumu, viņi konstatēja, ka var atkārtoti izmantot īstā paplašinājuma logo un aprakstu, un piešķirt tam tādu pašu nosaukumu kā īstajam paplašinājumam.
Acīmredzot izdevējiem ir atļauts izmantot īpašību (property called) “displayName”, tāpēc papildinājuma nosaukumam, kas parādās virtuālā tirgus lapā, nav jābūt unikālam.
Attiecībā uz projekta informāciju, kurā tiek rādīta GitHub statistika, AquaSec konstatēja, ka šī sadaļa tiek automātiski atjaunināta no GitHub. Tomēr izdevējs joprojām var brīvi rediģēt statistikas datus, tāpēc tos var mainīt, lai radītu iespaidu, ka projekts ir aktīvs un ar ilgu attīstības vēsturi.
Tas neļāva viltotajam paplašinājumam tikt uzskaitītam ar tādu pašu lejupielāžu skaitu un tādu pašu meklēšanas rezultātu, taču pētnieki varēja atdarināt likumīgā paplašinājuma GitHub projekta nosaukumu, pēdējos versiju kontroles sistēmas commit laikus, Pull Request (PR) un atvērtās problēmas.
“Tomēr laika gaitā mūsu viltus paplašinājumu būs lejupielādējis aizvien vairāk nezinošu lietotāju. Šiem skaitļiem pieaugot, paplašinājums iegūs ticamību,” skaidroja AquaSec pētnieki.
“Turklāt, tā kā tumšajā tīmeklī ir iespējams iegādāties dažādus pakalpojumus, ļoti apņēmīgs uzbrucējs, iespējams, varētu manipulēt ar šiem skaitļiem, iegādājoties pakalpojumus, kas palielinātu lejupielāžu un zvaigžņu skaitu.”
Visbeidzot, analītiķi atklāja, ka platformas pārbaudes nozīmīte gandrīz neko nenozīmē, jo jebkurš izdevējs, kas ir iegādājies jebkuru domēnu, pēc domēna īpašumtiesību pierādīšanas saņem zilu ķeksīti. Domēnam pat nav jābūt saistītam ar programmatūras projektu.
AquaSec izveidotais koncepcijas pierādījuma (PoC) paplašinājums 48 stundu laikā ieguva vairāk nekā 1500 instalāciju, un “cietušie” izstrādātāji bija visā pasaulē.
Aizdomīgi VSCode paplašinājumi jau pastāv
AquaSec ne tikai pierādīja, ka ir iespējams atdarināt populārus paplašinājumus VSCode Marketplace, bet arī atrada aizdomīgus piemērus, kas jau augšupielādēti tirgū.
Divi no šiem paplašinājumiem ar nosaukumiem “API Generator Plugin” un “code-tester” uzvedība bija ļoti problemātiska, jo tie ik pēc 30 sekundēm sūtīja HTTP pieprasījumus uz ārējo robotnowai.top URL un izpildīja atbildi, izmantojot funkciju “eval()”.
Šī informācijas apmaiņa notika, izmantojot HTTP, tāpēc tā pat nebija šifrēta, un tādējādi izstrādātāju datplūsma bija pakļauta Man-in-the-Middle uzbrukumiem.
Domēns robotnowai.top tika izvietots IP adresē, kurā saskaņā ar VirusTotalVirusTotal datiem jau sen izplatīti ļaunprātīgi faili, sākot no VBS un PowerShell skriptiem līdz Windows, Linux un Android ļaunprogrammatūrai.
AquaSec par abiem šiem paplašinājumiem ziņoja uzņēmumam Microsoft, tomēr šī raksta sagatavošanas laikā tie joprojām ir pieejami tirgū.
VSCode Marketplace ir piemērots ļaunprātīgai izmantošanai
Pētnieki brīdina, ka, lai gan Visual Studio Code paplašinājumus drošības pētnieki ir maz pārbaudījuši, Draudu dalībnieki parasti meklē jaunas metodes, lai uzlauztu uzņēmumu tīklus.
“Ļaunprātīgu VSCode paplašinājumu draudi ir reāli. Iespējams, ka iepriekš tam nav pievērsta vislielākā uzmanība, iespējams, tāpēc, ka mēs vēl neesam pieredzējuši kampaņu, kurā tas būtu atstājis milzīgu ietekmi,” secināts AquaSec ziņojumā.
“Tomēr uzbrucēji nemitīgi strādā pie tā, lai paplašinātu savu metožu arsenālu, kas ļauj īstenot ļaunprātīgu kodu organizāciju tīklos.”
Vēl sliktāk, AquaSec norāda, ka Microsoft piedāvā arī Visual Studio un Azure DevOps paplašinājumu tirgus, kas arī šķiet neaizsargāti pret ļaunprātīgiem paplašinājumiem.
Tā kā apdraudējuma dalībnieki parasti veic ļaunprātīgas typosquatting kampaņas citos paku repozitorijos, piemēram, NPM un PyPi, nebūtu pārsteidzoši, ja nākotnē viņi pievērstos Microsoft tirgiem.
Tāpēc kodu izstrādātājiem, kas izmanto VSCode paplašinājumus, ieteicams saglabāt modrību un rūpīgi pārbaudīt savus papildinājumus, pirms tos instalēt ražošanas iekārtās.