Команда безопасности npm предупредила пользователей о том, что одни из самых популярных пакетов (coa и rc) были захвачены злоумышленником, который выпустил новые версии, содержащие малварь для кражи паролей.
Библиотека coa (сокращение от Command-Option-Argument) начитывает около 9 000 000 загрузок в неделю на npm и используется почти 5 000 000 опенсорсных репозиториев на GitHub. В свою очередь библиотеку rc в среднем загружают 14 000 000 раз в неделю.
Оба пакета были взломаны примерно в одно и то же время, так как злоумышленники получили доступ к учетным записям разработчиков. После компрометации, злоумышленники добавили к исходной кодовой базе пакетов post-install скрипт, который запускал обфусцированный TypeScript, проверявший информацию о системе и загружавший batch-файл для Windows или bash-скрипт для Linux.
Судя по деобфусцированной версии этого batch-файла, взломанные пакеты загружали и запускали sdd.dll, который, по данным Windows Defender и других защитных продуктов, содержал вариацию трояна Qakbot или Danabot. Такая малварь ворует пароли и данные карт из браузеров, учетные данные из почтовых и FTP-клиентов, а также других приложений, может работать как кейлоггер, делать снимки экрана и так далее.
Сначала была обнаружена компрометация coa, так как неожиданно появившиеся новые версии пакета, который не обновлялся много лет (последняя стабильная версия 2.0.2 вышла в декабре 2018 года), вызвали немало проблем, связанных с пайплайном React по всему миру. В итоге работа многих пакетов React, зависящих от coa, была нарушена. Вскоре после этого заметили и компрометацию rc, так как ранее библиотека не обновлялась с 2015 года.
Представители npm сообщили, что скомпрометированные учетные записи были оперативно отключены, взломанные версии библиотек удалены, и теперь ведется расследование инцидента.
the compromised account has been temporarily disabled and we are actively investigating the incident and monitoring for similar activity. we will share additional information as appropriate based on our investigation. [2/3]
— npm (@npmjs) November 4, 2021
Так как атака могла оказать широкое воздействие на цепочку поставок, всем пользователям библиотек coa и rc настоятельно рекомендуется проверить свои проекты на наличие малвари. В частности, рекомендует искать файлы compile.js, compile.bat, sdd.dll и удалить их, если таковые обнаружены. Также пострадавшим рекомендуется считать свое устройство полностью скомпрометированным, изменить все пароли и ключи, а также обновить токены.