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.
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.
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.
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. |
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.
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.
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:
SendCommand või kubectl exec mustrite kohta, eriti nende puhul, mis pärinevad ootamatutelt teenusekontodelt.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:
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.



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