Что такое OSA / SCA

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

━━━━━━━━ Что такое OSA / SCA ━━━━━━━

SCA (Software Composition Analysis) — это анализ состава приложения: какие open-source и сторонние компоненты используются в проекте, какие у них есть уязвимости, лицензии и зависимости.

OSA (Open Source Analysis) — по сути тот же класс задач: понять, из чего реально собран ваш проект и какие риски вы импортировали вместе с зависимостями.

━━━━━━━━ Что такое транзитивные зависимости ━━━━━━━

Вы подключили одну библиотеку. Она подтянула ещё пять. Те подтянули ещё двадцать. А потом внезапно выясняется, что ваш “небольшой сервис” уже живёт на целом лесу чужого кода.

Это и есть транзитивные зависимости — зависимости ваших зависимостей.

Ирония здесь в том, что многие разработчики до сих пор искренне удивляются, почему их фреймворк весит не “пару файлов”, а гигабайты, а итоговый контейнер выглядит как маленькая операционная система. Но библиотеки с нуля сегодня почти никто не пишет: мы все давно собираем свои приложения из чужих кубиков, а потом делаем вид, что это “наш код”.

По данным Black Duck, 64% open-source компонентов в типичном кодовой базе — это именно транзитивные зависимости. У Snyk есть ещё более жёсткая оценка: около 80% уязвимостей в open-source пакетах находятся в транзитивных зависимостях. То есть основная боль часто живёт даже не там, куда вы смотрите руками.

━━━━━━━━ Какие есть инструменты для анализа ━━━━━━━

Из open-source и “бесплатно попробовать” чаще всего вспоминают: — OWASP Dependency-CheckTrivy

━━━━━━━━ Где начинается реальная боль ━━━━━━━

В теории всё красиво: подключил scanner, получил список проблем, обновил пакеты, победил.

На практике вы запускаете SCA и получаете сотни или тысячи алертов. Часть из них: • глубоко сидит в транзитивке; • не вызывается в runtime; • неэксплуатируема в вашем сценарии; • либо просто создаёт шум.

И вот тут начинается старый добрый конфликт между разработкой и ИБ: одни говорят “у нас тысяча алертов, вы серьёзно хотите всё это чинить?”, другие отвечают “это же поверхность атаки”. И обе стороны по-своему правы.

━━━━━━━━ Мини-итог ━━━━━━━

Если говорить субъективно, то мы сами загнали себя в эту реальность. Мы хотели писать быстрее, проще и удобнее. Хотели не изобретать велосипед. Хотели брать готовое. И получили мир, где приложение часто состоит не столько из нашего кода, сколько из длинной цепочки чужих решений.

#AppSec #SCA #OSA #CyberSecurity #DevSecOps

Что такое OSA / SCA | Сетка — социальная сеть от hh.ru