Следите за новостями по этой теме!
Подписаться на «Рифы и пачки / Твоя культура»
По последним данным, на просторах npm снова зашевелились злоумышленники — и на этот раз под удар попала сверхпопулярная библиотека «is», которую каждую неделю загружают свыше 2,8 миллиона (!) раз. Специалисты подтверждают: пакет оказался под контролем хакеров на протяжении примерно шести часов и распространял вредоносное ПО.
Это не единственный свежий инцидент. Немногим ранее похожим способом была взломана и другая известная библиотека — eslint-config-prettier. Туда смогли внедриться через поддельное письмо (фишинг) якобы от службы поддержки npm. В результате маинтейнер JounQin отдал свой доступ атакующим, которые затем выкладывали заражённые версии библиотек: 8.10.1, 9.1.1, 10.1.6 и 10.1.7. Пострадали и другие его пакеты: eslint-plugin-prettier, synckit, @pkgr/core, napi-postinstall.
Теперь аналогичная схема сработала и против разработчика пакета «is» — Джона Харбанда. Хакеры контролировали библиотеку примерно шесть часов и распространяли заражённые версии: с 3.3.1 по 5.0.0. Напомню, «is» — маленькая, но крайне востребованная библиотека для JavaScript, которая определяет тип переменной (число, строка, массив и т. д.), проверяет пустоту значений или их совпадения. Её используют десятки тысяч разработчиков для своих инструментов: тестовых фреймворков, сборщиков проектов, серверных решений.
Загрузив заражённую версию, пользователь ловил так называемую WebSocket-бэкдор — вредонос, дающий хакерам удалённый доступ и возможность исполнения кода на вашем компьютере. В случае eslint-config-prettier вдобавок подсовывали инфостиллер Scavanger, похищающий данные прямо из браузера.
Если вы не айтишник: npm — крупнейший сервис по распространению библиотек для JavaScript (подобие «магазина» бесплатных программных компонентов). Проблемы с ним — это атаки на фундамент мировой IT-инфраструктуры. Всё чаще жертвами становятся маленькие пакеты, которые используются повсюду в других программах.
Вывод? Не доверяйте ни одной библиотеке просто так, а уж особенное внимание — авторизации и контролю доступа на npm. Индустрию одолевает новая волна «человеческих» атак — наивность и усталость поддерживают Open Source не хуже донатов.
Сколько бы ни твердили о безопасности open source, npm остается открытой калиткой для всей кодовой деревни. Хакеры компрометируют крупные библиотеки — не техническим креативом, а старым добрым социальным инжинирингом. Автору приходит письмо «от поддержки», он входит по ссылке и все готово: пароль у преступников, заражённая версия летит тысячам разработчиков. Сценарий универсален — устаешь, отвлекся, кликнул, полмира перехвачено. «is» и eslint-config-prettier — не просто полезные скрипты, а фундаментальные кирпичи мировой software-стройки.
Если вы полагаете, что эта история — проблема только далеких айтишников, ошибаетесь. Взломанный пакет может попасть в проекты, которыми ежечасно пользуются, от сайта банка до любимой игрушки. Бэкдор на WebSocket тут же выдает систему врагу, инфостиллер притащит пароли из браузера. Но пока бизнес питается магией бесплатного кода, шанс подхватить заразу есть у каждого. Удивляет скорость: шесть часов на всю операцию — и миллионы потенциальных целей. Самое опасное — как обычно, человеческий фактор: усталость, доверчивость, суета. Забавно: по-прежнему ломают не железо, а невнимательных людей. В следующий раз посмотрите внимательно, от кого письмо — может, это очередная атака на компьютерный Вавилон.