Главная / Решения / Контроль open-source
Решение

В сборки — только одобренные open-source компоненты

Каждая сборка тянет пакеты и образы из интернета. Коммерческие «файрволы» репозиториев задерживают новые компоненты, пока их не посмотрит безопасность. Строим такой же контроль на открытых инструментах или на отечественных AppSec.Track и AppSec.Registry.

Решение по компоненту — за вашей безопасностью Каждое решение записано Фиксированная цена после замеров
Задача

Новые зависимости попадают в сборки, минуя безопасность: разработчик добавил — конвейер скачал.

Что делаем

Карантин для образов, заявка с одобрением для пакетов, наблюдение после одобрения.

Результат

В сборках только одобренные компоненты, у каждого решения есть автор и дата.

Для кого

  • Безопасность хочет решать, какие open-source пакеты попадают в рабочие сборки.
  • Смотрели Sonatype Repository Firewall или JFrog Curation, но они недоступны или не подходят по цене.
  • У вас Nexus Community Edition или нет хранилища артефактов, и сборки скачивают зависимости напрямую из интернета.
  • Заказчик, аудитор или орган по сертификации спрашивает, как вы проверяете сторонние компоненты, а честный ответ — «разработчики выбирают сами».

Как это делают коммерческие продукты

Чтобы было понятно, с чем сравнивать.

  • Sonatype Repository Firewall. Если новый запрошенный компонент нарушает политику, он попадает в карантин и не скачивается через прокси-репозиторий. Безопасность разбирает нарушения и выпускает компонент. Если сервис недоступен, новые компоненты остаются заблокированными.1
  • JFrog Curation. Политики, которые не пускают в организацию вредоносные, уязвимые и неподходящие по лицензии пакеты ещё до скачивания.2

Оба — коммерческие надстройки над хранилищем артефактов своего вендора.

Коммерческий файрвол → открытые инструменты

Цель та же: ничего нового не попадает в сборки без проверки. Разница — в том, кто и как принимает решение.

Коммерческий файрволSonatype Repository Firewall, JFrog Curation
Открытые инструментыHarbor, GitLab, открытые сканеры
Карантин новых образовв прокси-репозитории
Прокси-проект Harborобраз проверяется при поступлении; скачать нельзя, если уязвимости выше вашего порога
Запрет неподписанных образовпо политике
Harbor: доверие к содержимомунеподписанный образ не скачивается
Карантин новых пакетовnpm, PyPI, Maven
Заявка через merge requestконвейер проверяет пакет, безопасность одобряет, только потом пакет публикуется во внутренний реестр
Поиск вредоносных пакетовданные вендора об угрозах
GuardDog и антивирусная проверкаоткрытые эвристики для npm и PyPI, отчёт антивируса по каждому пакету
Исключенияв консоли вендора
Исключение в merge requestс владельцем и сроком действия
Наблюдение за допущеннымновые уязвимости
Dependency-Trackоповещает владельцев проектов, если в одобренном компоненте нашли уязвимость

Как это работает для пакетов

  1. Сборки не ходят в интернет

    Зависимости npm, PyPI и Maven конвейер берёт только из внутреннего реестра.

  2. Новая зависимость — это заявка

    Разработчик открывает merge request в белый список. Конвейер скачивает пакет и проверяет: известные уязвимости, признаки вредоносного кода (GuardDog — открытый сканер от Datadog4), антивирус, лицензию.

  3. Безопасность одобряет

    Только после одобрения пакет публикуется во внутренний реестр. История merge request — ваш журнал решений. На GitLab Premium и Ultimate одобрение группы безопасности можно сделать обязательным правилом5; на бесплатной версии — отдельный проект белого списка, в который принимает изменения только безопасность.

  4. Наблюдение после одобрения

    Dependency-Track6 следит за всем одобренным и сообщает владельцам проектов о новых уязвимостях.

Для образов отдельной заявки не нужно: прокси-проект Harbor проверяет каждый новый образ сам и не отдаёт его, если уязвимости выше порога или образ не подписан3.

Вариант на отечественных продуктах

Если нужен коммерческий продукт с поддержкой производителя — AppSec.Track вместе с AppSec.Registry.

  • AppSec.Track: по описанию производителя — блокирует загрузку вредоносных пакетов в реальном времени, защищает от подмены зависимостей и тайпсквоттинга, проверяет контрольные суммы, ведёт SBOM и чёрные и белые списки лицензий, останавливает конвейер при нарушении политики.7
  • AppSec.Registry: хранилище артефактов с карантином и политиками допуска; сканирование AppSec.Track при поступлении компонента.8
  • AppSec.Track работает и с уже установленными Nexus и Artifactory — хранилище менять не обязательно.7

