Küberturvalisus

Kuidas üksainus VS Code'i laiendus avas väravad GitHubi sisemisele koodibaasile

GitHub kinnitab enam kui 3800 sisemise hoidla andmeleket. Uurige, kuidas mürgitatud VS Code'i laiendus ja rühmitus TeamPCP kompromiteerisid tarkvara tarneahelat.
Kuidas üksainus VS Code'i laiendus avas väravad GitHubi sisemisele koodibaasile

Kaasaegse tarkvaraarenduse arhitektuuriline paradoks on see, et meie kõige turvalisemad kindlused toetuvad sageli kõige hapramatele tööriistadele. Me ehitame kõrge käideldavusega, globaalselt jaotatud platvorme, millel on mitu krüpteerimiskihti ja mitmeteguriline autentimine, kuid kogu see ehitis toetub sageli ühe arendaja tööjaama terviklikkusele. Eelmisel teisipäeval jõudis see reaalsus kohale GitHubile, Microsoftile kuuluvale tütarettevõttele, mis toimib maailma lähtekoodi de facto hoidlana. Kuigi GitHubi esmane infrastruktuur on endiselt vastupidav, võimaldas ühe töötaja seadme kompromiteerimine TeamPCP-na tuntud ründajal eksfiltreerida ligikaudu 3800 sisemist hoidlat.

Riski vaatenurgast on see vahejuhtum õpikunäide sellest, kuidas missioonikriitilisest keskkonnast saab mööda minna mitte põhiplatvormi nullpäeva haavatavuse kaudu, vaid perifeersete tööriistade abil, mida arendajad sellega suhtlemiseks kasutavad. Tänapäeva arendaja ründepinna hindamine tähendab pilvekonsoolist kaugemale vaatamist ja kohaliku IDE (integreeritud arenduskeskkonna) kontrollimist. Antud juhul oli väravaks mürgitatud Microsoft Visual Studio Code'i laiendus. See on kaine meeldetuletus, et kuigi me käsitleme krüpteerimist kui purunematut digitaalset seifi, on see seif vaid nii turvaline kui inimene, kes hoiab võtmeid — ja tööriistad, mida ta nende keeramiseks kasutab.

Varastatud saladuste turg

Lugu tuli avalikuks, kui TeamPCP, ründaja, kes on juba tuntud mitmete tarneahela rünnakute poolest, pani GitHubi sisemise lähtekoodi müüki tuntud küberkuritegevuse foorumis. Küsimishind oli 50 000 dollarit, mida rühmitus nimetas nipsakalt oma pensionifondiks. Erinevalt traditsioonilistest lunavararühmitustest, mis elatuvad digitaalsetest pantvangisituatsioonidest, teatas TeamPCP selgelt, et tegemist ei ole väljapressimiskatsega. Nad kavatsesid müüa andmed ühele ostjale ja seejärel oma koopia "hävitada" või lekitada need tasuta, kui ostjat ei ilmu.

Kui nägin esimest korda Dark Web Informeri jagatud ekraanitõmmiseid, võtsin Signali kaudu ühendust mõne intsidentidele reageerijaga, et väiteid kontrollida. Kuigi foorumites hooplemine on tavaline, olid TeamPCP esitatud tehnilised üksikasjad — täpsemalt hoidlate arv ja nimekonventsioonid — liiga detailsed, et neid ignoreerida. GitHub kinnitas lõpuks, et ründaja väide ligikaudu 3800 hoidla kohta oli kooskõlas nende sisemise kohtuekspertiisi uurimisega. See eksfiltreerimine kujutab endast olulist konfidentsiaalsuse rikkumist, isegi kui platvormil hoitavate kliendiandmete terviklikkus on GitHubi sõnul hetkel mõjutamata.

IDE kui varjatud sisenemispunkt

GitHubi uurimine tuvastas, et kompromiss sai alguse mürgitatud VS Code'i laiendusest. Kuigi nad ei nimetanud ametlikult konkreetset pluginat, ühtib ajastus täpselt Nx Console'i laienduse teadaoleva kompromiteerimisega. Siinkohal muutub arhitektuuriline paradoks kõige nähtavamaks: GitHub eeldas, et nende ranged sisemised juurdepääsukontrollid leevendavad riske, kuid usaldusväärse arendustööriista haavatavus muutis need piirded aegunuks.

