Álcázott támadás vezette félre a fejlesztőt
A támadás kivitelezői észrevétlenül férkőztek a szoftver fenntartói közé: a fejlesztői fiók kéttényezős hitelesítéssel védett volt, ám a kompromittálódás oka egy hihetetlenül meggyőző deepfake-átverés volt. Egy észak-koreai hackercsoport, az UNC1069 keresett meg több, magas befolyású fejlesztőt úgy, hogy előbb hitelesnek tűnő levelekkel, majd MI-alapú videóhívásokkal léptek kapcsolatba. Ezeken a hívásokon az elkövetők sikeresen lemásolták (deepfake technológiával) valódi cégek vezetőinek arcvonásait és hangját, majd egy „technikai hibára” hivatkoztak, amely szerint csak egy program telepítése oldja meg a bajt. Valójában ezzel a támadók sikeresen rábeszélték áldozatukat a káros szoftver letöltésére.
Az elkövetők rendkívül profi Slack-munkaterületet hoztak létre, LinkedIn-profilokat hamisítottak, és szakmai, szervezeti csatornákat alakítottak ki, ezzel is növelve a hitelességet. A megtévesztett fejlesztő végül egy Microsoft Teams-megbeszélés után töltötte le azt a bővítményt, amely valójában egy távoli elérésű trójai volt. Mindez példás szervezettséggel és professzionális megjelenéssel történt.
Világszintű nyílt forráskódú láncreakció
Sorban több további befolyásos fejlesztő jelezte, hogy őket is hasonló szociális manipulációs kísérletek érték. Ezek között voltak a Socket mérnökei, köztük a vezérigazgató, aki olyan óriási npm-csomagokat fejlesztett, mint a WebTorrent, a StandardJS vagy a buffer. Ugyanígy Jordan Harband – aki több száz ECMAScript-polyfillt gondoz –, John-David Dalton (a 137 millió heti letöltést produkáló Lodash készítője), valamint Wes Todd, az Express és a Node Package Maintenance Working Group kulcsszereplője is áldozattá válhatott volna. Matteo Collina – a Platformatic társalapítója, a Node.js vezetője és a Fastify, Pino, Undici csomagok gondozója – szintén hasonló támadással találkozott, mint ahogy a 114 millió heti letöltést számláló dotenv készítője, Scott Motte is. Egyesek szerint szinte minden nagy csomagot fenntartó fejlesztő célkeresztbe került; több vizsgálat is ugyanazt a támadási metódust azonosította.
A támadás technikai kivitelezése példátlanul kifinomult
A StepSecurity jelentése szerint ez az egyik legkifinomultabb, legösszetettebb beszállítói lánc elleni támadás, amit valaha dokumentáltak az npm legfelső kategóriás csomagjainál. A támadók előre legyártottak három különálló malware-verziót macOS, Windows és Linux rendszerekre. Mindhárom platformot kevesebb mint 40 percen belül fertőzték meg, minden rosszindulatú fájl úgy készült, hogy telepítés után szinte azonnal kapcsolódjon a támadóhoz, majd eltüntesse önmagát és hamis adatokat jelenítsen meg. A malware-t a vezető fejlesztő hitelesítő adataival – nem a szokásos automatikus biztonsági folyamaton keresztül – publikálták az npm-re.
Belső védekezés és a jövő nehézségei
A fejlesztők jelentős változtatásokat vezettek be: visszaállították az érintett eszközokat, az összes jelszót cserélték, immutábilis verziókezelést alkalmaznak, OIDC-alapú közzétételt vezettek be, és a GitHub Actions munkafolyamataikat is naprakésszé tették. Ugyanekkor a botrány rávilágított arra, hogy a modern, nyílt forrású szoftverek alapját jelentő rendszerek milyen sebezhetők – sem az npm, sem a hasonló csomagkezelők nem kínálnak megbízható védelmet a kifinomult, MI-alapú célzott támadások ellen.
Sérülékenység, amelyet az MI mélyít el
A támadás kivételesnek számít, ugyanis az MI-alapú deepfake-technológia a támadók számára lényegesen könnyebbé tette a fejlesztők manipulálását. Míg korábban is előfordultak ellátási lánc elleni támadások, a nyílt, ellenőrizetlen npm-környezetben – ahol naponta több milliárd letöltés történik minimális felülvizsgálat mellett – az ilyen akciók kockázata ugrásszerűen nőtt. Ma már az MI nemcsak egyszerű adathalász trükkökkel, hanem célzott, valós személyeknek tűnő manipuláció révén is képes rombolni az informatikai ökoszisztémát.
A történtek újra ráirányítják a figyelmet arra, mennyire sérülékeny minden olyan fejlesztői környezet, ahol távoli, kontrollálatlan csomagokat használnak – legyen szó nyílt vagy zárt forráskódról –, ha a fenntartók bármilyen formában sebezhetővé válnak.