Какой вариант выгоднее — открытый или на AppSec, — говорим после замеров: зависит от числа форматов, команд и того, нужна ли вам поддержка производителя.

Что из ГОСТ Р 56939-2024 это закрывает

Два процесса стандарта касаются именно сторонних компонентов. Приказ ФСТЭК России № 240 при сертификации проверяет наличие средств композиционного анализа (п. 19). Профиль защиты Банка России для ПО финансовых организаций разрешает только проверенные сторонние компоненты — с композиционным анализом и проверкой на вредоносное ПО (политика безопасности 6), и проверять их до размещения в репозитории, в том числе антивирусом (табл. 7.4.3.7). Тексты требований →

Что требует ГОСТпо тексту стандарта
Что остаётся как артефактв вашей инфраструктуре
Перечень зависимостей с версиями и источникомп. 5.16.3.2
Белый список и SBOMчто одобрено, какая версия, откуда
Анализ на известные уязвимости непосредственно перед сборкойп. 5.16.2.4
Проверка в заявке и в каждой сборкеотчёты сохраняются
Журналы контроля перечня и обновлений компонентовп. 5.16.3.3
История merge request и Dependency-Trackкто, когда и почему
Контроль предсобранного ПО по контрольным суммампп. 5.17.2.4, 5.17.3.4
Контрольная сумма в заявкево внутренний реестр попадает тот самый файл
Анализ на вредоносное ПО — как минимум отчёты антивирусап. 5.17.3.5
Антивирус и GuardDog в проверке заявкиотчёт по каждому пакету

Это материалы для процессов 5.16 и 5.17, а не заключение о соответствии. Регламенты процессов пишете вы, мы даём шаблоны.

Что вы получаете

Карантин образов

Прокси-проекты Harbor, которые проверяют каждый новый образ и не отдают уязвимые выше порога или неподписанные.

Заявки на пакеты

Проект белого списка, конвейер проверок и публикация во внутренний реестр.

Порядок исключений

Как попросить исключение, кто решает и когда оно истекает.

Наблюдение

Dependency-Track со всем одобренным и оповещения владельцам проектов.

Две инструкции

Для разработчиков — как заказать пакет. Для безопасности — как рассматривать заявку.

Как проходит

  1. Шаг 1 · 1–3 дня

    Замеры

    Что сборки скачивают сейчас, откуда и как часто появляются новые зависимости. Фиксированная цена и план.

  2. Шаг 2

    Образы

    Прокси-проекты Harbor с проверкой и блокировкой, сборки переключаются на них.

  3. Шаг 3

    Пакеты

    Белый список, конвейер проверок, внутренний реестр. Сначала — одна пилотная команда.

  4. Шаг 4

    Наблюдение и передача

    Dependency-Track, порядок исключений, инструкции, встречи с разработчиками и безопасностью.

Порядок всегда один. Сколько займёт каждый шаг, зависит от объёма: замеры на первом шаге задают цену и сроки.

Что нужно от вас и что не входит

Нужно от вас

  • Ответственный в безопасности, который одобряет заявки.
  • Возможность закрыть агентам сборки прямой выход в интернет — скажем, что именно закрыть.
  • Пилотная команда, готовая первой работать по-новому.

Не входит

  • Рассмотрение заявок за вас — решение остаётся за вашей безопасностью.
  • Гарантия, что вредоносный пакет никогда не пройдёт: проверки снижают риск, но не убирают его.
  • Покупка коммерческих данных об угрозах.

Вопросы и ответы

Разработчики не начнут ждать неделями?

Образы проверяются в прокси без участия людей. Новый пакет ждёт одобрения — срок ответа согласуем с безопасностью, а распространённые пакеты одобряем заранее, чтобы очередь была короткой.

Это так же надёжно, как Sonatype или JFrog?

У коммерческих продуктов свои данные об угрозах и автоматический карантин для пакетов. У нас — открытые сканеры и явный шаг одобрения. Многим командам этого достаточно; кому-то коммерческий продукт стоит своих денег. Что подходит вам, скажем после замеров.

Можно оставить Nexus Community Edition?

Да. Одобренные пакеты может хранить Nexus CE — мы добавляем вокруг него заявки и карантин образов. Если Nexus упёрся в лимиты, смотрите три пути.

Нужен ли GitLab Premium?

Нет. С Premium обязательное одобрение безопасностью настраивается правилом в проекте; на бесплатной версии используем отдельный проект белого списка.

Расскажите, что ваши сборки скачивают из интернета

Форматы (образы, npm, PyPI, Maven…) и число конвейеров — этого достаточно, чтобы оценить объём на первом звонке.

Обсудить проект