Бэкдор позволял атакующему добавлять на запущенный сервер произвольный код и выполнять его.
Разработчикам менеджера пакетов Node Package Manager (npm) удалось избежать катастрофы, своевременно обнаружив и заблокировав распространение бэкдора, хитроумно спрятанного в популярном пакете (библиотеке) для JavaScript.
Изначально бэкдор был обнаружен в «getcookies» - сравнительно новом пакете npm для работы с файлами cookie в браузере. Получив жалобы от сообщества npm, разработчики изучили пакет и обнаружили в нем сложный механизм получения команд от удаленного злоумышленника, способного атаковать любое приложение, где используется «getcookies».
С помощью синтаксического анализа заголовков HTTP-запросов, отправляемых пользователем, бэкдор искал особым образом отформатированные данные с тремя разными командами. Как пояснили разработчики npm, бэкдор позволял атакующему добавлять на запущенный сервер произвольный код и выполнять его.
Поскольку «getcookies» является сравнительно новой библиотекой, она используется лишь в небольшом количестве проектов. Однако разработчики npm обнаружили встроенную цепочку зависимостей, через которую пакет «getcookies» косвенно попал в структуру популярной библиотеки «Mailparser».
«Mailparser» - пакет npm для синтаксического анализа данных электронных писем с использованием JavaScript. Библиотека является устаревшей и в настоящее время вместо нее предпочтение отдается более новой «Nodemailer». Тем не менее, «Mailparser» не была исключена из npm, так как ее до сих пор используют более старые приложения. В среднем «Mailparser» загружается порядка 66 тыс. раз в неделю.
Собираем и анализируем опыт профессионалов ИБ