Атака путаницы зависимостей (Dependency Confusion)
Что такое Атака путаницы зависимостей (Dependency Confusion)?
Атака путаницы зависимостей (Dependency Confusion)Атака на цепочку поставок ПО, при которой злоумышленник публикует в публичном реестре вредоносный пакет с именем, совпадающим с внутренней зависимостью организации, заставляя сборку подтягивать публичную версию.
Dependency Confusion использует поведение по умолчанию у пакетных менеджеров (npm, pip, Maven, NuGet, RubyGems и др.), которые комбинируют публичные и приватные реестры. Злоумышленник узнаёт имя внутреннего пакета (по утёкшим манифестам, публичным репозиториям, DNS), публикует в публичном реестре пакет с тем же именем и более высокой версией и ждёт, пока сборочные агенты его скачают. Исследование Алекса Бирсана в 2021 году показало уязвимость десятков крупных компаний. Меры защиты: явная привязка к реестру (npm scoped-пакеты, upstream-фиды NuGet, pip --index-url), публикация внутренних имён-плейсхолдеров в публичном реестре, блокировка исходящего резолва, подпись пакетов через Sigstore или PGP, а также использование курируемого артефакт-репозитория, фиксирующего имя и источник. SLSA, SBOM и постоянный мониторинг новых публичных пакетов помогают выявлять попытки.
● Примеры
- 01
Внутренний пакет internal-utils заменён вредоносным internal-utils@99.0.0 в npm.
- 02
Конвейер сборки тянет pip-зависимость из PyPI вместо приватного индекса.
● Частые вопросы
Что такое Атака путаницы зависимостей (Dependency Confusion)?
Атака на цепочку поставок ПО, при которой злоумышленник публикует в публичном реестре вредоносный пакет с именем, совпадающим с внутренней зависимостью организации, заставляя сборку подтягивать публичную версию. Относится к категории Безопасность приложений в кибербезопасности.
Что означает Атака путаницы зависимостей (Dependency Confusion)?
Атака на цепочку поставок ПО, при которой злоумышленник публикует в публичном реестре вредоносный пакет с именем, совпадающим с внутренней зависимостью организации, заставляя сборку подтягивать публичную версию.
Как работает Атака путаницы зависимостей (Dependency Confusion)?
Dependency Confusion использует поведение по умолчанию у пакетных менеджеров (npm, pip, Maven, NuGet, RubyGems и др.), которые комбинируют публичные и приватные реестры. Злоумышленник узнаёт имя внутреннего пакета (по утёкшим манифестам, публичным репозиториям, DNS), публикует в публичном реестре пакет с тем же именем и более высокой версией и ждёт, пока сборочные агенты его скачают. Исследование Алекса Бирсана в 2021 году показало уязвимость десятков крупных компаний. Меры защиты: явная привязка к реестру (npm scoped-пакеты, upstream-фиды NuGet, pip --index-url), публикация внутренних имён-плейсхолдеров в публичном реестре, блокировка исходящего резолва, подпись пакетов через Sigstore или PGP, а также использование курируемого артефакт-репозитория, фиксирующего имя и источник. SLSA, SBOM и постоянный мониторинг новых публичных пакетов помогают выявлять попытки.
Как защититься от Атака путаницы зависимостей (Dependency Confusion)?
Защита от Атака путаницы зависимостей (Dependency Confusion) обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Атака путаницы зависимостей (Dependency Confusion)?
Распространённые альтернативные названия: Подмена пакетов, Путаница пространств имён.
● Связанные термины
- appsec№ 1069
Безопасность цепочки поставок ПО
Дисциплина защиты каждого звена производства ПО — исходного кода, зависимостей, сборки, подписи, дистрибуции и деплоя — от вмешательства, вредоносного кода и потери целостности.
- attacks№ 1116
Атака на цепочку поставок
Атака, при которой компрометируется доверенный сторонний поставщик ПО, оборудования или услуг с целью добраться до его конечных клиентов.
- attacks№ 1184
Тайпсквоттинг (Typosquatting)
Регистрация доменов или имён пакетов, являющихся опечатками или визуальными двойниками легитимных, чтобы перехватывать пользователей и разработчиков, ошибающихся при наборе.
- appsec№ 305
Закрепление зависимостей (pinning)
Практика объявления зависимостей ПО точными версиями, часто с криптографическими хешами, чтобы сборки всегда получали одни и те же артефакты и были устойчивы к вмешательству в цепочку поставок.
- appsec№ 971
SCA (Software Composition Analysis)
Автоматический анализ open-source и сторонних компонентов приложения для выявления известных уязвимостей, лицензионных рисков и устаревших или опасных зависимостей.
- appsec№ 784
Подпись пакетов
Применение криптографической подписи к программному пакету, чтобы потребители могли проверить личность издателя и убедиться, что артефакт не был изменён после выпуска.
● См. также
- № 1097Starjacking
- № 647Вредоносный npm-пакет
- № 1183Typosquatted-пакет