О GitHub Advisory Database
Мы добавляем советы в 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.
Советы по безопасности публикуются как JSON-файлы в формате уязвимости с открытым исходным кодом (OSV). Дополнительные сведения о формате OSV см. в разделе "Формат уязвимостей с открытым исходным кодом".
Сведения о типах рекомендаций по безопасности
Каждая из рекомендаций в GitHub Advisory Database предназначена для уязвимости в проектах с открытым кодом.
Уязвимость — это недостаток в коде проекта, который может привести к нарушению конфиденциальности, целостности или доступности проекта или других проектов, использующих его код. Уязвимости зависят от типа, серьезности и метода атаки. Уязвимости в коде обычно создаются случайно и устраняются вскоре после обнаружения. Необходимо обновить код, чтобы использовать исправленную версию зависимости, как только она станет доступной.
Рекомендации, проверенные в GitHub
GitHub- проверенные рекомендации — это уязвимости системы безопасности, сопоставленные с пакетами в экосистемах, которые поддерживаются. Мы внимательно проверяем все рекомендации и следим, чтобы они содержали полное описание, а также информацию об экосистеме и пакете.
Как правило, мы называем поддерживаемые экосистемы по имени реестра пакетов соответствующего языка программирования программного обеспечения. Мы проверяем рекомендации, если они предназначены для уязвимости в пакете, который поступает из поддерживаемого реестра.
- Composer (реестр: https://packagist.org/)
- Go (реестр: https://pkg.go.dev/)
- GitHub Actions (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/)
Если вы хотите предложить новую экосистему, которую нам стоит поддерживать, откройте проблему для обсуждения.
Если вы включаете Dependabot alerts для репозиториев, вы автоматически уведомляете о том, что новые данные GitHub- проверены отчеты об уязвимости пакета, от которых вы зависите. Дополнительные сведения см. в разделе Сведения об оповещениях Dependabot.
Непроверенные рекомендации
Неосмотренные рекомендации — это уязвимости системы безопасности, которые мы автоматически публикуем в GitHub Advisory Database, непосредственно из веб-канала национальной базы данных уязвимостей.
Dependabot не создает Dependabot alerts для непроверенных рекомендаций, так как этот тип рекомендаций не проверяется на допустимость или полноту.
Сведения об информации в рекомендациях по безопасности
В этом разделе приведены более подробные сведения о помощниках по безопасности в GitHub Advisory Database, например:
- Идентификаторы рекомендаций и формат этих идентификаторов.
- Уровни CVSS, используемые для назначения уровней серьезности.
Сведения об идентификаторах GHSA
Каждый совет по безопасности, независимо от его типа, имеет уникальный идентификатор, называемый идентификатором GHSA. Квалификатор GHSA-ID
назначается при создании нового рекомендации по GitHub.com или добавлен в GitHub Advisory Database из любого поддерживаемого источника.
Синтаксис идентификаторов GHSA следует этому формату: GHSA-xxxx-xxxx-xxxx
где:
x
— буква или число из следующего набора.23456789cfghjmpqrvwx
GHSA
За пределами части имени:- Числа и буквы назначаются случайным образом.
- Все буквы являются строчными буквами.
Вы можете проверить идентификатор GHSA с помощью регулярного выражения.
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
Сведения о уровнях CVSS
Каждая рекомендация по безопасности содержит информацию об уязвимости которая может включать описание, серьезность, затронутый пакет, экосистему пакетов, затронутые версии и версии с исправлениями, влияние и дополнительную информацию, такую как ссылки, обходные решения и кредиты. Кроме того, рекомендации из списка Национальной базы данных уязвимостей содержат ссылку на запись CVE, где вы можете прочитать более подробную информацию об уязвимости, ее оценках CVSS и качественном уровне серьезности. Дополнительные сведения см. в Национальной базе данных уязвимостей Национального института стандартов и технологий.
Уровень серьезности — это один из четырех возможных уровней, определенных в Общей системе оценки уязвимостей (CVSS), раздел 5.
- Низкая
- Средний или умеренный
- Высокая
- Критически важно
GitHub Advisory Database использует уровни CVSS, описанные выше. Если GitHub получает CVE, GitHub Advisory Database использует CVSS версии 3.1. Если CVE импортирован, GitHub Advisory Database поддерживает обе версии CVSS 3.0 и 3.1.
Вы также можете присоединить GitHub Security Lab для просмотра тем, связанных с безопасностью, и внести свой вклад в средства безопасности и проекты.
Дополнительные материалы
- "Сведения об оповещениях Dependabot"
- Определение программы CVE по "уязвимости"