Kulisside taga kasutas ründaja tõenäoliselt laiendusse sisse ehitatud mitmeastmelist mandaatide varastajat. Kuna arendajad annavad oma IDE-dele sageli laialdased õigused kohalike failide, keskkonnamuutujate ja SSH-võtmetega suhtlemiseks, on kompromiteeritud laiendus sisuliselt VIP-klubi turvamees, kes on otsustanud vale seltskonna tagauksest sisse lasta. Kui laiendus oli töötaja seadmes aktiivne, oli ründajal lihtne koguda sisemiste hoidlate kloonimiseks vajalikke tokeneid ja mandaate. Sellest tulenevalt oli GitHub sunnitud algatama massilise saladuste rotatsiooni, seades prioriteediks suurima mõjuga mandaadid, et vältida edasist tegevust.

Mini Shai-Huludi uss ja PyPI mürgitamine

GitHubi sisemiste hoidlate rikkumine ei olnud isoleeritud sündmus; see oli pöördepunkt palju suurema ja läbivama kampaania jaoks. TeamPCP kasutas varastatud mandaate, et kompromiteerida GitHubi konto, millel oli juurdepääs durabletask PyPI paketile — ametlikule Microsofti Pythoni kliendile. Avaldades pahatahtlikud versioonid (1.4.1, 1.4.2 ja 1.4.3), muutsid ründajad lokaalse rikkumise globaalseks tarneahela ohuks.

See pahavara, mille uurijad ristisid "Mini Shai-Huludiks", on eriti varjatud. Tegemist on isepaljuneva droperiga, mis käivitub hetkel, kui pakett imporditakse. Ohumaastikku vaadates näeme Pythoni pakettides harva sellist keerukuse taset. Kandematerjal, teise etapi skript nimega rope.pyz, on täisfunktsionaalne infovarastaja, mis on loodud spetsiaalselt Linuxi süsteemide jaoks. See ei otsi ainult paroole; see püüab aktiivselt avada ja tühjendada 1Passwordi ja Bitwardeni hoidlaid, koguda HashiCorp Vaulti KV saladusi ning kopeerida Dockeri ja VPN-i konfiguratsioone.

Funktsioon Mini Shai-Huludi kirjeldus
Siht-OS Spetsiaalselt optimeeritud Linuxi keskkondade jaoks.
Püsivus Kasutab varastatud tokeneid pilveinstantside vahel levimiseks.
Varjatus Käivitub importimisel hääletult, ilma nähtavate veateadeteta.
Eksfiltreerimine Sihib SSH-võtmeid, pilveteenuse pakkujate mandaate ja paroolihaldureid.
Geofencing Sisaldab loogikat hävitavate käskude täitmiseks konkreetsete piirkondlike seadete puhul.

Külgsuunaline liikumine pilveinfrastruktuuri kaudu

Selle kampaania teeb tõeliselt ohtlikuks see, kuidas see kasutab levimiseks kaasaegset infrastruktuuri. Kui pahavara tuvastab, et see töötab AWS-i keskkonnas, püüab see kasutada AWS Systems Manageri (SSM), et hüpata teistele EC2 instantsidele. Ennetavalt rääkides muudab see ühe nakatunud arendaja masina või CI/CD konveieri sisemise ussi stardiplatvormiks. Kui see leiab end Kubernetes-klastrist, kasutab see levimiseks käsku kubectl exec.

Vastumeetmena toetuvad organisatsioonid sageli võrgu segmenteerimisele, kuid see pahavara möödub võrgu piiridest täielikult, kasutades legitiimseid haldusprotokolle. See kasutab isegi põnevat varu-C2 (Command and Control) mehhanismi nimega FIRESCALE. Kui peamine domeen on blokeeritud, otsib pahavara avalikest GitHubi commit-sõnumitest konkreetseid base64-kodeeritud stringe, et leida uus aadress. Selline detsentraliseeritud lähenemine C2-le muudab ohu tavapäraste domeeniblokeerimise tehnikate suhtes erakordselt vastupidavaks.

Inimliku ja tehnilise järelmi hindamine

Aastatepikkuse APT-de (Advanced Persistent Threats) analüüsimise jooksul olen leidnud, et kulutame sageli liiga palju aega küsimusele "mis" ja mitte piisavalt küsimusele "kuidas". "Mis" on siin 3800 hoidlat, kuid "kuidas" on inimtulemüüri süstemaatiline ebaõnnestumine koos liigse lootmisega kolmandate osapoolte laienduste terviklikkusele. Me käsitleme oma IDE-sid kui privaatseid tööruume, kuid tegelikkuses on need osa ettevõtte ründepinnast.

