Войти в почту

Зловредные npm-пакеты для Amazon, Slack используют путаницу зависимостей

В репозитории npm обнаружены вредоносные NodeJS-пакеты, предназначенные для использования в приложениях Amazon, Zillow, Lyft и Slack. Внедрение зловредов, нацеленных на кражу паролей, осуществляется посредством эксплуатации уязвимости, известной как dependency confusion (путаница зависимостей).

Новый способ атаки на цепочку поставок, использующий dependency confusion, обнаружил ИБ-исследователь Алекс Бирсан (Alex Birsan). Разрабатывая свой PoC, он использовал тот факт, что при подключении компонента, размещенного и в открытом, и во внутреннем репозитории компании, приложение отдает предпочтение первому. Если пакет в публичном хранилище окажется зараженным, злоумышленнику удастся внедрить зловреда в сеть атакуемой компании.

Созданный Бирсаном PoC-эксплойт быстро подхватили другие баг-хантеры, но злонамеренного использования до сих пор замечено не было. Однако недавно в репозитории npm были обнаружены несколько поддельных пакетов на основе этого PoC с добавлением откровенно вредоносного кода.

По именам эти фейки (amzn, zg-rentals, lyft-dataset-sdk, serverless-slack-app) схожи с легитимными проектами, размещенными на GitHub и во внутренних хранилищах целевых компаний. Проведенное в Sonatype тестирование показало, что amzn и zg-rentals крадут файл паролей из папки /etc/shadows, а также внедряют шелл-код, открывающий удаленный доступ к зараженной системе.

Пакеты lyft-dataset-sdk и serverless-slack-app нацелены на кражу файла .bash_history, в котором хранится история данных и команд, введенных с использованием командной строки Bash, — в том числе пароли, передаваемые в качестве аргумента.

Поскольку фальсификация подобных компонентов не составит особого труда, а размещаются они в общедоступных репозиториях, эксперты ожидают роста количества злоупотреблений dependency confusion.