0Pricing
Cyber Security Academy · Урок

Анализ состава программного обеспечения (SCA)

Проверяйте зависимости на наличие известных CVE с помощью OWASP Dependency-Check, Snyk или GitHub Dependabot.

«Анализ состава программного обеспечения (SCA)» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

Что такое SCA

Анализ состава программного обеспечения (SCA) выявляет зависимости с открытым исходным кодом в вашем проекте и проверяет их по базам данных уязвимостей (NVD, CVE, GitHub Advisory). Он также выявляет проблемы соблюдения лицензионных требований.

Почему сторонние зависимости опасны

Современные приложения используют сотни библиотек с открытым исходным кодом. Одна уязвимая библиотека может поставить под угрозу всё приложение. Уязвимость Log4Shell 2021 года (CVE-2021-44228) затронула миллионы приложений на Java из-за одной широко используемой библиотеки журналирования.

Инструменты SCA

Популярные инструменты SCA:

# npm audit (Node.js):
npm audit
npm audit fix

# pip-audit (Python):
pip-audit

# OWASP Dependency-Check:
dependency-check.sh --project myapp --scan ./

# Snyk:
snyk test
snyk monitor

Dependabot и Renovate

Инструменты автоматического обновления зависимостей:

  • Dependabot (GitHub) — автоматически создаёт PR для обновления уязвимых зависимостей
  • Renovate — лучше настраивается и поддерживает больше реестров

Включите их в каждом репозитории — они уменьшают объём ручной работы по отслеживанию обновлений зависимостей.

Понимание критичности CVE

Не всякая уязвимость зависимости может быть использована в вашем контексте. Оцените:

  • Доступен ли уязвимый путь выполнения при вашем использовании?
  • Предоставляет ли ваше приложение доступ к этой функции?
  • Снижает ли WAF или другое средство защиты связанный с ней риск?

Оценка CVSS — это отправная точка, но фактический риск определяется контекстом.

Транзитивные зависимости

У прямых зависимостей есть собственные зависимости (транзитивные). Уязвимость в библиотеке, о которой вы никогда не слышали, всё равно может повлиять на вас. Инструменты SCA строят полное дерево зависимостей. Выполните npm ls или pip show -r requirements.txt, чтобы изучить это дерево.

npm ls --all | grep "vulnerable-pkg"
pip show requests | grep Requires

Ведомость состава программного обеспечения (SBOM)

SBOM — это формальный перечень всех компонентов программного продукта. Указ 14028 (US) требует наличия SBOM для программного обеспечения, поставляемого правительству US. Форматы: SPDX, CycloneDX.

# Generate SBOM with syft:
syft . -o cyclonedx-json > sbom.json
# Scan SBOM for vulnerabilities:
grype sbom:./sbom.json

Соблюдение лицензионных требований

SCA также проверяет лицензии. Зависимости с лицензией GPL в коммерческом программном обеспечении могут потребовать публикации вашего кода с открытым исходным кодом. Лицензии LGPL, MIT и Apache 2.0 обычно допускают широкое использование. Юридическим командам нужна информация о лицензиях зависимостей — SCA предоставляет её автоматически.

Атаки на цепочку поставок

Злоумышленники внедряют вредоносный код в популярные пакеты с открытым исходным кодом:

  • Подмена пакета похожим именем: reqeusts вместо requests
  • Взломанные учётные записи сопровождающих (атаки по типу SolarWinds)
  • Путаница зависимостей: утечка имён частных пакетов в общедоступный реестр

SCA с проверкой целостности (контрольные суммы, файлы блокировки) снижает этот риск.

Файлы блокировки

Файлы блокировки (package-lock.json, Pipfile.lock) фиксируют точные версии и проверяют контрольные суммы. Добавляйте файлы блокировки в систему контроля версий. Никогда не используйте npm install --legacy-peer-deps, чтобы пропустить проверки файлов блокировки при сборках для рабочей среды.

SCA в конвейере CI/CD

Интегрируйте SCA как обязательный этап контроля CI:

# GitHub Actions example:
- name: Run npm audit
  run: npm audit --audit-level=high
# Fail build on HIGH/CRITICAL findings
# Use --audit-level=moderate for stricter posture

Быстрая проверка: SCA

Какова основная цель анализа состава программного обеспечения (SCA)?

Итоги урока

SCA проверяет зависимости проекта на наличие известных CVE, проблем с лицензиями и рисков цепочки поставок. Это особенно важно из-за транзитивных зависимостей: уязвимость в библиотеке, от которой зависит другая библиотека, всё равно затрагивает вас. Включите Dependabot или Renovate для автоматического обновления. Создавайте SBOM (SPDX/CycloneDX), чтобы обеспечить прозрачность цепочки поставок. Файлы блокировки фиксируют версии и проверяют контрольные суммы. Интегрируйте SCA как этап контроля CI с порогами критичности.

Часто задаваемые вопросы

Урок «Анализ состава программного обеспечения (SCA)» бесплатный?

Да — полный текст урока «Анализ состава программного обеспечения (SCA)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Анализ состава программного обеспечения (SCA)»?

Проверяйте зависимости на наличие известных CVE с помощью OWASP Dependency-Check, Snyk или GitHub Dependabot. Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Анализ состава программного обеспечения (SCA)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. SAST и DAST в конвейерах CI/CD
  2. Анализ состава программного обеспечения (SCA)
  3. Сканирование секретов и зашитые учётные данные
  4. Чемпионы по безопасности и моделирование угроз
← Назад к Cyber Security Academy