Новости для разработчиков JavaScript выглядят мрачно: Koi Security объявила о так называемой «крупнейшей и наиболее опасной компрометации цепочки поставок npm в истории». Звучит пугающе, но давайте разберёмся, что за этим стоит, не поддаваясь панике.
По данным Koi Security, кампания вредоносного ПО Shai-Hulud якобы затронула «сотни пакетов от множества мейнтейнеров», включая популярную библиотеку @ctrl/tinycolor и пакеты, связанные с CrowdStrike. Утверждается, что проблема усугубляется тем, что вредонос действует как червь, автономно распространяясь между пакетами. Но насколько это действительно беспрецедентно? Компрометации npm случались и раньше, и экосистема Node.js уже давно считается уязвимой мишенью.
Koi Security сообщает, что злоумышленники внедрили в пакеты, такие как @ctrl/tinycolor, обфусцированный скрипт (bundle.js), который активируется при установке. Этот скрипт якобы переупаковывает и переопубликовывает проекты, позволяя вредоносу распространяться без участия разработчиков. Звучит изощрённо, но подобная тактика — не новость для тех, кто следит за безопасностью open-source.
Эта кампания, как подчёркивает Koi, отличается от инцидента 9 сентября, когда npm-пакеты с миллиардами загрузок были скомпрометированы для кражи криптовалюты. Тогда целью были быстрые финансовые выгоды, а вот Shai-Hulud, по их словам, нацелен на нечто большее. Скрипт якобы использует TruffleHog для поиска секретов — токенов npm, учетных данных GitHub, ключей AWS, GCP и Azure — и внедряет скрытый файл GitHub Actions (.github/workflows/shai-hulud-workflow.yml) для кражи данных во время CI/CD. Это серьёзно, но использование известных инструментов, таких как TruffleHog, и автоматизированных процессов npm и GitHub Actions не выглядит революционным — скорее, это ожидаемое злоупотребление уязвимостями экосистемы.
Koi Security называет Shai-Hulud «одной из самых опасных кампаний», но без конкретных данных о масштабах заражения или реальных последствиях это утверждение кажется преувеличенным. Учитывая, что npm и Node.js исторически уязвимы из-за своей открытости и автоматизации, подобный инцидент был лишь вопросом времени. Предыдущие атаки, вроде той, что мы обсуждали в сентябре, уже намекали на потенциал для более сложных схем — и вот, похоже, мы их получили.
Koi Security обещает обновлять список заражённых пакетов, а StepSecurity опубликовала индикаторы компрометации и рекомендации по реагированию. Это полезно, но разработчикам стоит сохранять скептицизм: вместо паники лучше тщательно проверять зависимости и инфраструктуру. Если уж экосистема npm настолько уязвима, как утверждается, то, возможно, пора пересмотреть её архитектуру, а не просто реагировать на очередной кризис.
Оригинал
Уникальность