Egy olyan nagyszabású ellátási lánc elleni támadást (supply chain attack) figyeltek meg, amely személyes adatok ellopása érdekében 218 rosszindulatú NPM csomaggal célozott meg Azure fejlesztőket.
A célzott támadás során olyan szkriptet alkalmaztak fiókok létrehozására és rosszindulatú csomagok feltöltésére, amely a teljes ”@azure NPM scope”-ra kiterjedt. A rosszindulatú csomagok teljes készletét két nappal a közzétételük után felfedték az NPM karbantartói előtt, így sikerült ezeket gyorsan eltávolítani, azonban a felhasználók így is több mint 10 000 letöltést generáltak.
A DevSecOps cég által megfigyelt esetben a támadó a meglévő @azure scope csomagokkal megegyező csomagokat hozott létre a scope neve nélkül (pl. @azure/core-tracing vs. core-tracing). A támadó arra a tényre támaszkodott, hogy egyes fejlesztők tévesen elhagyhatják az @azure előtagot a csomag telepítésekor (pl. az ”npm install core-tracing” futtatása az ”npm install @azure/core-tracing” helyett).
Ha egy fejlesztő akaratlanul telepítette az egyik ilyen csomagot, az egy olyan modul végrehajtásához vezethetett, amely képes könyvtárakat listázni, információkat gyűjteni a felhasználó aktuális munkakönyvtáráról, valamint a hálózati interfészekhez és a DNS kiszolgálókhoz kapcsolódó IP címekről.
A kutatók szerint szükséges lenne egy CAPTCHA mechanizmus beépítésére az npm felhasználói regisztráció folyamatába, így a támadók nem hozhatnának létre tetszőleges számú felhasználót amelyekről a kártékony csomagokat feltöltenék.