Срез журнала по сборке 4812 приложения billing-api: все запросы CI с этим номером. Сверху отказы: вредоносный пакет, уязвимая версия lodash, axios из lock-файла и образ с секретами.
Crossenv выдавал себя за cross-env и крал переменные окружения. DF ответил 403 и пакет не выдал. В карточке политика, сработавшее правило, текст блокировки и ссылка на сборку 4812.
Политика #5 срабатывает по любому из двух правил, правило CWE-506 проверяется после анализа. В демо она назначена учётной записи сборки, на входе в контур её назначают учётной записи репозитория.
CVE-2017−16 074 описывает crossenv как вредоносный пакет, который крадёт переменные окружения. У записи есть идентификаторы GHSA и Kaspersky и отметка CWE-506, встроенный вредоносный код.
Политика команды #12 запрещает lodash 4.17.1x. npm в CI получил 403 с текстом политики и ссылкой на карточку блокировки. CI передаёт номер сборки в логине, в карточке ссылка на сборку 4812.
Учётной записи сборки назначены политики. DF проверяет их сверху вниз, и решает первая подходящая: выше запреты, ниже разрешающие политики. Если не подошла ни одна, действует запрет по умолчанию.
Явно указанная версия axios 1.7.2 получает ответ «нет такой версии», установка по lock-файлу с ней получает 403 по политике #13. Установка по диапазону из package. json проходит, сборка идёт.
Политика #13 запрещает axios 1.7.x с флагом «Исключить версию из манифеста»: эти версии пропадают из списка версий, который DF отдаёт npm. Флаг работает в политиках по имени и версии.
При docker push DF разбирает слои образа. В billing-api 1.4.2 найден закрытый ключ. Политика запрета секретов отклонила публикацию, клиент получил её текст и ссылку на карточку блокировки.
Кластер продуктива скачивает образы через DF под своей учётной записью и по своим политикам. Образ 1.4.3 выдан по политике «Выдача в продуктив». Секретов в нём нет, во вкладке лицензии компонентов.
Все запросы сборки собраны по её номеру: входные артефакты, включая транзитивные зависимости, пакеты PyPI и базовый образ, и два выходных артефакта. Здесь же критичности, SBOM и статус анализа.
Опубликованный образ 1.4.3 и отклонённый 1.4.2. SBOM сборки выгружается одной кнопкой, а после закрытия сборки платформа отправляет SBOM и находки по настроенным интеграциям.
Когда база угроз обновляется, DF перепроверяет сохранённый состав сборки без пересборки. В сборке 4812 появились новые находки: ниже их пакеты, критичность и источники.
Список входных артефактов сборки 4812 по страницам: пакеты npm с транзитивными зависимостями, пакеты PyPI и базовый образ, у каждого тип и версия. Номер активности ведёт в карточку запроса.