На этой неделе инструмент безопасности Socket сообщил о том, что ряд популярных пакетов NPM был скомпрометирован, что, вероятно, поставило под угрозу машины разработчиков. Давайте посмотрим, как работал этот эксплойт и как вы можете защитить себя от него 👇
Шаг 1: Доступ к NPM-публикации Хакеры использовали фишинг для компрометации аккаунтов с правами на публикацию этих пакетов. Это позволило хакерам публиковать вредоносные версии этих популярных пакетов NPM.
Шаг 2: Установка зависимостей загружает вредоносное ПО Когда разработчик устанавливает эту новую вредоносную версию, скрипт "postinstall" в пакете NPM запускается после установки и загружает + выполняет вредоносное ПО на компьютере разработчика. Это может скомпрометировать дальнейшие учетные записи разработчиков или украсть учетные данные с их компьютера.
Как мы можем защититься от такого рода эксплуатации? Как автор пакета: Используйте 2FA, чтобы фишинговые кампании с меньшей вероятностью могли скомпрометировать права на публикацию ваших пакетов. Как разработчик: 1. Ограничьте зависимости. К счастью, это уже стандартная практика, иначе последствия этой эксплуатации были бы гораздо серьезнее. 2. Избегайте постинсталляционных скриптов, когда это возможно. Большинство пакетов не нуждаются в постинсталляционном скрипте для функционирования, поэтому рекомендуется их отключать. MetaMask создала отличный инструмент с открытым исходным кодом для этого под названием LavaMoat. 3. Аудит зависимостей. Лучший способ защититься от таких видов эксплуатации — быть осторожным с зависимостями, которые вы добавляете в свой проект с самого начала. Socket — это очень полезный инструмент для автоматизации такого рода аудита.
316