В исследовании Veracode State of Software Security (SoSS) v11: Open Source Edition было обнаружено, что в 79% случаев сторонние библиотеки никогда не обновляются разработчиками после включения в кодовую базу. Этот отчет SoSS ориентирован на приложения и компоненты с открытым исходным кодом и основан на анализе 13 миллионов сканирований более 86,000 репозиториев, содержащих более 301,000 уникальных библиотек. В анализ также включены результаты опроса об использовании стороннего программного обеспечения от почти 2000 разработчиков.
Библиотеки не обновляются, так как более двух третей исправлений считаются незначительными и не нарушают общую функциональность приложения. В других данных исследования — 92% недостатков библиотеки с открытым исходным кодом могут быть исправлены с помощью обновлений, а 69% обновлений представляют собой только незначительное изменение версии или даже меньшее. Однако, хотя библиотеки с открытым исходным кодом постоянно развиваются, и поэтому то, что кажется безопасным сегодня, может перестать быть безопасным завтра, потенциально создавая значительный риск безопасности для разработчиков и пользователей.
Хорошая новость заключается в том, что разработчики обычно быстро реагируют, узнав об уязвимых библиотеках в кодовой базе. По словам Veracode, почти 17% уязвимых библиотек исправляются в течение часа после того, как разработчик обнаруживает библиотеку с уязвимостью, а 25% — в течение семи дней.
Исследование также показывает, что только у 52% опрошенных разработчиков есть формальный процесс выбора сторонних библиотек, в то время как более четверти либо не уверены — или даже не знают, — существует ли формальный процесс. Кроме того, разработчики поставили «Безопасность» только на третье место по важности при выборе библиотеки, в то время как «Функциональность» и «Лицензирование» заняли первое и второе места соответственно.
Поскольку почти все современные приложения создаются с использованием стороннего программного обеспечения с открытым исходным кодом, единственный недостаток в одной библиотеке может каскадно распространяться на все приложения, использующие этот код.