Опенсосрный проект GradeJS позволяет анализировать «собранный» код сайтов, без доступа к оригинальному исходному коду. Сервис определяет список используемых npm-пакетов с точностью до конкретной версии, и помогает обнаружить в них известные уязвимости.
Разработчики рассказывают, что недавно запустившийся в бета-версии сервис анализирует абстрактные синтаксические деревья «склеенных» JavaScript файлов и определяет границы оригинальных модулей. Для каждого из таких модулей, генерируется набор специальных сигнатур, которые сопоставляются с индексом в базе данных. Финальное решение о той или иной версии пакета принимается на основе вероятностной оценки.
Пока бета-версия работает только для сайтов, собранных через Webpack и определяет только 1826 наиболее популярных пакетов. В дальнейшем авторы планируют добавить поддержку всех 1,3 млн пакетов npm, а так же другие системы сборки.
В настоящее время проект собирает обратную связь от исследователей и баг-хантеров, чтобы составить дальнейший план развития. Присоединяйся! Бета-версию можно найти здесь, пароль: gradejs.