Útok na dodavatelský řetězec: Miliony projektů a kryptopeněžek v ohrožení
Zranitelnost ve WordPress pluginu umožňovala krádež e-mailů i hesel
V softwarovém světě se odehrál incident, který mnozí odborníci označují za největší narušení dodavatelského řetězce v historii platformy npm. Došlo k němu poté, co hacker úspěšně napadl účet vývojáře Joshe Junona, jenž spravuje několik vysoce využívaných JavaScriptových balíčků. Podle Aikido Security se malware objevil v 18 různých modulech, které mají dohromady více než dvě miliardy stažení týdně.
Pro běžného uživatele může být npm neznámý pojem, ale pro vývojáře jde o klíčovou součást moderního softwarového vývoje. Balíčky poskytují připravené funkce, například pro práci s barvami textu nebo převod fontů. Právě proto může i jediný kompromitovaný balíček ohrozit tisíce projektů, které na něj spoléhají.
Zdroj: Shutterstock
Phishing byl maskovaný jako bezpečnostní upozornění
Junon sám potvrdil, že byl obětí cíleného phishingového útoku. Útočníci vytvořili věrohodně vypadající e-mail, který se tvářil, že pochází z oficiální domény npmjs.com vlastněné GitHubem. Využili loga, grafiku i důvěryhodný tón komunikace.
V e-mailu stálo, že je potřeba aktualizovat dvoufaktorové ověřování kvůli údajným bezpečnostním problémům. Junon klikl na podvržený odkaz vedoucí na falešnou stránku s doménou npmjs[.]help, kde útočníci získali přístup k jeho účtu a následně do správy jeho balíčků.
Podle Aikido Security jde o největší kompromitaci v historii npm, i když samotné následky se naštěstí ukázaly být omezené.
Malware zaměřený na kryptoměny
Z analýzy bezpečnostních firem vyplynulo, že nasazený malware byl primárně navržený ke krádeži kryptoměn. Cílil na prohlížeče uživatelů a manipuloval s adresami peněženek v okamžiku odesílání transakcí. Pokud uživatel zadal vlastní adresu, malware ji automaticky přepsal na adresu útočníka.
Firma Socket k tomu uvedla, že šlo o relativně jednoduchý, ale účinný způsob, jak získat přístup k prostředkům nic netušících uživatelů. To potvrzuje i bezpečnostní expert Florian Roth: „Kompromitace byla vážná, ale samotný kód byl amatérský. Útočník měl přístup, nikoliv schopnosti.“
Proč se většina uživatelů bát nemusí
Situace mohla být mnohem horší. Podle bezpečnostní společnosti Semgrep byly infikované verze balíčků k dispozici jen velmi krátkou dobu a statistiky z npm ukazují, že neměly téměř žádné stažení.
K tomu navíc dochází jen za určitých podmínek – aby byl projekt skutečně napaden, musel splňovat hned tři specifická kritéria, jak informoval portál BleepingComputer.
Pro běžné uživatele má celá událost nejspíš minimální možný dopad. Přesto jde o varování, které by vývojáři rozhodně neměli brát na lehkou váhu. Ekosystém npm je obrovský a stojí hlavně na důvěře mezi správci balíčků a samotnými programátory. Stačí ale jediné kliknutí na neověřený odkaz, a následky se mohou rozšířit napříč celým světem.