Анализ компонентного состава ПО
SCA — технология кибербезопасности, автоматизированное сканирование ПО с целью нахождения фрагментов с открытым исходным кодом (OSS, Open Source Software) и их дальнейшей проверки. SCA позволяет выявить возможные уязвимости в сторонних компонентах, устаревшие элементы, а также проблемы с лицензированием уже на ранних этапах разработки.
Зачем нужен SCA
Использование компонентов с открытым исходным кодом, которое широко распространено в современной разработке, несёт в себе риски. В уже применяемом в конкретном продукте компоненте могут найти новые уязвимости, а для некоторых из них со временем появятся публичные эксплойты. Для уязвимости также может выйти обновление безопасности. Однако чтобы вовремя его использовать, о нём как минимум нужно узнать. Обеспечение безопасности своего продукта путём внесения в код необходимых исправлений в этом случае является задачей команды разработчиков. А получить информацию об уязвимых компонентах поможет использование SCA.
Какие задачи решает SCA
- Выявление уязвимостей в приложениях на ранних этапах — использование SCA обеспечивает определённый уровень защиты ещё до релиза.
- Создание списка всех используемых компонентов (SBOM, Software Bill of Materials), который разработчики могут далее использовать для отслеживания зависимостей и внесения изменений.
- Обеспечение соответствия продукта требованиям законодательства, стандартам и политикам безопасности.
- Решение проблем с лицензиями. Важно убедиться в отсутствии в используемых компонентах фрагментов, не предназначенных для коммерческого использования.
На разных этапах разработки приложения, помимо SCA, часто используются и другие виды анализа безопасности приложений: статический (SAST) и динамический (DAST). Некоторые инструменты сочетают все их в одном решении. По такому принципу реализован, например, Solar appScreener.
Алгоритм работы SCA
- Загрузка файла сборки ПО в анализатор.
- Анализ загруженных файлов и их сопоставление с имеющейся информацией.
- Выявление источника совпадений и проверка исходного кода оригинального компонента ПО.
- Выявление заимствованных фрагментов кода и сбор спецификации материалов.
- Сравнение спецификации с имеющейся у SCA-инструмента базой уязвимостей.
Успех в поиске проблем безопасности во многом зависит от того, какую базу уязвимостей использует SCA при анализе. Чтобы повысить эффективность, иногда могут применяться сразу несколько перечней.
Система сканирует зависимости, библиотеки и фреймворки. SCA не ограничивается разовой проверкой. Для оптимальных результатов стоит выполнять анализ компонентного состава приложения на регулярной основе.
Ограничения SCA
При всех своих преимуществах технология компонентного анализа приложений не лишена и недостатков:
- Ложные срабатывания. Они возможны при использовании обширных баз уязвимостей, поэтому каждая находка системы требует валидации вручную.
- Слепые зоны. Свежие уязвимости будут незаметны для SCA, пока не появятся в используемых инструментом базах.
- Невозможность использования для закрытого кода. Этот инструмент подходит только для анализа компонентов из открытых источников, а для проприетарного кода лучше выбрать SAST.