"Что в имени? То, что мы называем розой, под любым другим именем будет пахнуть так же сладко. Когда Шекспир писал эти слова («Ромео и Джульетта», акт 2, сцена 2) в 1596 году, он говорил, что имя — это всего лишь условность. Оно не имеет никакого внутреннего смысла. Джульетта любит Ромео таким, какой он есть, а не за его имя.
Но, сам того не зная, Шекспир также описывал атаки, связанные с путаницей зависимостей.
Путаница зависимостей — это когда пакеты, которые вы используете в своем коде, не ваши. У них одинаковое имя, но в рабочей среде выполняется не ваш код. Название то же, но одна упаковка пахнет розой, а другая… воняет.
Согласно недавним исследовательским отчетам, от 41% до 49% организаций подвержены риску атак с путаницей зависимостей. Новое исследование OX Security показывает, что, когда организация подвергается риску атаки с путаницей зависимостей, 73% ее активов уязвимы. Исследование было сосредоточено на средних и крупных организациях (1 тыс.+, 8K+, 80K+ сотрудники) в широком спектре секторов — финансах, играх, технологиях и средствах массовой информации — и обнаружили риск в каждом секторе в организациях всех размеров. Исследование также показало, что почти все приложения с более чем 1 миллиардом пользователей используют зависимости, которые могут привести к путанице.
Цель этой статьи — помочь вам понять путаницу с зависимостями и способы ее предотвращения.
Двойной, Двойной
Зависимости (также называемые пакетами) — это строительные блоки вашего программного обеспечения. Обычно эти части программного обеспечения, разработанные целыми сообществами или внутри компании, выполняют общую и необходимую задачу.
Менеджеры пакетов часто используются для установки зависимостей и их обновления. Они сканируют публичные и частные реестры на предмет названия пакета и при прочих равных условиях выбирают наибольший номер версии. Злоумышленники пользуются этим, размещая в публичном реестре «фиктивный» пакет с тем же именем, но более высокой версией.
Когда менеджер пакетов встречает два одинаковых пакета, один в общедоступном реестре, а другой в частном, это вызывает путаницу — отсюда и название «путаница зависимостей». Поскольку эти два пакета идентичны, менеджер автоматически выберет установку пакета с более поздней версией. - в данном случае — вредоносный пакет злоумышленника.
Это дает угонщикам черный ход в ваше программное обеспечение. С этого момента они могут совершать утечки данных, осуществлять кражу интеллектуальной собственности и иным образом подвергать риску надежную цепочку поставок программного обеспечения. Они также могут допустить нарушения требований, которые повлекут за собой серьезные нормативные санкции.
Труд и проблемы
Существуют различные подходы к атаке с путаницей зависимостей.
- Пространство имен. Загрузив библиотеку вредоносного программного обеспечения в публичный реестр, например, в индекс пакетов Python (PyPI) или в реестр JavaScript. реестр npm - то есть назван так же в доверенную внутреннюю библиотеку, системы, которые пропускают проверку пространства имен/URL-адреса или не требуют принудительной загрузки из частного реестра, могут ошибочно загрузить вредоносный код. недавний инцидент с путаницей в зависимостях PyTorch один из таких примеров.
- Подмена DNS. Используя такой метод, как подмена DNS, системы можно заставить извлекать зависимости из вредоносных репозиториев, отображая при этом то, что выглядит как законные внутренние URL-адреса/пути.
- Сценарии. Изменяя сценарии сборки/установки или непрерывная интеграция/непрерывная доставка (CI/CD) системы можно обманом заставить загружать зависимости программного обеспечения из вредоносного источника, а не из локального репозитория.
Все сделано хорошо и с осторожностью
Чтобы защититься от путаницы с зависимостями, установите эти методы.
- Установите политики в менеджере пакетов. Запретить менеджерам пакетов устанавливать приоритет общедоступного пакета над частным.
- Всегда включайте файл .npmrc. Если вы используете популярный NPM в качестве менеджера пакетов, всегда включайте файл .npmrc, в котором указывается, где получать пакеты в рамках конкретной организации.
- Зарезервируйте имя пакета в общедоступном реестре. Другой способ защиты от атак, связанных с путаницей зависимостей, — зарезервировать имя пакета в общедоступном реестре, чтобы угонщики не могли его использовать и, следовательно, не могли «обмануть» менеджера пакетов, заставив его установить вредоносный пакет.
Чтобы полностью защититься от атак, вызывающих путаницу зависимостей, организациям всегда следует использовать объемы организации для всех внутренних пакетов, даже при публикации в вашем внутреннем реестре. Области действия организации также должны быть зарегистрированы в публичном реестре NPM, что не позволит никому перехватить область и воспользоваться путаницей.
Имена пакетов также должны быть публично зарегистрированы. Например, если организация использует популярный PIP в качестве менеджера пакетов для зависимостей Python, ей следует создавать внутренние пакеты со строгим суффиксом, который будет узнаваем и будет работать во всех проектах. Загрузите пустой пакет с тем же именем в общедоступный реестр PyPI в качестве заполнителя.
Другая причина зарезервировать имя пакета в публичном реестре заключается в том, что, если кто-то другой зарезервирует его (злонамеренно или нет), разработчикам придется изменить все имена пакетов в частном реестре на те, которые еще не зарезервированы в публичном реестре. Это может быть долгий и утомительный процесс.
Важно отметить, что не все реестры пакетов позволяют пользователям резервировать имена пакетов, поэтому обязательно найдите тот, который это позволяет.
Выход, преследуемый медведем
Атаки, связанные с путаницей зависимостей, представляют собой серьезную и неизбежную угрозу кибербезопасности для организаций во всем мире. Около половины всех организаций подвергаются риску, и 73% активов этих организаций подвергаются риску. Чтобы противостоять этой растущей угрозе, организации должны принять надежные превентивные меры и внедрить лучшие практики кибербезопасности.
Розы Шекспира, возможно, на сотни лет предвещали риск приступов путаницы зависимости, но другая цитата Барда может содержать некоторую мудрость для защиты от них: «Пусть каждый глаз ведет переговоры сам за себя и не доверяет ни одному агенту». («Много шума из ничего», акт 2, сцена 1)
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- ЧартПрайм. Улучшите свою торговую игру с ChartPrime. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: https://www.darkreading.com/edge-articles/software-supply-chain-strategies-to-parry-dependency-confusion-attacks
- :имеет
- :является
- :нет
- :куда
- 1
- 7
- a
- О нас
- через
- Действие (Act):
- принять
- плюс
- против
- Агент
- Цель
- Все
- позволять
- почти
- причислены
- всегда
- an
- и
- Другой
- любой
- кто угодно
- Приложения
- подходы
- МЫ
- гайд
- AS
- Активы
- At
- атаковать
- нападки
- автоматически
- назад
- BE
- , так как:
- не являетесь
- ЛУЧШЕЕ
- лучшие практики
- миллиард
- Блоки
- нарушения
- Строительство
- но
- by
- призывают
- под названием
- CAN
- не могу
- случаев
- Причины
- цепь
- изменение
- проверка
- Выберите
- код
- выходит
- Общий
- Сообщества
- Компания
- Соответствие закону
- скомпрометированы
- замешательство
- Соглашение
- счетчик
- Создайте
- Информационная безопасность
- данным
- Нарушения данных
- Зависимости
- Зависимость
- развитый
- застройщиков
- направленный
- отображать
- DNS
- do
- приносит
- сделанный
- Двери
- еще
- сотрудников
- Весь
- равный
- оценка
- Даже
- Каждая
- пример
- выполнять
- подвергаться
- Глаза
- Файл
- финансы
- Найдите
- внимание
- Что касается
- Форс-мажор
- найденный
- часто
- от
- полностью
- игровой
- дает
- ГЛОБАЛЬНО
- Рост
- Половина
- Есть
- he
- помощь
- следовательно
- высший
- наивысший
- его
- держать
- Как
- How To
- HTTPS
- Сотни
- идентичный
- if
- неизбежный
- осуществлять
- важную
- in
- включают
- индекс
- устанавливать
- Установка
- Институт
- интеллектуальный
- интеллектуальная собственность
- в нашей внутренней среде,
- внутренне
- в
- внутренний
- вводить
- IT
- ЕГО
- саму трезвость
- JavaScript
- всего
- Сохранить
- знание
- большой
- законный
- позволять
- Библиотека
- такое как
- локальным
- Длинное
- ВЗГЛЯДЫ
- любит
- сделать
- менеджер
- Менеджеры
- Май..
- смысл
- меры
- Медиа
- БОЛЕЕ
- много
- должен
- имя
- имена
- необходимо
- Новые
- нет
- ничего
- номер
- of
- on
- ONE
- or
- организация
- организации
- Другое
- в противном случае
- за
- пакет
- пакеты
- Выполнять
- штук
- трубопровод
- заполнитель
- размещение
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- Точка
- сборах
- Популярное
- поза
- практиками
- предотвращать
- предупреждение
- приоритезация
- частная
- процесс
- Производство
- проектов
- собственность
- для защиты
- защищающий
- что такое варган?
- публично
- Издательство
- Питон
- pytorch
- цену
- ассортимент
- скорее
- RE
- причина
- зарегистрированный
- реестры
- реестра
- регуляторы
- Отчеты
- хранилище
- исследованиям
- Резерв
- зарезервированный
- резерв
- Снижение
- надежный
- ROSE
- Бег
- s
- то же
- поговорка
- сканирование
- сцена
- сфера
- скрипты
- сектор
- Сектора юридического права
- безопасность
- серьезный
- тяжелый
- должен
- Шоу
- с
- Размеры
- So
- Software
- цепочка поставок программного обеспечения
- некоторые
- Кто-то
- Источник
- конкретный
- стратегий
- Строгий
- такие
- поставка
- цепочками поставок
- Убедитесь
- сладкий
- системы
- взять
- с
- Сложность задачи
- Технологии
- чем
- который
- Ассоциация
- кража
- Их
- следовательно
- Эти
- они
- вещи
- этой
- те
- угроза
- Таким образом
- в
- вызвать
- Доверие
- надежных
- два
- типично
- под
- понимать
- обновление
- Загрузка
- использование
- используемый
- пользователей
- через
- различный
- версия
- Нарушения
- Уязвимый
- законопроект
- Путь..
- we
- ЧТО Ж
- Что
- когда
- будь то
- который
- в то время как
- КТО
- широкий
- Широкий диапазон
- будете
- мудрость
- в
- без
- слова
- Работа
- бы
- писал
- лет
- еще
- Ты
- ВАШЕ
- зефирнет