Рейтинг библиотек, требующих особой проверки безопасности

Сформированный при организации Linux Foundation фонд Core Infrastructure Initiative, в рамках которого ведущие корпорации объединили свои усилия в направлении обеспечения поддержки открытых проектов, задействованных в ключевых областях компьютерной индустрии, провёл второе исследование в рамках программы Census, нацеленной на выявление открытых проектов, нуждающихся в первоочередном аудите безопасности.

Второе исследование ориентировано на анализ совместно используемого открытого кода, неявно применяемого в различных корпоративных проектах в форме зависимостей, загружаемых из внешних репозиториев. Уязвимости и компрометация разработчиков сторонних компонентов, задействованных в работе приложений (supply chain), могут свести на нет все усилия по совершенствованию защиты основного продукта. В результате исследования было определено 10 наиболее часто используемых пакетов на JavaScript и Java, безопасность и активность сопровождения которых требует особого внимания.

Библиотеки JavaScript из репозитория npm:

  • async (196 тысяч строк кода, 11 авторов, 7 коммитеров, 11 незакрытых проблем);
  • inherits (3.8 тысячи строк кода, 3 автора, 1 коммитер, 3 незакрытых проблемы);
  • isarray (317 строк кода, 3 автора, 3 коммитера, 4 незакрытых проблемы);
  • kind-of (2 тысячи строк кода, 11 авторов, 11 коммитеров, 3 незакрытых проблемы);
  • lodash (42 тысячи строк кода, 28 авторов, 2 коммитера, 30 незакрытых проблем);
  • minimist (1.2 тысячи строк кода, 14 авторов, 6 коммитеров, 38 незакрытых проблем);
  • natives (3 тысячи строк кода, 2 автора, 1 коммитер, нет незакрытых проблем);
  • qs (5.4 тысяч строк кода, 5 авторов, 2 коммитера, 41 незакрытая проблема);
  • readable-stream (28 тысяч строк кода, 10 авторов, 3 коммитера, 21 незакрытая проблема);
  • string_decoder (4.2 тысячи строк кода, 4 автора, 3 коммитера, 2 незакрытых проблемы).

Библиотеки Java из репозиториев Maven:

  • jackson-core (74 тысячи строк кода, 7 авторов, 6 коммитеров, 40 незакрытых проблем);
  • jackson-databind (74 тысячи строк кода, 23 авторов, 2 коммитеров, 363 незакрытых проблем);
  • guava.git, библиотеки Google для Java (1 миллион строк кода, 83 автора, 3 коммитера, 620 незакрытых проблем);
  • commons-codec (51 тысяча строк кода, 3 автора, 3 коммитера, 29 незакрытых проблем);
  • commons-io (73 тысячи строк кода, 10 авторов, 6 коммитеров, 148 незакрытых проблем);
  • httpcomponents-client (121 тысяча строк кода, 16 авторов, 8 коммитеров, 47 незакрытых проблем);
  • httpcomponents-core (131 тысяча строк кода, 15 авторов, 4 коммитера, 7 незакрытых проблем);
  • logback (154 тысячи строк кода, 1 автор, 2 коммитера, 799 незакрытых проблем);
  • commons-lang (168 тысяч строк кода, 28 авторов, 17 коммитеров, 163 незакрытых проблемы);
  • slf4j (38 тысяч строк кода, 4 автора, 4 коммитера, 189 незакрытых проблемы);

В отчёте также рассмотрены вопросы стандартизации схемы наименования внешних компонентов, защиты учётных записей разработчиков и поддержания устаревших версий после формирования новых значительных выпусков. Дополнительно организацией Linux Foundation опубликован документ с практическими рекомендациями по организации безопасного процесса разработки открытых проектов.

В документе рассмотрены вопросы распределения ролей в проекте, создания команд, отвечающих за безопасность, определения политики безопасности, слежения за полномочиями, которые имеют участники проекта, корректного использования Git при исправлении уязвимостей для избежания утечек до публикации исправления, определения процессов реагирования на сообщения о проблемах с безопасностью, внедрения систем тестирования безопасности, применения процедур рецензирования кода, учёта связанных с безопасностью критериев при формировании релизов.

Источник: http://www.opennet.ru/opennews/art.shtml?num=52415