SYSTEM ONLINE · build / v1.0 · region / RU · CIS · last index sync / 04.06.2026 / 13:09 UTC
· войти →
cyber-index.ru
исследование 3 июня 2026

SCA и контроль open source: как закрыть риски зависимостей

Современное приложение на 80–90% состоит из чужого кода: открытых библиотек и их транзитивных зависимостей. SCA (Software Composition Analysis, анализ состава ПО) — это класс инструментов, который инвентаризирует все open source компоненты в проекте и сопоставляет их с базами уязвимостей и лицензий. Так закрываются три типа рисков зависимостей: известные уязвимости (CVE), несовместимые или «вирусные» лицензии и атаки на цепочку поставок (supply chain). **Если коротко:** без SCA вы не знаете, что именно поставляете в продакшн, и узнаёте об уязвимой библиотеке из новостей, а не из пайплайна. SCA даёт SBOM (опись компонентов), автоматически проверяет каждую зависимость и умеет блокировать сборку по политике — например, если в проект попадает пакет с критичной уязвимостью или запрещённой лицензией. Ниже — как это работает, какой риск чем закрывается и как встроить SCA в CI/CD. Сравнить поставщиков по подтверждённым сигналам можно в [рейтинге SAST, DAST и SCA](/rating/appsec-testing-sast-dast-sca).

9 мин. чтения Блоки данных: 5 Позиции: не продаются Авторы: Ирина Карпова
shortlist

Рейтинги подрядчиков по теме исследования

Если после чтения нужен короткий список исполнителей, начните с профильных рейтингов cyber-index.ru: в них видны компании, кейсы, интервью, категории экспертизы и доверительный индекс.

methodology

Как проверять выводы исследования

Используйте материал как основу для shortlist: сопоставьте выводы с профилями компаний, связанными рейтингами, кейсами, интервью клиентов и источниками. Если в статье есть список источников, начинайте проверку с него; если источников мало, дополнительно запросите у подрядчика методику, baseline и примеры работ.

E-E-A-T

Авторы и проверка материала

У каждого исследования есть персональные авторы, профиль экспертизы, дата публикации, список источников и редакционная проверка выводов.

Experience

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

Expertise

В профиле автора указаны зона экспертизы, роль в редакции, регалии и темы, за которые он отвечает.

Authoritativeness

Материалы связаны с методологией cyber-index.ru, внутренними рейтингами, карточками компаний и источниками.

Trust

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

Почему зависимости стали главным риском AppSec

Разработка давно идёт «снизу вверх»: команда пишет бизнес-логику, а фундамент собирает из готовых open source библиотек. Это быстро и правильно, но у каждого подключённого пакета есть свои зависимости, у тех — свои. В результате в сборку попадают сотни и тысячи компонентов, большинство из которых разработчик никогда не открывал.

Проблема в том, что классические инструменты безопасности кода этот пласт не видят. SAST анализирует ваш собственный исходный код, но не знает, что в node_modules или в Maven-зависимостях лежит библиотека с критичной уязвимостью. Именно поэтому крупнейшие инциденты последних лет — это уязвимости не в коде продукта, а в его зависимостях: одна строчка в популярной библиотеке открывает дыру в тысячах приложений сразу.

SCA закрывает этот слепой зон. Он отвечает на три вопроса, на которые без него ответить нельзя: что именно собрано в артефакте, какие из этих компонентов уязвимы и можно ли их вообще использовать по лицензии.

Какие риски несут open source зависимости

Риски зависимостей удобно разложить на три группы — у каждой своя природа и свой способ контроля.

- **Известные уязвимости (CVE).** Самый частый риск: в компоненте найдена и опубликована уязвимость, патч есть, но в вашей сборке всё ещё старая версия. Опасность растёт с транзитивными зависимостями — уязвимый пакет приходит «прицепом» к тому, который вы подключили осознанно. - **Лицензионные риски.** Open source не значит «можно всё». Copyleft-лицензии (GPL, AGPL) могут требовать раскрытия вашего исходного кода, а часть лицензий несовместима между собой или с коммерческим использованием. Это юридический риск, который всплывает на due diligence или в суде, а не в проде. - **Атаки на цепочку поставок (supply chain).** Злоумышленник компрометирует сам пакет: публикует вредоносную версию, перехватывает заброшенную библиотеку, использует typosquatting (пакет с именем, похожим на популярный) или dependency confusion. Код «легальный» по формальным признакам, но содержит закладку.

Где прячется риск в типовом приложении

Редакционная оценка структуры кодовой базы и зон контроля по открытым данным OWASP и практике AppSec. Это иллюстрация пропорций, а не замер вашего конкретного проекта.

