Сведения о GitHub Advisory Database
Советы по безопасности публикуются как JSON-файлы в формате уязвимости с открытым исходным кодом (OSV). Дополнительные сведения о формате OSV см . в формате уязвимостей с открытым исходным кодом.
Типы рекомендаций по безопасности
Каждое GitHub Advisory Database из рекомендаций в этом разделе относится к определенной проблеме безопасности в компоненте программного обеспечения. Эти проблемы возникают в нескольких разновидностях.
Уязвимость — это проблема в коде проекта, который может быть использован для повреждения конфиденциальности, целостности или доступности проекта или других проектов, использующих его. Уязвимости в коде обычно создаются случайно и исправляются вскоре после обнаружения. Рекомендации по уязвимостям содержат сведения о диапазоне выпущенных версий пакетов, в которых существует проблема, и самой ранней версии, в которой была исправлена проблема. Это помогает подчиненным пользователям программного обеспечения устранить уязвимость, обновив свои зависимости, чтобы использовать фиксированную версию, как только она доступна.
Вредоносные программы, с другой стороны, — это код для намеренного выполнения нежелательных или вредных функций. Вредоносная программа может быть нацелена на оборудование, программное обеспечение, конфиденциальные данные или пользователей любого приложения, использующего вредоносные программы. Необходимо удалить вредоносную программу из проекта и найти альтернативу, более безопасную замену зависимости. Оповещения о вредоносных программах не содержат версию исправления, так как определяющая характеристика оповещений о вредоносных программах заключается в отсутствии безопасных версий— единственный безопасный курс действий — не использовать пакет вообще.
GitHub-просмотр рекомендаций по уязвимостям
Мы добавляем советы в GitHub Advisory Database из следующих источников.
- Советы по безопасности, опубликованные в GitHub
- Национальная база данных уязвимостей
- База данных советов по безопасности npm
- База данных FriendsOfPHP
- База данных Go Vulncheck
- База данных рекомендаций по упаковке Python
- База данных Ruby Advisory
- База данных RustSec Advisory
- Вклад сообщества. Дополнительные сведения см. в разделе https://github.com/github/advisory-database/pulls.
Если вы знаете другую базу данных, из которую мы должны импортировать рекомендации, сообщите нам об этом, открыв проблему в https://github.com/github/advisory-database.
** GitHub-Проверенные** рекомендации сопоставляются с пакетами в поддерживаемых нами экосистемах. Мы тщательно проверяем каждое сообщение на достоверность и гарантируем, что они содержат полное описание, а также информацию об экосистеме и упаковке.
Как правило, мы называем поддерживаемые экосистемы по имени реестра пакетов соответствующего языка программирования программного обеспечения. Мы проверяем рекомендации, если они предназначены для уязвимости в пакете, который поступает из поддерживаемого реестра.
- Composer (реестр: https://packagist.org/)
- Erlang (реестр: https://hex.pm/)
- Go (реестр: https://pkg.go.dev/)
- Действия на GitHub (https://github.com/marketplace?type=actions/)
- Maven (реестр: https://repo.maven.apache.org/maven2)
- Npm (реестр: https://www.npmjs.com/)
- NuGet (реестр: https://www.nuget.org/)
- Pip (реестр: https://pypi.org/)
- Pub (реестр: https://pub.dev/packages/registry)
- RubyGems (реестр: https://rubygems.org/)
- Rust (реестр: https://crates.io/)
- Swift (реестр: N/A)
Если вы хотите предложить новую экосистему, которую нам стоит поддерживать, откройте проблему для обсуждения.
Если вы включите Dependabot alerts репозитории, вы автоматически получаете уведомление, когда новое GitHub-рассмотренное сообщение сообщает о уязвимости для пакета, от которого вы зависите. Дополнительные сведения см. в разделе Оповещения Dependabot.
Неосмотренные рекомендации по уязвимостям
Непроверенные уведомления публикуются автоматически в GitHub Advisory Database, прямо из ленты Национальной базы уязвимостей.
Dependabot Это не создаёт Dependabot alerts для непроверенных рекомендаций, так как такие рекомендации не проверяются на достоверность или выполнение.
Рекомендации по вредоносным программам
Предупреждения о вредоносном ПО связаны с уязвимостями, вызванными вредоносным ПО, и являются эксклюзивными для экосистемы NPM. Мы автоматически публикуем их в GitHub Advisory Database, напрямую из информации, предоставленной командой безопасности NPM.
Dependabot не генерирует оповещения при обнаружении вредоносного ПО, так как большинство уязвимостей не могут быть устранены пользователями. Вы можете просмотреть предупреждения о вредоносном ПО, найдя type:malware в GitHub Advisory Database.
Наши рекомендации по вредоносным программам в основном относятся к атакам на подстановку. Во время этой атаки злоумышленник публикует пакет в общедоступный реестр с тем же именем, что и зависимость, которую пользователи используют от стороннего или частного реестра, с надеждой на использование вредоносной версии. Dependabot Не просматривает конфигурации проекта, чтобы определить, приходят ли пакеты из частного реестра, поэтому мы не можем определить, используете ли вы вредоносную версию или невредоносную версию с тем же именем. Пользователи, имеющие соответствующие зависимости, не должны влиять на вредоносные программы.
Информация в советах по безопасности
В этом разделе вы можете найти более подробную информацию о конкретных атрибутах GitHub Advisory Databaseданных .
GHSA ID
Каждый совет по безопасности, независимо от его типа, имеет уникальный идентификатор, называемый идентификатором GHSA. Квалификатор GHSA-ID назначается, когда на любой из поддерживаемых источников создаётся GitHub или GitHub Advisory Database добавляется новое уведомление.
Синтаксис идентификаторов GHSA следует этому формату: GHSA-xxxx-xxxx-xxxx где:
x— буква или число из следующего набора.23456789cfghjmpqrvwxGHSAЗа пределами части имени:- Числа и буквы назначаются случайным образом.
- Все буквы являются строчными буквами.
Вы можете проверить идентификатор GHSA с помощью регулярного выражения.
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
Уровни CVSS
Поддерживается GitHub Advisory Database как CVSS версии 3.1, так и CVSS версии 4.0.
Каждая рекомендация по безопасности содержит информацию об уязвимости или вредоносной программе, которая может включать описание, серьезность, затронутый пакет, экосистему пакетов, затронутые версии и версии с исправлениями, влияние и дополнительную информацию, такую как ссылки, обходные решения и кредиты. Кроме того, рекомендации из списка Национальной базы данных уязвимостей содержат ссылку на запись CVE, где вы можете прочитать более подробную информацию об уязвимости, ее оценках CVSS и качественном уровне серьезности. Дополнительные сведения см. в национальной базе данных уязвимостей Национального института стандартов и технологий.
Уровень серьезности — один из четырех возможных уровней, определенных в системе оценки распространенных уязвимостей (CVSS), разделе 5.
- Низкий
- Средний или умеренный
- Высокий
- Критически важно
Используются уровни CVSS, описанные GitHub Advisory Database выше. Если GitHub получается CVE, используется GitHub Advisory Database версия CVSS, назначенная сопровождающим, которая может быть версией 3.1 или 4.0. Если CVE импортируется, он GitHub Advisory Database поддерживает CVSS версии 4.0, 3.1 и 3.0.
Вы также можете присоединить GitHub Security Lab для просмотра тем, связанных с безопасностью, и внести свой вклад в средства безопасности и проекты.
Оценки EPSS
Система оценки эксплойтов или EPSS — это система, разработанная глобальным форумом по реагированию на инциденты и командам безопасности (FIRST) для оценки вероятности эксплойтов уязвимостей. Модель создает оценку вероятности от 0 до 1 (от 0 до 100%), где выше оценка, тем больше вероятность того, что уязвимость будет использована. Дополнительные сведения о FIRST см. в статье https://www.first.org/.
Включает оценки EPSS от FIRST для рекомендаций, GitHub Advisory Database содержащих CVE с соответствующими данными EPSS. GitHub также отображается процентиль EPSS, который представляет собой долю всех отмеченных уязвимостей с одинаковым или более низким показателем EPSS.
Например, если у рекомендации была оценка EPSS, которая имела процент 90,534% на 95-м процентиле, согласно модели EPSS, это означает:
- Существует 90,534% вероятность использования этой уязвимости в дикой природе в ближайшие 30 дней.
- 95% от общих моделиированных уязвимостей считаются менее вероятными для использования в ближайшие 30 дней, чем эта уязвимость.
Дополнительные сведения о том, как интерпретировать эти данные, можно найти в руководстве пользователя FIRST EPSS. Эта информация помогает понять, как можно использовать процент и процентиль для интерпретации вероятности того, что уязвимость может быть использована в дикой природе в соответствии с моделью FIRST. Дополнительные сведения см. в руководстве пользователя FIRST EPSS на первом веб-сайте.
FIRST также предоставляет дополнительные сведения о распределении данных EPSS. Дополнительные сведения см . в документации по данным и статистике EPSS на первом веб-сайте.
Примечание.
GitHub поддерживает данные EPSS в актуальном состоянии с помощью ежедневной синхронизации. Хотя проценты оценки EPSS всегда будут полностью синхронизированы, процентилей оценки будут обновляться только при значительно разных изменениях.
В GitHub, мы не являемся авторами этих данных, а берём их из FIRST, что означает, что эти данные не подлежат редактированию в сообществах. Дополнительные сведения о вкладах сообщества см. в разделе Изменение рекомендаций по безопасности в базе данных рекомендаций по GitHub.
Вклад сообщества
Вклад **** сообщества — это запрос на вытягивание, отправленный в репозиторий github/advisory-database, который улучшает содержимое рекомендаций по глобальной безопасности. Когда вы делаете вклад в сообщество, вы можете редактировать или добавить любые детали, включая дополнительные затронутые экосистемы, уровень тяжести или описание того, кто пострадал. Команда GitHub Security Lab кураторов проверит поступленные материалы и публикует их в GitHub Advisory Database её случае, если они будут приняты.
Если мы принимаем и публикуем вклад сообщества, человеку, отправившему запрос на участие в сообществе, автоматически будет назначен тип «Аналитик». Для получения дополнительной информации см. Создание рекомендаций по безопасности репозитория.
Дополнительные материалы
- Оповещения Dependabot
- Определение программы CVE по "уязвимости"