Linux Foundation вводит систему оценки безопасности

Linux Foundation вводит систему оценки безопасности

Сформированный при организации Linux Foundation фонд Core Infrastructure Initiative, анонсировал первые результаты продвижения инициативы Best Practices Badge Program для стимулирования повышения безопасности свободных проектов.

В рамках инициативы сформирован набор критериев, составленных с учётом опыта наиболее серьёзно относящихся к безопасности сообществ. Список включает 74 критерия, разделённых по степени важности (обязательные, желательные и рекомендуемые). Выполнение критериев позволяет судить о серьёзном отношении проектов к безопасности, обеспечению качества и поддержанию стабильности кодовой базы. Для оценки соответствия своего проекта предъявляемым критериям подготовлено простое web-приложение.

На базе данных критериев запущена программа сертификации соответствия проектов требованиям качества, безопасности и стабильности. Прошедшие сертификацию проекты получают право размещения на сайте специального знака качества, сигнализирующего о серьёзном отношении разработчиков к безопасности. В настоящее время заявки на проведение проверки сформированы для 114 проектов. Успешно прошли проверку 7 проектов: Curl, GitLab, ядро Linux, OpenBlox, OpenSSL, Node.js и Zephyr. Три проекта признаны не соответствующими критериям (pkgsrc - указание нескольких лицензий в разных файлах, container-tools - сайт без HTTPS, byobu - сайт без HTTPS c TLS). Остальные проекты находятся на стадии проверки, пишет opennet.ru.

Ключевые требования к проектам:

  • Доступный по постоянному адресу web-сайт, на котором описано назначение проекта, предоставлены ссылки для загрузки, имеется возможность отправки отзыва разработчикам и доступна инструкция по подключению к разработке/отправке изменений;
  • Использование типовой свободной лицензии и размещение информации о лицензии в файлах LICENSE или COPYING;
  • Поддержка HTTPS на сайте;
  • Наличие документации, описывающей установку и запуск, а также наличие спецификации для API;
  • Доступность кода через распределённые системы контроля версий и возможность оценки изменений между релизами;
  • Присвоение каждому выпуску уникального номера версии в формате семантического версионирования;
  • Наличие списка изменений, в котором явно выделены исправленные уязвимости;
  • Предоставление средства для отправки разработчикам сообщений об ошибках и отслеживания их исправления. Доступ к архиву сообщений о проблемах. Аргументированная реакция на любые сообщения об ошибках и запросов на улучшения, без игнорирования;
  • Наличие безопасного и документированного процесса отправке уведомлений об обнаружении уязвимостей. Ответ на подобные сообщения должен составлять не более 14 дней, а проблема должна быть устранена не более чем за 60 дней;
  • Возможность сборки с использованием штатных открытых инструментов. Возможность включения сборки в режиме вывода предупреждений компилятором и компоновщиком. Возможность запуска статических анализаторов кода;
  • Наличие автоматизированного тестового набора, покрывающего большую часть функциональности проекта. Добавление новых тестов для нового кода;
  • Автоматизированный запуск тестов для всех изменений и применение динамических проверок с использованием анализаторов, подобных Valgrind, систем fuzzing-тестирования и сканеров безопасности;
  • Знание разработчиками методов безопасного программирования и типовых ошибок, приводящих к уязвимостям;
  • В случае наличия поддержки шифрования применение публичных протоколов и алгоритмов, задействование уже готовых проверенных и открытых реализаций, использование ключей надлежащей длины, отказ от поддержки проблемных и уязвимых алгоритмов, использование алгоритмов с Forward secrecy, хранение любых паролей в форме хэшей с солью, применение надёжных генераторов случайных чисел.