Доля open source в кодовой базе 85 %
85 %
Доля транзитивных (непрямых) зависимостей 70 %
70 %
Покрытие зависимостей классическим SAST 15 %
15 %
Покрытие зависимостей с внедрённым SCA 95 %
95 %
Зрелость практик SBOM в среднем по рынку 40 %
40 %

Как работает SCA: от SBOM до блокировки сборки

Под капотом SCA проходит несколько детерминированных шагов — понимание этой логики помогает правильно настроить инструмент и не отключить половину проверок «чтобы не мешали».

- **Инвентаризация и SBOM.** Инструмент разбирает манифесты и lock-файлы (package-lock, pom.xml, go.sum, requirements и т. п.), а зрелые решения — ещё и собранные артефакты, и формирует SBOM (Software Bill of Materials, опись состава ПО) в стандартном формате (CycloneDX или SPDX). SBOM — это полный список компонентов с версиями, включая транзитивные. - **Сопоставление с базами.** Каждый компонент сверяется с базами уязвимостей (CVE/NVD, отраслевые advisory) и лицензий. Здесь критична точность: хорошее SCA отличает реально затронутую версию от ложного совпадения и учитывает, достижим ли уязвимый код. - **Применение политики.** На найденные проблемы накладываются правила: какой уровень критичности блокирует сборку, какие лицензии запрещены, есть ли исключения с обоснованием и сроком. - **Действие в пайплайне.** По итогам политики сборка проходит, помечается предупреждением или падает (fail the build). Параллельно создаются задачи на обновление, а иногда — автоматический PR с поднятием версии.

Какой риск зависимостей чем закрывает SCA

Риск зависимости В чём опасность Чем закрывает SCA
Известная уязвимость (CVE) Эксплуатируемая дыра в компоненте, патч уже есть Сопоставление компонентов с базами CVE, подсказка безопасной версии
Транзитивная уязвимость Уязвимость в «непрямой» зависимости, её не видно в манифесте Полное дерево зависимостей в SBOM, анализ достижимости кода
Несовместимая лицензия GPL/AGPL и copyleft, юридический риск раскрытия кода Детект лицензий и политика разрешённых/запрещённых
Устаревший компонент Заброшенный пакет без поддержки и патчей Сигнал об EOL/устаревании и рекомендация замены
Supply chain (typosquatting, закладка) Вредоносная или подменённая версия пакета Проверка репутации пакета, фиксация версий, контроль источников
«Что мы вообще поставляем» Нет описи компонентов, аудит невозможен Генерация SBOM (CycloneDX/SPDX) для каждого релиза

Политики блокировки сборки: как не сломать разработку

Сила SCA — в политиках, но они же чаще всего становятся причиной, по которой инструмент «выключают». Чтобы контроль работал, а не саботировался, политику вводят постепенно.

- **Начните с режима наблюдения.** Первые недели SCA только сообщает о находках и не ломает сборку — команда видит реальный масштаб и привыкает к отчётам. - **Блокируйте по критичности, а не по всему сразу.** Разумный старт: падает сборка только на критичных и высоких уязвимостях с доступным фиксом; среднее и низкое — в бэклог. - **Разделяйте новый и легаси-код.** Жёсткие правила — на новые зависимости и новые PR; накопленный долг гасится по плану, а не блокирует релиз сегодня. - **Заведите процесс исключений.** Любой waiver — с обоснованием, ответственным и сроком пересмотра, а не «навсегда». Иначе список исключений превращается в способ обойти контроль. - **Свяжите лицензии с юристами.** Политику по лицензиям согласуйте один раз с юридической стороной, дальше она работает автоматически.

Чек-лист внедрения SCA в CI/CD

Инвентаризация стека перечислите языки, пакетные менеджеры и репозитории, которые должен покрыть SCA.
Генерация SBOM включите выпуск SBOM (CycloneDX или SPDX) для каждого релизного артефакта.
Интеграция в пайплайн встройте сканирование в CI на этапе сборки и в pre-merge проверку PR.
Анализ транзитивных зависимостей убедитесь, что инструмент строит полное дерево, а не только прямые зависимости.
Политика по уязвимостям задайте пороги критичности, при которых сборка падает, и что уходит в бэклог.
Политика по лицензиям согласуйте список разрешённых и запрещённых лицензий с юристами.
Режим наблюдения сначала первые недели не блокируйте сборку, соберите базовую картину долга.
Процесс исключений опишите, как оформлять waiver с обоснованием и сроком пересмотра.
Автообновления подключите автоматические PR на безопасные версии зависимостей.
Проверка реестра и сертификации сверьте статус решения в реестре отечественного ПО и сертификат ФСТЭК под вашу задачу.
Сравнение поставщиков выберите инструмент по подтверждённым сигналам в [рейтинге SAST/DAST/SCA](/rating/appsec-testing-sast-dast-sca).

