Scarf: слежка за пользователями, теперь и в NPM

Проект Scarf позиционирует себя как Google Analytics для NPM-пакетов. Идея в том, что автор NPM-пакета добавляет Scarf в зависимости, а тот предоставляет отчёт о пользователях пакета: сколько их, какая у них операционная система, какие версии пакета они используют, в каких компаниях они работают.

Если хоть одна из зависимостей вашего проекта использует Scarf, при каждой установке зависимостей Scarf будет собирать и отсылать на сторонние сервера данные о вас и о вашем проекте, вплоть до вашего IP-адреса (как утверждается, он используется для определения компании, в которой вы работаете).

Scarf был подключен в популярных пакетах вроде react-table (~380 000 загрузок в неделю), redux-form (~370 000 загрузок в неделю), final-form (~232 000 загрузок в неделю), react-query (~50 000 загрузок в неделю), angular-calendar (~50 000 загрузок в неделю). К счастью, из всех перечисленных пакетов, кроме angular-calendar, Scarf уже удалён. На GitHub можно изучить полный список зависимых от Scarf пакетов.

Как отключить сбор данных?

Средствами самого Scarf

Добавьте в package.json поле с настройками Scarf:

{
  "scarfSettings": {
    "enabled": false
  }
}

Также можно задать переменную окружения:

export SCARF_ANALYTICS=false

Сторонними средствами

Установите специальную заглушку, которая подменяет вредоносный пакет Scarf.

Радикально: средствами пакетного менеджера

Устанавливайте пакеты с флагом --ignore-scripts, это обезопасит вас не только от Scarf, но и от любых других потенциально вредоносных скриптов, выполняющихся в postinstall-хуках пакетов. Увы, это может сломать некоторые зависимости, которые используют postinstall-хуки в служебных целях вроде компиляции под вашу ОС.