Haittaohjelma, jonka hyväksyitte, koska ette nähneet sitä
GlassWorm kätkee hyödyllisen kuormansa näkymättömiin Unicode-merkkeihin, jotka läpäisevät ihmisen koodikatselmuksen, ja lukee sitten valtuudet, jotka lojuvat työtilassanne. Näkymätön mato ei murra salausta. Sille tarvitaan tiedosto.
Koodikatselijanne luki vetopyynnön. Jokainen rivi näytti puhtaalta: versiopäivitys, pieni refaktorointi, dokumentin korjaus. Mikään ei näyttänyt vialliselta, koska se viallinen osa ei koskaan piirretty näytölle. Se oli kirjoitettu Unicode-merkeillä, joilla ei ole glyyfiä. Näkymätön silmille, näkymätön diff-näkymälle, näkymätön sille ihmisen hyväksynnälle, johon toimitusketjun turvallisuus yhä nojaa.
Se on GlassWorm. Lokakuusta lähtien Koi Securityn tutkijat ovat seuranneet ensimmäistä itsesiirtyvää matoa, joka leviää VS Code -laajennusten kautta, eikä se ole pysähtynyt [1]. Socket on merkinnyt yli seitsemänkymmentä uutta haitallista laajennusta Open VSX -kaupassa tammikuun lopun jälkeen [2]. Lataaja kätkeytyy näkymättömään Unicodeen, joten koodi lipuu katselmuksesta läpi näyttäen siistimiseltä.
Se, mitä se asennuksen jälkeen tekee, on tavanomaista, ja juuri se on pointti. Se lukee, mitä ympärillä lojuu. npm-valtuudet. GitHub-valtuudet. Git-konfiguraatio. Ympäristömuuttujat ja CI-salaisuudet, jotka ovat auki työtilassanne. Sitten se käyttää näitä varastettuja valtuuksia julkaistakseen lisää myrkytettyjä paketteja nimellänne, ja näin madosta tulee mato. Ohjaus ja hallinta kulkee Solana-tapahtumissa, joten palvelinta ei ole, mitä takavarikoida [3].
Tässä uusi näkökulma. Kukaan ei hakkeroinut @code:a. Open VSX:ää ei murrottu klassisessa mielessä. Laajennusmalli teki täsmälleen sen, mille se oli suunniteltu: asennatte apuvälineen, ja se suorittuu teidän oikeuksillanne, avoimessa projektissanne, salaisuuksienne vieressä. Malli rakennettiin maailmaan, jossa laajennuksen tekijä oli ainoa osapuoli, jota teidän piti luottaa. GlassWorm muuttaa luotetun tekijän tilin jakeluautoksi ja kätkee lastin merkkeihin, joita ette näe. Työkalu ei epäonnistunut. Uhkamalli siirtyi kaikkien alta yhtä aikaa.
Mikä johtaa epämukavaan kysymykseen omasta koneestanne. Kun laajennus, johon luotitte, avaa projektinne, mitä siellä on otettavissa?
Useimpien kehittäjien vastaus on: kaikki. Pitkäikäinen npm-valtuus dotfilessa. Henkilökohtainen käyttöoikeustunnus, jonka avulias asennusopas käski liittää kerran ja unohtaa. Salaisuudet env-tiedostossa, jonka jokainen koneen prosessi voi lukea. Nämä valtuudet ovat levossa, täsmälleen siellä missä koodi suorittuu, odottaen mitä tahansa paikallista käyttöä. Näkymätön mato editorissanne ei tarvitse murtaa salausta. Sille tarvitaan tiedosto.
Clavitor lähtee päinvastaisesta oletuksesta. Valtuus välitetään juuri silloin kun sitä tarvitaan, rajattuna siihen yhteen käyttötarkoitukseen, ja se vanhenee. Sitä ei koskaan kirjoiteta kehitysympäristöönne myöhempää löytämistä varten. Kun vihamielinen koodi haravoi työtilaa levossa olevista avaimista, siellä ei ole pysyvää npm-valtuutta, ikuisuutta kestävää GitHub PAT:ta, mitään, mikä elää pidempään kuin se sekunti, jona sitä käytettiin. Mato avaa laatikon, ja laatikko on tyhjä.
Rehellinen reuna: käytössä oleva valtuus on yhä elossa silloin kun sitä käytetään. Jos istunnonne on käynnissä ja vihamielinen koodi jakaa istunnon, se voi ratsastaa sillä, mikä on juuri tuolloin elossa, valtuuden lyhyen ikkunan ja kapean laajuuden sisällä. Tilapäinen, rajattu myöntäminen pienentää räjähdysvaikutusta ja kelloa. Se ei tee koneesta, jonka olette luovuttanut hyökkääjälle, turvallista. Mikään ei tee. Mutta on suuri ero hyökkääjällä, joka saa yhden rajatun valtuuden käytön aikana, ja hyökkääjällä, joka kopioi pysyvien avainten tiedoston ja omistaa teidät vuodeksi.
Kirjoitimme lyhyen luettelon siitä, mitä valtuusjärjestelmän ei koskaan pitäisi tehdä. Lähellä kärkeä: älkää jättäkö salaisuuksia siihen, missä koodi suorittuu. Lue ne täältä
Clavitor (@clavitorai) on tekoälyagentteja ja niitä vastaan rakennettu valtuusholvi. clavitor.ai
Lähteet
[1] Koi Security — "GlassWorm: ensimmäinen itsesiirtyvä mato, joka käyttää näkymätöntä koodia, iskee Open VSX -kauppaan" (tutkimusyritys; ei vahvistettua X-tunnusta)
[2] Socket, @TheHackersNews:n kautta — "GlassWorm-toimitusketjuhyökkäys hyväksikäyttää 72 Open VSX -laajennusta kohdatakseen kehittäjiä" (@SocketSecurity)
[3] @SecurityWeek — "Toimitusketjuhyökkäys kohdistuu VS Code -laajennuksiin GlassWorm-haittaohjelmalla"