Новый отчет GitHub, основанный на изучении более чем 45 000 активных репозиториев, демонстрирует, что зачастую разработчикам требуются годы для устранения уязвимостей, появившихся в их программном обеспечении. Так, для устранения уязвимостей в Ruby обычно требуется 7 лет, а для устранения уязвимостей в npm обычно нужно 5 лет. Столь большие сроки связаны с тем, что баги часто остаются незамеченными.

«Уязвимости часто остаются незамеченными более четырех лет, прежде чем будут обнаружены. Как только они обнаруживаются, обычно специалисты по сопровождению пакетов и специалисты по безопасности создают и выпускают исправление всего за четыре недели», — пишут эксперты GitHub.

Все репозитории, которые рассмотрены в отчете, используют одну из шести экосистем пакетов (Composer, Maven, npm, NuGet, PyPI или RubyGems) и имеют включенный граф зависимостей. В опенсорсной среде чаще всего используются зависимости JavaScript (94%), Ruby (90%) и .NET (90%).

При этом, согласно статистике за последние 12 месяцев, репозитории Ruby (81%) и JavaScript (73%) имели наивысший шанс получить предупреждение системы безопасности от Dependabot.

Также отмечается, что большинство уязвимостей являются результатами программистских ошибок и никак не связаны со злонамеренными атаками. В частности, анализ 521 предупреждений показал, что лишь 17% из них были связаны с каким-либо вредоносным поведением.

«Уязвимости в системе безопасности могут воздействовать на программное обеспечение напрямую или через его зависимости — любой код, на который имеется ссылка и который связан с программным пакетом. То есть код может быть уязвим из-за того, что он сам содержит уязвимости, либо из-за того, что он полагается на зависимости, которые содержат уязвимости», — поясняет отчет.

В отчете также отмечается, что самой серьезной уязвимостью года может считаться CVE-2020-8203 (Prototype Pollution в lodash, одном из наиболее популярных пакетов npm), поскольку она вызвала более 5 000 000 срабатываний Dependabot.

Оставить мнение