AIKraft/Skills/dependency-confusion

dependency-confusion

Тестирование цепочки поставок через путаницу зависимостей: внутренние пакеты могут резолвиться в публичные реестры, что приводит к установке вредоносного кода. Применяется для анализа npm, pip, gem, Maven, Composer и Docker manifest в рамках авторизованных red-team упражнений.

yaklang official Разработка ★ 2.4k

Что делает навык

Skill анализирует уязвимости цепочки поставок, связанные с путаницей зависимостей, когда внутренние пакеты резолвятся в публичные реестры, что может привести к установке вредоносного кода. Он охватывает методы обнаружения утечек имен пакетов, специфику различных экосистем (npm, pip, Maven и др.) и паттерны создания безопасных PoC.

Когда применять

  • Анализ manifest-файлов на наличие внутренних имен пакетов без жесткой блокировки в приватных реестрах.
  • Проверка lockfiles на отсутствие или устаревание, что позволяет сборке дрейфовать к публичным метаданным.
  • Использование в рамках авторизованных red-team упражнений для тестирования CI/CD и репозиториев.
  • Корреляция с workflow recon-for-sec для выявления коллизий имен между внутренними пакетами и публичными реестрами.

Как работает

  1. Идентифицировать manifest-файлы, содержащие имена пакетов, выглядящие как внутренние (короткие, без scope, с токенами организации), но не заблокированные в приватном реестре.
  2. Проверить, существует ли или может быть захвачено (squatted) такое же имя в публичном реестре с более высокой версией semver, чем в приватном.
  3. Оценить наличие и актуальность lockfiles; если они отсутствуют или не enforced в CI, сборка может использовать публичные зависимости.
  4. Применить экосистемно-специфичные проверки (npm scopes, pip extra indexes, порядок репозиториев Maven) для подтверждения того, что резолвер видит оба индекса.
  5. Сгенерировать неблокирующие PoC (callbacks), не осуществляющие эксфильтрацию данных, для подтверждения уязвимости.

Примеры запросов агенту

Проанализируй manifest-файлы проекта на наличие внутренних имен пакетов, которые могут быть захвачены в публичных реестрах.
Выполни проверку зависимости на предмет уязвимости dependency confusion для npm-пакета с коротким именем без scope.
Используй workflow recon-for-sec для поиска коллизий имен пакетов между внутренним репозиторием и публичными индексами.

Что понадобится

  • Доступ к системам и программам, на которых разрешено проводить тестирование (авторизованные red-team упражнения).
  • Инструмент recon-for-sec (рекомендуется для начального этапа разведки).

Описание составлено по SKILL.md навыка, сверено 07.10.2026.

Как подключить

1Скачать навык
# возьмите папку навыка «dependency-confusion» из репозитория: # https://github.com/yaklang/hack-skills
2Положить папку с SKILL.md к навыкам ассистента
# положите папку навыка туда, где ассистент ищет skills: cp -r dependency-confusion/ ~/.claude/skills/dependency-confusion/

Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.