Последствия атаки на SolarWinds еще не до конца утихли, а компания Microsoft успешно протестировала еще один из опасных методов атаки на цепочку поставок. Атака использует метод несоответствия зависимостей (dependency confusion) или атаку с подменой (substitution attack).
Программное обеспечение в настоящее время применяет множество компонент и пакетов, большая часть из которых может быть разработана другими производителями и получена из бесплатных публичных репозиториев. Даже приложения с закрытым кодом могут зависеть от свободно распространяемых библиотек. Многие организации используют общедоступные менеджеры пакетов, например Maven Central, NPM, NuGet Gallery и Python Package Index (PyPI), благодаря преимуществам этих экосистем. И вынуждены рассматривать эти источники как доверенные. Но сами пакеты в репозиториях уязвимы к атакам на цепочку поставок.
Одна из распространенных гибридных конфигураций, которые используют разработчики, – это хранение внутренних пакетов в частном реестре, но с разрешением извлекать зависимости из общедоступного канала. Это гарантирует, что последние выпуски пакетов автоматически принимаются при ссылке из пакета, который не нуждается в обновлении. Публикации пакетов производятся в частные репозитории, а установка зависимостей выполняется как из частных, так и из публичных каналов для получения актуальных версий необходимых пакетов. Эта конфигурация представляет риск атаки замещения. Когда злоумышленник обнаруживает, что клиент использует частный пакет, который не присутствует в публичной ленте, он может создать в публичном реестре пакет с таким же названием более поздней версии – клиент загрузит его автоматически.
Больше всего это касается автоматических сборок, где сообщения об установке не проверяются. Большинство атак замещения даже при успешной установке позже терпят неудачу при сборке, если только злоумышленник не клонировал функциональность пакета (в результате случившейся ранее утечки кода, как пример). Поэтому необъяснимые сбои сборки или тестирования следует тщательно расследовать как потенциальные предупреждения об атаке подмены пакета. Некоторые общедоступные каналы пакетов позволяют издателям удалять или исключать пакеты, что также может вызвать неудачные сборки, чтобы снова начать успешную атаку, что затрудняет обнаружение (false positive case). Важно отметить, что даже если сборка не удалась, злоумышленник, скорее всего, добился удаленного выполнения кода. И, соответственно, все используемые в сборке внутренние секреты (ключи, токены и т.д.) также становятся скомпрометированными.
Эксперты Microsoft и группы компаний Angara рекомендуют следующие действия:
-
Разделять контуры разработки и продуктива, чтобы в случае успеха описанной атаки на цепочку поставок не компрометировались внутренняя секретная информация продуктивного контура.
-
Ограничиться по возможности частным репозиторием, с отправкой общедоступных пакетов на частный канал вручную, или настроить частный канал для автоматического извлечения.
-
Защита с использованием контролируемого пространства имен (namespace) для приватных пакетов. И настройки пакетного менеджера на запрет скачивания приватного namespace из внешних репозиториев.
-
Использование фиксации версий зависимостей (version pinning) и механизмов контроля целостности.
«В портфель услуг группы компаний Angara входят услуги аудита инфраструктуры DevOps и связанных бизнес-процессов, а также среды разработки данных и контейнерной инфраструктуры», – комментирует Руслан Косарим, руководитель отдела прикладных систем. Он обращает внимание, что эксперты компании готовы взять на себя решение следующих задач:
-
Аудит на уровень зрелости технологических процессов разработки по требованиям OWASP SAMM, инвентаризацию инструментов и инфраструктуры DevOps.
-
Hardering инструментов CI/CD и построение процесса SSDL с использованием решений SAST/DAST.
-
Подбор оптимального для контейнерной инфраструктуры варианта защиты.
По всем вопросам можно обратиться к менеджерам группы компаний Angara по e-mail info@angaratech.ru или телефону 8-495-269-26-06.