Skip to main content

Рекомендации по написанию рекомендаций по безопасности репозитория

При создании или изменении рекомендаций по безопасности предоставленные сведения проще понять при указании экосистемы, имени пакета и затронутых версий с использованием стандартных форматов.

Любой пользователь с разрешениями администратора в репозитории может создавать и изменять рекомендации по безопасности.

Примечание. Если вы занимаетесь исследованиями в сфере безопасности, обратитесь напрямую к специалистам по поддержке, чтобы попросить их создать рекомендации по безопасности или выдать CVE от вашего имени в репозиториях, которые вы не администрируете. Однако если для репозитория включена частная отчетность об уязвимостях, вы можете самостоятельно сообщить об уязвимости. Дополнительные сведения см. в разделе Приватный отчет об уязвимости безопасности.

Сведения о рекомендациях по безопасности для репозиториев

Рекомендации по безопасности репозитория позволяют ответственный за репозиторий приватно обсуждать и устранять уязвимость безопасности в проекте. После совместной работы над исправлением разработчики репозиториев могут публиковать рекомендации по безопасности, чтобы сообщить об уязвимости системы безопасности сообществу проекта. Публикуя рекомендации по безопасности, разработчики репозитория упрощают для сообщества обновление зависимостей пакетов и ознакомление с последствиями уязвимостей системы безопасности. Дополнительные сведения см. в разделе "Сведения о помощниках по безопасности репозитория".

Рекомендации

Мы рекомендуем использовать синтаксис, используемый в GitHub Advisory Database, особенно форматирование версий, при написании рекомендаций по безопасности репозитория или внесении вклада сообщества в глобальный совет по безопасности.

Если следовать синтаксису для GitHub Advisory Database, особенно при определении затронутых версий:

  • При публикации рекомендаций по репозиторию мы можем добавить рекомендации в GitHub Advisory Database в качестве рекомендаций по "GitHub-просмотре" без необходимости запрашивать дополнительные сведения.
  • Dependabot будет содержать сведения для точного определения затронутых репозиториев и отправки их Dependabot alerts, чтобы уведомить их.
  • Участники сообщества, скорее всего, предлагают изменения в рекомендациях по исправлению отсутствующих или неверных сведений.

Вы добавляете или редактируете рекомендации по репозиторию с помощью формы "Черновик рекомендаций по безопасности". Дополнительные сведения см. в разделе Создание рекомендаций по безопасности репозитория.

Вы предлагаете улучшение существующих глобальных рекомендаций с помощью формы повышения безопасности. Дополнительные сведения см. в разделе Изменение рекомендаций по безопасности в базе данных рекомендаций по GitHub.

Экосистема

Необходимо назначить рекомендации одной из поддерживаемых экосистем с помощью поля экосистемы . Дополнительные сведения о экосистемах, которые мы поддерживаем, см. в разделе "Просмотр рекомендаций по безопасности в базе данных рекомендаций по GitHub".

Снимок экрана: область "Затронутые продукты" формы рекомендаций по безопасности. Поле "Экосистема" выделено темно-оранжевым контуром.

Имя пакета

Мы рекомендуем использовать поле "Имя пакета", чтобы указать, какие пакеты затронуты, так как сведения о пакете требуются для рекомендаций "GitHub-просмотрен" в GitHub Advisory Database. Сведения о пакете являются необязательными для помощников по безопасности на уровне репозитория, но в том числе эти сведения раньше упрощают процесс проверки при публикации рекомендаций по безопасности.

Затронутые версии

Мы рекомендуем использовать поле "Затронутые версии" , чтобы указать, какие версии затронуты, так как эта информация требуется для рекомендаций "GitHub-просмотрен" в GitHub Advisory Database. Сведения о версиях необязательны для помощников по безопасности на уровне репозитория, но в том числе эти сведения раньше упрощают процесс проверки при публикации рекомендаций по безопасности.

  • Допустимая строка затронутой версии состоит из одного из следующих элементов:

    • Последовательность операторов нижней границы.
    • Последовательность операторов верхнего предела.
    • Последовательность операторов верхнего и нижнего границ.
    • Определенная последовательность версий с помощью оператора равенства (=).
  • Каждая последовательность операторов должна быть указана как оператор, отдельное пространство, а затем версия.

    • Допустимые операторы: =, , >``<``<=или .>=
    • Версия должна начинаться с числа, за которым следует любое число чисел, букв, точек, дефисов или подчеркивания (что-либо, кроме пробела или запятой)
    • При указании как верхней, так и нижней границы нижняя граница должна быть первой, за которой следует запятая и один пробел, а затем верхняя граница.

    Примечание. Затронутые строки версии не могут содержать начальные или конечные пробелы.

  • Операторы верхнего предела могут быть инклюзивными или эксклюзивными, т. е. <= соответственно <.

  • Операторы нижней границы могут быть инклюзивными или эксклюзивными, т. е. >= >соответственно. Однако если вы публикуете рекомендации по репозиторию, и мы учим рекомендации по репозиторию в глобальные рекомендации, применяется другое правило: строки с нижней границой могут быть только включающими, т. е. >= Монопольный оператор нижней границы (>) допускается только в том случае, если версия — 0например > 0.

    Примечания. Ограничение нижней границы:

    • из-за несовместимости с схемой OSV (уязвимость с открытым кодом).
    • применяется только при внесении предложения по существующим рекомендациям в GitHub Advisory Database.
  • Нельзя указать несколько затронутых диапазонов версий в одном поле, например > 2.0, < 2.3, > 3.0, < 3.2. Чтобы указать несколько диапазонов, необходимо создать раздел "Затронутые продукты " для каждого диапазона, нажав кнопку +Добавить другой затронутый продукт .

    Снимок экрана: область "Затронутые продукты" формы рекомендаций по безопасности. Ссылка, помеченная как "Добавить другой затронутый продукт", выделена темно-оранжевым контуром.

  • Если затронутый диапазон версий включает только одну верхнюю или нижнюю границу:

    • Неявное значение всегда имеет значение, > 0 если нижняя граница не указана явно.
    • Неявное значение всегда бесконечно, если верхняя граница не указана явно.

Дополнительные сведения о GitHub Advisory Databaseсм. в статье https://github.com/github/advisory-database.