Всем привет!
Сегодня предлагаем вам небольшую статью, в которой Авторы рассказывают о том, как им удалось найти dependency confusion в проекте Consul.
Началось все с того, что они обнаружили пакет, управление версиями для которого не осуществлялось. Да, был еще один конфигурационный файл, который это нивелировал. Однако, не все пакетные менеджеры смогли бы это «понять». Например, с
pnpm могли возникнуть нюансы.Продолжив исследование, команда нашла еще несколько подобных пакетов. Оказалось, что они «свободны» и их можно «занять».
Именно это и сделали исследователи. Создали простой payload, который возвращает следующую информацию:
hostname, whoami и path. После чего разместили пакет на общедоступном ресурсе.И… это сработало! Спустя некоторое время команда получила pingback с информацией о «жертве». После успешного PoC пакет был удален, а команда HashiCorp («владельцы» Consul) внесли необходимые изменения.
Хорошо то, что хорошо заканчивается! Тем не менее это лишний раз подчеркивает важность и значимость обеспечения безопасности цепочки поставки ПО.
P.S. Информацию об уязвимых версиях и особенностях эксплуатации можно найти в статье.