Sellel konkreetsel ründajal on ka tumedam ja ebakindlam külg. Aikido Security analüütikud avastasid, et pahavara sisaldab "üks kuuest" võimalust esitada heli ja käivitada rm -rf /*, kui see tuvastab Iisraeli või Iraani süsteemiseaded. See lisab digitaalset nihilismi muidu väga professionaalsesse mandaatide kogumise operatsiooni. See viitab sellele, et kuigi TeamPCP on motiveeritud kasumist, ei ole nad vastu süsteemse kaose tekitamisele selle enda pärast.

Ennetav kaitse: õppetunnid GitHubi rikkumisest

Jättes kõrvale paikamise, on siin õppetunniks see, et peame rakendama nullusalduse (Zero Trust) põhimõtteid mitte ainult oma võrkudes, vaid ka arenduskeskkondades. Iga masinat või konveierit, kuhu on paigaldatud durabletask mõjutatud versioonid, tuleks käsitleda täielikult kompromiteerituna. Asjaolu, et paketti laaditakse alla üle 400 000 korra kuus, tähendab, et selle rikkumise vari jääb tööstuse kohale veel mõneks ajaks.

Oma digitaalse jalajälje turvamiseks enne järgmist suurt rikkumist soovitan järgmisi samme:

  • Auditeerige IDE laiendusi: Suhtuge VS Code'i laiendustesse sama põhjalikult kui kolmandate osapoolte teekidesse. Kasutage sisemisi turge või lubatud loendeid, et takistada arendajatel kontrollimata pluginate installimist.
  • Kasutage lühiajalisi tokeneid: Kasutage CI/CD konveierite jaoks OIDC-d (OpenID Connect) ja vältige pikaajalisi PAT-e (Personal Access Tokens), mida on lihtne eksfiltreerida ja taaskasutada.
  • Jälgige SSM-i ja K8s-i tegevust: Seadistage hoiatused ebatavaliste SendCommand või kubectl exec mustrite kohta, eriti nende puhul, mis pärinevad ootamatutelt teenusekontodelt.
  • Saladuste haldamise audit: Loobuge saladuste hoidmisest keskkonnamuutujates või kohalikes failides. Kasutage tsentraliseeritud, turvatud saladuste haldurit, mis nõuab juurdepääsuks riistvarapõhist MFA-d.
  • Kontrollige PyPI sõltuvusi: Kui teie organisatsioon kasutab paketti durabletask, kontrollige, et te ei kasuta versioone 1.4.1 kuni 1.4.3. Kinnitage oma sõltuvused teadaolevalt headele versioonidele ja kasutage avalike pakettide vahendamiseks privaatset hoidlahaldurit.

Võrgu perimeeter on vananenud lossikraav; uus lahinguväli on arendaja sülearvuti. Seni, kuni me käsitleme iga pluginat ja paketti kui potentsiaalset Trooja hobust, näeme jätkuvalt, kuidas isegi kõige vastupidavamad organisatsioonid kaotavad oma kroonijuveele üheainsa mürgitatud koodirea tõttu.

Allikad:

  • GitHub Incident Response and Security Blog (May 2026 update)
  • MITRE ATT&CK Framework: T1195 (Supply Chain Compromise), T1552 (Unsecured Credentials)
  • Wiz Research: Analysis of PyPI Package Poisoning
  • StepSecurity: Investigation into FIRESCALE C2 Mechanisms
  • NIST Special Publication 800-204: Security Strategies for Microservices-based Applications

Hoiatus: See artikkel on koostatud ainult informatiivsel ja hariduslikul eesmärgil ning ei asenda professionaalset küberjulgeoleku auditit ega intsidentidele reageerimise teenust. Autor ja kirjastaja ei vastuta siin esitatud teabe põhjal tehtud toimingute eest.

bg
bg
bg

Kohtumiseni teisel poolel.

Meie läbivalt krüpteeritud e-posti ja pilvesalvestuse lahendus pakub kõige võimsamaid vahendeid turvaliseks andmevahetuseks, tagades teie andmete turvalisuse ja privaatsuse.

/ Tasuta konto loomin