Дорожная карта внедрения SCA: 6 шагов

  1. 01 Пилот на одном репозитории

    Возьмите один активный проект, подключите SCA и оцените качество находок и долю ложных срабатываний.

  2. 02 Базовая инвентаризация и SBOM

    Сформируйте опись компонентов по ключевым сервисам — это покажет реальный масштаб open source и долга.

  3. 03 Интеграция в CI/CD

    Встройте сканирование в сборку и в проверку pull request, пока без блокировок (режим наблюдения).

  4. 04 Ввод политик

    Включите блокировку по критичным уязвимостям и запрещённым лицензиям на новом коде; легаси — по плану.

  5. 05 Ремедиация и автообновления

    Запустите регулярное обновление зависимостей и автоматические PR на безопасные версии.

  6. 06 Масштабирование и контроль

    Распространите практику на все репозитории, добавьте SBOM в релизный процесс и отчётность для аудита.

Как мы оцениваем поставщиков

cyber-index.ru не продаёт места в рейтинге. Поставщики SCA и инструментов AppSec сравниваются по проверяемым сигналам: подтверждённые внедрения и кейсы, отзывы и интервью клиентов, внешняя репутация, специализация, прозрачность и свежесть данных. Поэтому статью стоит читать в связке с [рейтингом SAST, DAST и SCA](/rating/appsec-testing-sast-dast-sca): здесь — суть и критерии, там — сравнение конкретных компаний по подтверждённым фактам.

Следующий шаг

Разобрались с рисками и политиками — переходите к сравнению поставщиков: **[рейтинг SAST, DAST и SCA →](/rating/appsec-testing-sast-dast-sca)**. Полезно прочитать рядом: [SAST против DAST](/research/sast-vs-dast-vybor), [рейтинг российских SAST/DAST 2026](/research/rejting-rossijskih-sast-dast-2026) и [чем заменить Checkmarx, Fortify и Veracode](/research/zamena-checkmarx-fortify-veracode).

Частые вопросы

Чем SCA отличается от SAST и DAST?

SAST анализирует ваш собственный исходный код, DAST — работающее приложение «снаружи», а SCA смотрит на состав ПО: открытые библиотеки и их зависимости. Это дополняющие классы: SAST не видит уязвимости в чужих пакетах, а SCA — в вашей бизнес-логике. Подробнее — в статье SAST против DAST.

Что такое SBOM и зачем он нужен?

SBOM (Software Bill of Materials) — это опись всех компонентов ПО с версиями, включая транзитивные зависимости, в стандартном формате (CycloneDX или SPDX). Он нужен, чтобы за минуты ответить «затронуты ли мы новой уязвимостью», провести аудит и выполнить требования к прозрачности цепочки поставок.

SCA находит уязвимости в транзитивных зависимостях?

Да, и это его ключевая ценность. SCA строит полное дерево зависимостей, поэтому видит не только пакеты, которые вы подключили явно, но и те, что пришли «прицепом». Зрелые решения ещё и оценивают достижимость уязвимого кода, чтобы снизить число ложных срабатываний.

Стоит ли сразу блокировать сборку при любой находке?

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

Где сравнить конкретных поставщиков SCA между собой?

В рейтинге SAST, DAST и SCA — там решения ранжированы по подтверждённым сигналам, а не по рекламе.

verification

Источники и метод проверки

Современное приложение на 80–90% состоит из чужого кода: открытых библиотек и их транзитивных зависимостей. SCA (Software Composition Analysis, анализ состава ПО) — это класс инструментов, который инвентаризирует все open source компоненты в проекте и сопоставляет их с базами уязвимостей и лицензий. Так закрываются три типа рисков зависимостей: известные уязвимости (CVE), несовместимые или «вирусные» лицензии и атаки на цепочку поставок (supply chain). **Если коротко:** без SCA вы не знаете, что именно поставляете в продакшн, и узнаёте об уязвимой библиотеке из новостей, а не из пайплайна. SCA даёт SBOM (опись компонентов), автоматически проверяет каждую зависимость и умеет блокировать сборку по политике — например, если в проект попадает пакет с критичной уязвимостью или запрещённой лицензией. Ниже — как это работает, какой риск чем закрывается и как встроить SCA в CI/CD. Сравнить поставщиков по подтверждённым сигналам можно в [рейтинге SAST, DAST и SCA](/rating/appsec-testing-sast-dast-sca).

next step

Сравнить подрядчиков по рейтингу

Исследование помогает сформулировать критерии. Для короткого списка используйте категории рейтинга и карточки компаний.

Рейтинг SAST, DAST и SCA