Node.js

  • Мащабна supply-chain атака в npm: фишинг компрометира ключови JS библиотеки с над 2 млрд. сваляния седмично

    Един от най-масовите supply-chain инциденти в екосистемата на npm е в ход: акаунт на maintainer е компрометиран чрез фишинг („update your 2FA“) и през него са публикувани злонамерени версии на поне 18 популярни пакета, сред които chalk и debug. Сумарно те имат ~2 млрд. изтегляния седмично. Първите сигнали и технически разбори идват от Aikido, а в GitHub вече има потвърдени тикети за компрометирани версии (напр. chalk 5.6.1, debug 4.4.2).

    Атаката започва с много правдоподобен имейл от домейна npmjs.help (а не npmjs.com), който „напомня“ за обновяване на двуфакторната автентикация. След като е взет контрол над акаунта, в пакетите е инжектиран код с цел кражба на крипто/уеб3 активност в браузър (cryptostealer). Някои версии са свалени, но рискът остава за екипите, които са обновили в последните часове.

    Това е абсолютен wake-up call за всички организации – няма застраховани. Дори да не пишете JavaScript, ваши инструменти за билд, CLI-та или CI пайплайни вероятно стъпват върху Node/npm и могат да изтеглят уязвими зависимости автоматично. Следете официалните съвети и списъците с засегнати версии и проверете дали сте дърпали ъпдейти в последните 24–48 часа.

    За разработчиците:

    • прегледайте зависимостите и подзависимостите си, фиксирайте версии и разчитайте на lockfile-и (npm ci)
    • ограничете/забранете postinstall скриптове в CI, генерирайте SBOM и наблюдавайте advisories
    • Ротирайте npm/GitHub токени,
    • активирайте 2FA навсякъде, за предпочитане passkeys, и потвърждавайте подобни съобщения само през директно отворен npmjs.com (не през линкове в имейл – между другото, и засегантият разработчик казва, че „по прицнип не кликам на линкове, но този път…“).
  • Популярна библиотека за Node.JS е била инфектирана с малуер за източване на биткойн портфейли

    Библиотека за Node.JS е била инфектирана с малуер за източване на биткойн портфейли. Кодът е останал незабелязан в продължение на поне 2 месеца в библиотека, която има почти 2 млн. сваляния седмично.

    Става дума за event-stream, която се използва от поне два биткойн портфейла – Copay и BitPay. Именно тези два портфейла са основната цел на малуера според npmjs.org – хранилище, което хоства event-stream.

    Библиотеката се използва от мобилните и настолните приложения на Copay и BitPay. Едноименният разработчик вече съобщи, че BitPay не е уязвим към зловредния код. Copay обаче е уязвим и в момента се преценява дали има пострадали потребители.

    „Ако използвате Copay версия от 5.0.2 до 5.1.0, не отваряйте и не стартирайте приложението. Подготвяме защитена версия  5.2.0, която ще е достъпна за потребителите. Те трябва да знаят, че  е възможно частните ключове на засегнатите портфейли да са компрометирани. Потребителите трябва незабавно да преместят парите си към нови портфейли, използвайки версия 5.2.0“, коментират от BitPay.

    Обновете портфейла си

    Компанията препоръчва на потребителите най-напред да обновят приложението си до най-новата безопасна версия, след което да създадат нов портфейл и да трансферират към него парите си от стария портфейл.

    Viacoin, която разработва портфейл за криптовалути, също излезе с изявление по случая. Причината е, че Viacoin използва голяма част от кода на Copay. Според разработчика на Viacoin обаче потребителите на портфейла не са засегнати от уязвимостта.

    Как е инфектирана библиотеката

    Как изобщо се е стигнало до това легитимна библиотека за Node.JS да съдържа зловреден код?

    Event-stream е създадена от разработчика Доминик Тар. Както става ясно от тази дискусия в GitHub, преди известно време с него се свързва непознат разработчик, известен засега само като right9ctrl, и предлага да поеме бъдещата разработка на библиотеката. Тар се съгласява.

    На 9 септември 2018 г. right9ctrl публикува версия 3.3.6 на event-stream. Според npmjs.com тя съдържа зловреден модул flatmap-stream, който таргетира определен тип потребители. „Кодът е написан с цел да събира данни и частни ключове от Copay портфейли, в които има повече от 100 биткойна или 1000 биткойн кеш“, коментират от npmjs.com.

    Съвети за разработчици

    Зловредната версия (3.3.6) на event-stream е свалена от npmjs.com. Ако сте я използвали във ваш проект, от npm съветват да обновите до най-новата версия.

Back to top button