Что относится к рискам цепочки поставок ПО (Software Supply Chain Failures, A03 в OWASP Top 10:2025)?
- Что такое атака на цепочку поставок ПО?
- Как защищаться от уязвимых зависимостей?
Всё, что попадает в продукт извне: зависимости (включая транзитивные), артефакты сборки, образы, сам конвейер CI/CD. В OWASP Top 10:2025 — отдельная категория A03.
- Минимум: lock-файлы, проверка уязвимостей в сборке, SBOM, доверенные реестры
- Подпись артефактов и проверка подписи при развёртывании
- Скомпрометированный CI опаснее сервера: раздаёт вредоносный артефакт всем
А ещё Log4Shell, атака на SolarWinds, вредоносные пакеты в npm и PyPI — примеры
Подробно
Большая часть кода в продукте написана не вами: библиотеки, их зависимости, базовые образы, плагины сборки. Атакующему выгодно скомпрометировать одно звено и получить доступ ко всем, кто им пользуется.
Риски:
- уязвимости в зависимостях (Log4Shell в log4j);
- вредоносные пакеты: опечатки в именах (typosquatting), подмена внутренних имён публичными (dependency confusion), захват аккаунта мейнтейнера;
- скомпрометированная сборка или CI (SolarWinds): подписанный и доверенный, но вредоносный артефакт;
- непроверенные базовые образы и плагины.
Практический минимум:
- lock-файлы и фиксированные версии; обновления — осознанно, через ревью (Dependabot, Renovate);
- сканирование зависимостей и образов на известные уязвимости в каждой сборке (Trivy, OWASP Dependency-Check, Snyk);
- SBOM — перечень компонентов каждого артефакта, чтобы за минуты ответить «где у нас уязвимая версия»;
- подпись артефактов и образов (Sigstore/cosign) и проверка подписи при развёртывании;
- доверенные реестры и прокси-зеркала пакетов; приватные имена — в приватном реестре;
- защита CI: минимальные права, короткоживущие учётные данные, закреплённые версии действий и плагинов, изоляция сборок.
Что хотят услышать
- Что входит в цепочку поставок.
- Конкретные виды атак.
- Практические меры: lock, сканирование, SBOM, подпись.
- Особая опасность компрометации CI.
Частые ошибки
- Ограничиваться сканированием прямых зависимостей.
- Использовать «latest» для образов и действий CI.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Уязвимость в транзитивной зависимости, которую вы никогда не подключали явно
- ✓Компрометация конвейера сборки, раздающего вредоносный артефакт всем потребителям
- ✓Отсутствие фиксации версий зависимостей и проверки их на известные уязвимости
- ✗Слишком сложный пароль администратора, который сотрудники записывают на бумаге
Что спросят дальше
- Что такое SBOM и зачем он нужен?
- Как связаны эта категория и целостность ПО (A08)?
Разбор темы
- Безопасность приложения: OWASP, доступ и секреты
OWASP Top 10 в редакции 2025, разница аутентификации и авторизации, ловушки JWT против сессий, хранение паролей и секретов, безопасность цепочки поставок.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.