Разработчикам часто требуются годы, чтобы устранить некоторые из уязвимостей в их программном обеспечении, сообщает новый отчёт GitHub.
Отчёт, основанный на анализе более 45 000 активных репозиториев, показывает, что обычно на устранение уязвимостей в Ruby уходит 7 лет, в то время как уязвимости в npm обычно исправляются за пять лет. Это связано с тем, что они часто остаются незамеченными.
Репозитории, учитываемые при создании отчета, используют одну из шести поддерживаемых пакетных экосистем (Composer, Maven, npm, NuGet, PyPI или RubyGems) и имеют включенный график зависимостей, поясняют исследователи.
Согласно отчету, больше всего используются открытые зависимости в JavaScript (94%), Ruby (90%) и .NET (90%). За последние 12 месяцев репозитории Ruby (81%) и JavaScript (73%) имели наибольшие шансы получить предупреждение о безопасности от GitHub's Dependabot.
«Уязвимости безопасности часто остаются незамеченными в течение более четырех лет, прежде чем их выявят и сообщат о них разработчикам. Как только они обнаружены, сопровождающий пакета и сообщество безопасности обычно создают и выпускают исправление чуть более чем за четыре недели», - отмечает GitHub.
Платформа хостинга кода также отмечает, что большинство обнаруженных в программном обеспечении уязвимостей являются результатом ошибок в коде и не представляют собой целенаправленных вредоносных атак. Тем не менее, анализ 521 рекомендации показал, что 17% из них связаны с «вредоносным» поведением.
«Уязвимости безопасности могут влиять на программное обеспечение напрямую или через его зависимости - любой код, на который есть ссылки и который поставляется в комплекте, чтобы заставить работать программный пакет. То есть, код может быть уязвим либо потому, что содержит уязвимости, либо потому, что он полагается на зависимости, которые содержат уязвимости», - говорится в отчете.
Если принять во внимание прямые зависимости, то было обнаружено, что JavaScript имеет наибольшее количество медианных зависимостей - десять, Ruby и PHP - девять, Java - восемь, а .NET и Python - шесть.
В отчёте также отмечается, что уязвимостью, которую можно считать самой серьезной ошибкой года, является CVE-2020-8203 («Prototype Pollution» в lodash, один из наиболее широко используемых npm-пакетов), так как он вызвал более пяти миллионов оповещений Dependabot.
Перевод сделан со статьи: https://www.securityweek.com