
Инструмент для определения наилучших механизмов приватного раскрытия информации об уязвимости безопасности для пакета/проекта.
Disclosure Check — это инструмент для определения механизмов раскрытия уязвимостей в проектах с открытым исходным кодом.

Warning Этот проект всё ещё находится в разработке и может работать некорректно для многих проектов. Если вы столкнулись с ошибкой, пожалуйста, создайте issue, и мы постараемся её решить. Pull requests приветствуются!
Большинство проектов с открытым исходным кодом используют публичный трекер задач для входящих запросов, отчётов об ошибках и т. д. Поскольку он не подходит для сообщения о новых уязвимостях, у многих проектов есть другие механизмы для отправки пользователями конфиденциальных отчётов.
К сожалению, не существует широко используемого машиночитаемого способа узнать об этом для конкретного проекта. Вместо этого человеку, возможно, придётся искать файл SECURITY.md (и читать его), просматривать README.md, проверять, доступен ли механизм приватного сообщения об уязвимостях через репозиторий исходного кода, проверять, связан ли адрес электронной почты с опубликованным пакетом, и т. д.
Это отнимает много времени для одного проекта и тем более при работе в масштабе.
Цель Disclosure Check — автоматизировать то, что делал бы человек, пытаясь выяснить наилучший способ сообщить об уязвимости в проекте. Его использование ортогонально цели более стандартизированных механизмов отчётности; если и когда последнее станет реальностью, этот инструмент больше не будет полезен.
Disclosure Check доступен через PyPI и Docker Hub. Если вы устанавливаете через PyPI, вам также потребуется установить OSS Gadget, который нужен для загрузки содержимого пакета для анализа. Убедитесь, что oss-download находится в вашем PATH.
Вам также понадобится токен GitHub, чтобы Disclosure Check мог использовать GitHub API для таких задач, как поиск по коду. Токен не требует каких-либо особых разрешений, и инструмент будет работать без него, хотя с ограниченной функциональностью.
Актуальные инструкции по установке смотрите на странице OSS Gadget.
Затем вы можете установить Disclosure Check из PyPI:
pip install disclosurecheck
Всегда устанавливайте такие пакеты в виртуальном окружении, поскольку установка включает другие зависимости.
Вы можете загрузить последний образ Docker из GitHub Container Registry:
docker pull ghcr.io/scovetta/disclosurecheck:latest
Чтобы запустить Disclosure Check:
disclosurecheck --help
usage: OpenSSF Vulnerability Disclosure Mechanism Detector [-h] [--verbose] [--json] package_url
positional arguments:
package_url Package URL for the project/package you want to analyze.
options:
-h, --help show this help message and exit
--verbose Show extra logging.
--json Output as JSON.
Или, если вы используете образ Docker:
docker run -e GITHUB_TOKEN=<YOUR GITHUB TOKEN> --rm -t ghcr.io/scovetta/disclosurecheck:latest pkg:npm/left-pad
Disclosure Check работает, выполняя поиск контактной информации (email, URL и т. д.) в следующих местах:
Инструмент пытается оценить их по приоритету (где 0 — наивысший приоритет, а 100 — наинизший).