Стратегии цепочки поставок программного обеспечения для парирования атак, вызывающих путаницу в зависимости

Стратегии цепочки поставок программного обеспечения для парирования атак, вызывающих путаницу в зависимости

Стратегии цепочки поставок программного обеспечения для парирования атак путаницы зависимостей PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

"Что в имени? То, что мы называем розой, под любым другим именем будет пахнуть так же сладко. Когда Шекспир писал эти слова («Ромео и Джульетта», акт 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)

Отметка времени:

Больше от Темное чтение