634 salasanaa 56 sekunnissa
Kehittäjä kävi läpi kaksi haastattelukierrosta väärennetyn yrityksen kanssa. Aito verkkosivusto, aidot kasvot, aidot tekniset keskustelut. Sitten he ajoivat kooditehtävän. Alle minuutissa kaikki Chromen salasanaat, macOS Keychain ja kryptolompakon tiedot olivat hävinneet.
Kehittäjä — tietoturvasta tietoinen, kokenut, henkilö joka etsii aktiivisesti huijauksia — kävi läpi monivaiheisen haastatteluprosessin väärennetyn yrityksen kanssa. HR-puhelu. Tekninen haastattelu kahden insinöörin kanssa. Aito verkkosivusto, jossa tiimin valokuvat. Aidot LinkedIn-profiilit. Viikkoja kestänyt luottamuksen rakentaminen.
Sitten heitä pyydettiin ajamaan pieni kooditehtävä ruudunjaon aikana.
56 sekunnin kuluttua hyökkääjillä oli 634 Chromeen tallennettua salasanaa, macOS Keychain -tiedosto (joka sisältää niiden salauksen purkavan avaimen) ja MetaMask-lompakon tiedot.
Miten hyökkäys toimi
GitHub-repositorio näytti puhtaalta. Muutama backend-tiedosto, ei mitään epäilyttävää. Mutta yhdellä riippuvuudella — winston-middleware, normaalilta kuulostavalta lokituspaketilla — oli oma riippuvuutensa: next-runtimejs.
Siellä ase oli.
Heti kun npm install suoritettiin, shell-skripti käynnistyi hiljaa. Ei kehotteita, ei varoituksia. Se latai Go:han perustuvan takaportin ja rekisteröi sen automaattiseen käynnistykseen jokaisella käynnistyksellä.
Tämä ei ollut script kiddie -työkalu. Räätälöity RC4-salattu C2-protokolla. Komennot shellin suorittamiseen, tiedostovarkauksiin, Chrome-salasanojen poimintaan, Keychainin ulosviemiseen ja kryptolompakoiden kohdentamiseen. Ammattimaisesti rakennettu.
Takaportti käynnistyi kello 16:16:37. Chrome-salasanoihin päästiin käsiksi kello 16:17:33. Kehittäjä huomasi macOSin ponnahdusikkunan lähtevästä yhteydestä ja katkaisi WiFi:n minuutin kuluessa — mutta vahinko oli jo tapahtunut.
Miksi haastattelu oli tärkeä
Tämä hyökkäys epäonnistuisi kylmänä sähköpostina. "Aja tämä repo" -viesti tuntemattomalta jätetään huomiotta.
Mutta kahden haastattelukierroksen jälkeen? Sen jälkeen, kun olette yhdessä nauraneet sille, kuinka moni väärennetty työpaikkahuijaus kohdistuu kehittäjiin? Sen jälkeen, kun yksi haastattelijoista sanoi hymyssä suin "Etsikää vapaasti takaportteja"?
Silloin valppaus laskee. Luottamus on hyökkäysvektori. Haittaohjelma on vain hyökkäyksen varsinainen kuorma.
Kehittäjä sanoi parhaiten: "Jos se tapahtui minulle, se voi tapahtua kenelle tahansa tiimissänne."
Mitä Chromeen tallennetut salasanaat tarkoittavat
Chrome salaa tallennetut salasanaat AES:llä. Salauksen purkuavain tallennetaan macOS Keychainiin. Hyökkääjät varastivat molemmat tiedostot alle minuutissa.
Jokainen tallennettu salasana — pankki, sähköposti, GitHub, pilvikonsolit — oli luettavissa heidän päässään. Keychain-tiedoston voi murtaa offline-tilassa ilman nopeusrajoituksia. Kehittäjän täytyi vaihtaa kaikki.
Tämä on selaimessa tallennettujen salasanojen likainen salaisuus: ne on salattu avaimella, joka asuu samalla koneella. Kompromisoi kone, ja "salaus" on vain koristelua.
DPRK-kaava
Kehittäjä mainitsi, että heidän edellinen yrityksensä oli myös Pohjois-Korean hakkeroinnin kohteena kolme kuukautta aiemmin. Tämä on "Contagious Interview" -kampanja — DPRK:n valtion tukemat hyökkääjät, jotka pitävät väärennettyjä työpaikkahaastatteluja asentaakseen haittaohjelmia kehittäjien koneille.
Se ei ole satunnaista. He kohdistavat hyökkäyksensä nimenomaan kehittäjiin siitä syystä, mihin kehittäjillä on pääsy: tuotantotunnukset, allekirjoitusavaimet, pilvi-infrastruktuuri ja — yhä enemmän — AI-agenttien tokenit, joilla pääsee entistä laajemmin.
Mittakaava on teollinen. Väärennettyjä yrityksiä, joissa generoidut kasvot. Kiillotetut verkkosivustot. Monen viikon haastatteluprosessit. He sijoittavat, koska tuotto on olemassa.
"Salasanojen hallintaohjelmat eivät auta"
Kehittäjä esitti ketjussa mielenkiintoisen väitteen: "Salasanojen hallintaohjelmat eivät auta, jos heillä on tällaisen takaportin avulla pääsy tietokoneeseenne, koska he voivat myöhemmin lähettää minkä tahansa tiedoston, rakentaa juuri teille räätälöidyn hyökkäyksen, käyttää näppäimistön kirjainten kirjausta ja kuvakaappauksia."
Tämä on osittain oikein ja osittain väärin.
Salasanojen hallintaohjelma, joka tallentaa holvinsa paikalliselle levylle ja jonka kirjoittamanne pääsalasana avaa — kyllä, takaportti, jossa on näppäimistön kirjainten kirjaus ja tiedostopääsy, voi kompromisoida sen.
Mutta salasanojen hallintaohjelma, jossa avaimet on sidottu laitteistoon — jossa salauksen purkuavain johdetaan fyysisestä todentimesta eikä koskaan ole tiedostona levyllä — on perustavanlaatuisesti erilainen. Takaportti voi varastaa tiedostoja, kirjata näppäinpainalluksia ja ottaa kuvakaappauksia. Mutta se ei voi poimia avainta, joka on olemassa vain laitteistoturvamodulin sisällä fyysisen kosketuksen aikana.
Ne 634 Chrome-salasanaa varastettiin, koska sekä salattu data että salauksen purkuavain olivat tiedostoina tiedostojärjestelmässä. Jos salauksen purkuavain edellyttää laitteen fyysistä hallussapitoa, tiedostojen varastaminen antaa salattuja lohkoja eikä mitään muuta.
Mitä tehdä
- Älkää koskaan ajako haastattelukoodia ensisijaisella koneellanne. Käyttäkää virtuaalikonetta tai erillistä laitetta.
- Ajakaa
npm install --ignore-scriptskaikissa tuntemattomissa repostoissa ennen suorittamista - Käyttäkää ulosmenevää palomuuria (Little Snitch, LuLu), joka hälyttää uusista yhteyksistä
- Lopettakaa salasanojen tallentaminen Chromeen. Piste.
- Pidäkää kryptovaluutta laitteistolompakoissa, ei selainlaajennuksissa
- Pitäkää jokaista rekrytoijan kooditehtävää mahdollisesti vihamielisenä, riippumatta siitä, kuinka monta puhelua olette käyneet
Kehittäjä selvisi, koska macOSin ponnahdusikkuna havaitsi lähtevän yhteyden ajoissa. Useimmat ihmiset olisivat klikanneet Salli miettimättä.
56 sekuntia. Siinä kaikki.