О 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/)
- Erlang (реестр: https://hex.pm/)
- 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/)
- Swift (реестр: N/A)
Если вы хотите предложить новую экосистему, которую нам стоит поддерживать, откройте проблему для обсуждения.
Если вы включаете Dependabot alerts для репозиториев, вы автоматически уведомляете о том, что новые данные GitHub- проверены отчеты об уязвимости пакета, от которых вы зависите. Дополнительные сведения см. в разделе Сведения об оповещениях Dependabot.
Непроверенные рекомендации
Неосмотренные рекомендации — это уязвимости системы безопасности, которые мы автоматически публикуем в GitHub Advisory Database, непосредственно из веб-канала национальной базы данных уязвимостей.
Dependabot не создает Dependabot alerts для непроверенных рекомендаций, так как этот тип рекомендаций не проверяется на допустимость или полноту.
Рекомендации по вредоносным программам
Рекомендации по вредоносным программам относятся к уязвимостям, вызванным вредоносными программами, и являются помощниками по безопасности, которые GitHub публикуются автоматически в GitHub Advisory Database, непосредственно из информации, предоставленной командой безопасности npm. Рекомендации по вредоносным программам являются эксклюзивными для экосистемы npm. GitHub не редактирует или не принимает вклад сообщества в эти рекомендации.
Dependabot не создает оповещений при обнаружении вредоносных программ, так как большинство уязвимостей не могут быть разрешены нижестоящими пользователями. Вы можете просматривать рекомендации по вредоносным программам, выполнив поиск type:malware
в GitHub Advisory Database.
Наши рекомендации по вредоносным программам в основном относятся к атакам на подстановку. Во время этой атаки злоумышленник публикует пакет в общедоступный реестр с тем же именем, что и зависимость, которую пользователи используют от стороннего или частного реестра, с надеждой на использование вредоносной версии. Dependabot не просматривает конфигурации проекта, чтобы определить, приходят ли пакеты из частного реестра, поэтому мы не уверены, используете ли вы вредоносную версию или невредоносную версию. Пользователи, имеющие соответствующие зависимости, не должны влиять на вредоносные программы.
Сведения об информации в рекомендациях по безопасности
В этом разделе приведены более подробные сведения о помощниках по безопасности в GitHub Advisory Database, например:
- Идентификаторы рекомендаций и формат этих идентификаторов.
- Уровни CVSS, используемые для назначения уровней серьезности.
Сведения об идентификаторах GHSA
Каждый совет по безопасности, независимо от его типа, имеет уникальный идентификатор, называемый идентификатором GHSA. Квалификатор GHSA-ID
назначается при создании нового рекомендации по GitHub или добавлен в 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.1 и 3.0.
Вы также можете присоединить GitHub Security Lab для просмотра тем, связанных с безопасностью, и внести свой вклад в средства безопасности и проекты.
Дополнительные материалы
- "Сведения об оповещениях Dependabot"
- Определение программы CVE по "уязвимости"