Hlavní navigace

Typo-squatting v npm repozitári

Sdílet

andrej 9. 8. 2017

Oscar Bolmsten, uživateľ npm balíčka crossenv, zistil 1. Augusta 2017, že tento posiela užívateľské dáta na server npm.hacktask.net. Po jeho tweete autor cross-env kontaktoval npmjs. Kontrolou crossenv sa zistilo, že je to podvodný balíček, ktorý autor hacktask vytvoril úpravou pôvodného balíčka cross-env a využitím preklepu v názve lákal na jeho použitie. Po preskúmaní ostatných balíčkov objavili v npm repozitári ďalších 38 balíčkov s tým istým napadnutím.

Podvodné balíčky boli v npm nahradené Security holding balíčkom (s nie príliš konkrétnym vysvetlením) a užívateľovi hacktask bol zrušený npm účet. Viac k téme npm blog so zoznamom odhalených balíčkov alebo správa na threadposte.

Tato zprávička byla zaslána čtenářem serveru Root.cz pomocí formuláře Přidat zprávičku. Děkujeme!

Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.
  • 9. 8. 2017 14:45

    . . (neregistrovaný) ---.aoj.io

    kluci si s tímhle koledují o pěkný průser, za dva měsíce to bude 5 let co dostali první issue/návrhy na řešení transparentnosti, doteď to očividně nepovažují na problém.

    U npm není žádná možnost jak ověřit konzistenci, autenticita a věrohodnost balíčku/autora. Nemám žádnou možnost jak ověřit, že daný balíček pochází opravdu od daného autora, z daného repositáře a z konkrétního commitu.

    To je i přesně důvod poměrně dost forků a proto řada velkých společností nepoužívá public npm, ale svůj private, kde je nutné ručně nové balíčky a aktualizace těch public kontrolovat, jak to poté dopadá asi všichni tušíte. Cílený útok na aplikaci závislou na public npm je sice časově náročný, ale velice reálný, pár jsem jich už viděl i v ČR.

  • 10. 8. 2017 14:04

    Jinde (neregistrovaný) ---.ipv6.broadband.iol.cz

    A jaký je v tomto ohledu stav u jiných podobných služeb? Třeba Packagist/Composer?

  • 10. 8. 2017 14:57

    Sten (neregistrovaný) ---.gate.parawide.net

    Nevím, jak Packagist, ale třeba Maven to řeší tak, že balíčky jsou prefixované jménem uživatele, mají podpisy a můžou obsahovat libovolná další testovatelná metadata, jako třeba commit ID.