Оценка проблем с сопровождением открытых проектов и использованием старых зависимостей

Компания Sonatype, специализирующаяся на защите от атак, манипулирующих подменой программных компонентов и зависимостей (supply chain), опубликовала результаты исследования (PDF, 62 стр.) проблем с зависимостями и сопровождением открытых проектов на языках Java, JavaScript, Python и .NET, представленных в репозиториях Maven Central, NPM, PyPl и Nuget. За год отмечено увеличение числа проектов в отслеживаемых открытых экосистемах в среднем на 29%. Число загрузок пакетов из рассматриваемых репозиториев в 2023 году выросло на 33%, но для сравнения в 2021 году число загрузок увеличилось на 73%.

Существенно выросла вредоносная активность в репозиториях – с начала года выявлено 245 тысяч вредоносных пакетов и в два раза увеличилось число зафиксированных атак, нацеленных на подмену зависимостей.


Многие проекты продолжают использовать уязвимые версии, например, 23% загрузок Java-пакета Log4j до сих пор составляют версии с критическими уязвимостями, устранёнными в 2021 году. В репозитории Maven Central около 12% всех загрузок приходятся на компоненты, содержащие известные уязвимости. В среднем для всех репозиториев доля загрузок старых версий пакетов, относящихся к категориям рискованных (например, с неисправленными уязвимостями) составляет 20% (в 80% случаев загружается актуальная версия). В 96% случаев загрузки компонентов с уязвимостями можно было избежать, выбрав версии, в которых проблема уже устранена.

Значительную проблему в поддержании безопасности также составляет качественно сопровождение проектов. В экосистемах для языков Java и JavaScript с этим большие проблемы – за последний год было прекращено сопровождение каждого пятого проекта (18.6%), представленного в Maven Central и NPM, и сопровождаемого в предыдущем году. Из 1.176 миллиона проанализированных проектов, присутствующих в репозиториях Maven, NPM, PyPl и Nuget, только 11% (118 тысяч) продолжают активно сопровождаться.

В ходе исследования также был проведён опрос 621 профессионального разработчика из различных компаний. 67% опрошенных полагают, что их приложения не используют уязвимые библиотеки, 10% за последние 12 месяцев сталкивались с инцидентами с безопасностью, вызванными уязвимостями в открытом ПО, а 20% затрудняются ответить. 28% компаний определяют наличие уязвимых компонентов в течение 1 дня после раскрытия данных об уязвимости, 39% – от 1 до 7 дней, а 29% – более недели.

Release. Ссылка here.