SYSTEM ATLASЗагрузка материала

Dependency Confusion

Dependency Confusion

Публичный пакет подменяет внутреннюю зависимость с тем же именем.

Простыми словами

Например, команда замечает симптомы «Dependency Confusion», но лечит каждый случай отдельно. Более устойчивый вариант — команда устраняет механизм «Dependency Confusion» через изменение границ, стимулов или ответственности. Поэтому главное - заранее ограничить возможный ущерб и проверить, что лишний доступ или опасный ввод не проходят незаметно.

Механизм действия

Сначала проверяют, есть ли исходное условие из определения. Затем смотрят, как оно влияет на структуру компонентов, потоки данных, ограничения и действия участников. Если эту связь не удаётся наблюдать, принцип не стоит использовать как готовое объяснение.

Пример в работе

Нерабочий подход

Исправлять отдельные проявления «Dependency Confusion» по одному, не проверяя, нет ли у них общей причины.

Системный подход

Если «Dependency Confusion» действительно объясняет проблему, менять не отдельный симптом, а сам механизм — например границы, стимулы или распределение ответственности.

Ограничения

«Dependency Confusion» объясняет только часть происходящего в области «Безопасность». Сам принцип не говорит, насколько сильным будет эффект в вашем случае, и не заменяет измерения. При другом масштабе, среде или временном горизонте результат может отличаться.

Источник

Alex Birsan. Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies (2021).

Первоисточник