Компания Veracode опубликовала результаты исследования проблем с безопасностью, вызванных встраиванием открытых библиотек в приложения (вместо динамического связывания многие компании просто копируют в состав своих проектов нужные библиотеки). В результате сканирования 86 тысяч репозиториев и опроса около двух тысяч разработчиков определено, что 79% перенесённых в код проектов сторонних библиотек в последующем никогда не обновляются.
При этом устаревший код библиотек становится причиной проблем с безопасностью, которых в 92% случаев можно избежать простым обновлением кода библиотеки. Отговорки, что обновление библиотек не производится из-за возможного нарушения совместимости, в большинстве случаев беспочвенны, так как в 69% случаев уязвимости были устранены в корректирующих выпусках, не связанных с изменением функциональности.
Влияние также оказывает информирование разработчиков о появлении уязвимостей – в случае, если разработчики были уведомлены о проблеме в библиотеке, в 17% случаев проблема решалась в течение часа, а в 25% – одной недели. При наличии информации о том, как уязвимость в библиотеке может привести к компрометации приложения, в 50% случаев исправление выпускалось в течение трёх недель, а без предоставления сведений – устранения уязвимости приходилось ждать 7 и более месяцев.
Четверть опрошенных разработчиков заявили, что при выборе библиотеки для встраивания основное внимание уделяется функциональности и лицензии на код, а уже потом учитывается безопасность.
Примечательно, что с проверкой лицензий на код ситуация не лучше – 54% опрошенных признались, что не всегда проверяют лицензию на код библиотеки перед её интеграцией в свой продукт. Обязательную проверку лицензионной совместимости практикуют только 27% опрошенных.