Описание проекта
Виды решений для анализа библиотек с открытым исходным кодом
SCA – класс решений по информационной безопасности программного обеспечения,
которое предназначено для обнаружения известных уязвимостей в программном обеспечении
с открытым исходным кодом (open source).
Практически каждый проект использует open source компоненты,
причем их доля может достигать 80-90% общей кодовой базы проекта.
Компания разработчик не может выявлять все уязвимости в чужом коде,
поэтому появилась индустрия анализа open source компонентов на уязвимости.
Существуют как бесплатные SCA решения, так и проприетарные.
Бесплатные решения в основном опираются на национальную
базу данных уязвимостей США (NVD), а также некоторые другие
открытые базы данных. Проприетарные решения (Whitesource, Sonatype, Snyk и пр.)
кроме данных из NVD имеют собственные команды анализа уязвимостей
и собственные БД уязвимостей, доступные при покупке их решений.
Скорость добавления уязвимостей в бесплатные продукты и в
проприетарные разная, что и обеспечивает существование рынка платных решений.
В России существует аналог NVD – БДУ ФСТЭК. Из проприетарных решений,
SCA есть в продуктах Positive Technologies для безопасности приложений,
которое в свою очередь также опираются на бесплатные утилиты с информацией из американской БД.
Проблемы применения открытых библиотек
Последние события показали, что в настоящий момент в open source компоненты
могут добавляться недокументированные возможности (НДВ) и вредоносное
программное обеспечение по политическим и иным соображениям
(на основе IP-адреса машины и прочих метаданных). Полагаться,что такие проблемы
будут оперативно оповещаться в NVD из США точно не стоит, поэтому необходимо
решение, которое будет фиксировать факты НДВ. Также скорость добавления
уязвимостей в бесплатные утилиты не позволяет оперативно исправлять возникающие уязвимости.
Стоит отметить, что даже если авторы open source и не хотят сами добавлять
НДВ и вредоносный код в свои библиотеки (что их явно дискредитирует),
то нельзя исключать целенаправленного взлома аккаунтов авторов и
добавление туда кода вне их воли (атаки на цепочки поставок).
Варианты решения
Решением может стать отечественный SCA, который будет
минимизировать такие политические риски в open source компонентах.
Предлагается следующая стратегия:
1. Определить основные используемые в российском государственном и
бизнес сегменте библиотеки с открытым исходным кодом.
2. Выбрать основные языки программирования, которые первостепенно
важны для поиска уязвимостей и НДВ. На первом этапе это могут быть: Java, Python, JavaScript, C++, S#.
3. Поиск уязвимостей первоначально опирается на информацию из
открытых баз данных уязвимостей (NVD, БДУ, OSS и пр.).
4. Для выбранных критичных библиотек проводится анализ новых версий
библиотеки на предмет добавления НДВ и вредоносного кода
(ручной анализ, анализ антивирусным ПО).
5. Утилита доступна локально по отношению к папке с исходными кодами проверяемого приложения.
6. Доступна интеграция в сборочный конвейер CI/CD для автоматизации процесса проверки.
7. Веб интерфейс для отображения результатов сканирования и менеджмента уязвимостей и НДВ.
Дальнейшее развитие.
На следующих этапах развития решения необходимо приобретение компетенций
по собственным командам аналитиков по поиску уязвимостей,
что позволит решению конкурировать с платными вендорами
на доступных внешних рынках. Также в процессе приобретения компетенций
и автоматизации процессов следует расширять число доступных библиотек для анализа и языков программирования (Golang, Kotlin, Swift пр.)