Падение The Great Suspender



Раз уж затронули тему финансирования, то вот ещё одна история.

Есть очень классное расширение для хрома The Great Suspender. Оно позволяет выгружать из памяти вкладки по таймауту, тем самым экономя ресурсы. В общем, учитывая прожорливость хрома, вещь незаменимая.



Но в ноябре 2020 года приложение пропало из Chrome Web Store. А в репозитории появилось ишью «URGENT: SECURITY: New maintainer is probably malicious»



Оказывается, автор репозитория ещё в июне 2020 года продал права на репозторий и публикацию. О своей мотивации он рассказывает в ишью «Upcoming changes to the management of The Great Suspender».

В нём автор говорит о том, что за 8 лет расширение обросло как кодовой базой, так и пользователями, благодарит комьюнити за поддержку, но при этом отмечает, что не готов продолжать работать над ним самостоятельно. А права на репозиторий и публикацию он продаёт по сути анонимному пользователю greatsuspender.



Ну а дальше случилось то, чего и стоило ожидать. Новый обладатель расширения запаблишил в стор версию, отличающуюся от кода в репозитории. Новая версия содержала в себе какой-то трекер. Чуть позже гугл окончательно забанил расширение. Ну а т.к. исходный код открыт, то один из форков набрал популярность — MarvellousSuspender (доступен в сторе под этим же именем).



Во всей этой истории мне кажется странным несколько вещей:

1. Автор не попытался монетизировать расширение самостоятельно. Тем более, что ранее в хром сторе это было сделать несложно. Правда сейчас возможно публиковать платные расширения отключена.

2. Автор счёл нормальным передать права пользователю, которого невозможно публично идентифицировать.

3. Не было никакого анонса о передаче прав через само расширение.



Этот случай меня заставил в очередной раз задуматься о том, что и нод-модули мы устанавливаем особо неглядя. У нас нет инструментов, который могли бы проверить что код в пакете соотвествует коду в репозитории. Конечно, чтобы выявить уязвимости, можно использовать Snyk , но это ведь костыль да и в целом не рашет саму проблему.



В голову приходит вариант с импортом напрямую из репозитория, но как быть увереным, что автор не удалит репозиторий? Чего только стоит история с leftpad. Кстати, а как в go эту проблему решают? На сколько я помню, там принято коммитить внешние модули в репозиторий?