
Сканер на основе CodeQL, который инвентаризирует вызовы криптографических функций в репозиториях и организациях GitHub, формируя криптографическую спецификацию материалов (CBOM) в формате SARIF.
Найдите криптографию, скрытую в вашем коде, прежде чем её найдут квантовые компьютеры.
cryptoptic использует CodeQL и GitHub Actions для сканирования репозитория или целой организации GitHub и формирует инвентаризацию каждой используемой криптографической функции, библиотеки, из которой она происходит, и места её вызова.
Ожидаемое появление квантовых вычислений, значимых для криптографии, означает, что многие широко используемые сегодня алгоритмы больше не смогут обеспечивать защиту данных. Стратегия «собирай сейчас, расшифровывай потом» делает это риском уже сегодня, а не в будущем.
Прежде чем организация сможет перейти на постквантовые алгоритмы, ей необходимо понять, где криптография используется во всей её кодовой базе. cryptoptic помогает создать такой Cryptographic Bill of Materials (CBOM), чтобы уязвимые алгоритмы можно было заменить на квантово-безопасные альтернативы или управлять ими прозрачно.
cryptoptic был создан и используется внутри Nationwide Building Society. Он опубликован здесь для широкого сообщества.
| Язык | Статус | Значение TARGET_LANG |
|---|---|---|
| Python | Поддерживается | python |
| JavaScript | Поддерживается | javascript |
| .NET | Поддерживается | csharp |
| Java | Запланировано |
Клонируйте этот репозиторий и откройте его в редакторе на ваш выбор.
Отредактируйте .github/workflows/org-codeql-sarif-run.yml и задайте необходимые значения рабочего процесса.
| Настройка | Описание |
|---|---|
ORG | Организация для сканирования. Для личного репозитория используйте ваше имя пользователя GitHub. |
REPO | Репозиторий для сканирования. Оставьте пустой строкой, чтобы просканировать каждый репозиторий в организации. |
TARGET_LANG | Язык для сканирования; допустимые значения см. в разделе Поддерживаемые языки. |
Зафиксируйте и отправьте ваши изменения.
Перейдите на вкладку Actions в GitHub и выберите CodeQL org run (crypto inventory) на левой боковой панели.
Нажмите Run workflow, выберите ветку, для которой хотите выполнить запуск, и нажмите зелёную кнопку Run workflow.
Сгенерированные файлы публикуются как артефакты в запуске рабочего процесса:
Для работы над самим cryptoptic вам потребуется:
Мы приветствуем вклад, включая код, запросы, документацию, тесты и сообщения об ошибках. Перед участием, пожалуйста, прочитайте Кодекс поведения; он применяется ко всем пространствам проекта.
См. GOVERNANCE.md о том, как принимаются решения, и MAINTAINERS.md о том, с кем связаться.
Пожалуйста, не сообщайте об уязвимостях безопасности через публичные GitHub issues. См. SECURITY.md о том, как сообщить приватно и чего ожидать после этого.
Этот проект лицензирован под Apache License, Version 2.0. Копия лицензии должна быть включена в репозиторий в файле с именем LICENCE или LICENSE. Пользователям следует ознакомиться с условиями лицензии перед использованием, изменением или распространением проекта.
При распространении проекта Apache License 2.0 требует сохранения применимых уведомлений об авторских правах, патентах, товарных знаках и атрибуции, включения копии лицензии, уведомлений для изменённых файлов, где это применимо, и надлежащей обработки любого файла NOTICE, включённого в проект.
Если репозиторий включает файл NOTICE, пользователи и распространители должны сохранять уведомления об атрибуции, содержащиеся в этом файле, в соответствии с Apache License 2.0. Файл NOTICE должен поддерживаться в актуальном состоянии и отражать уведомления, применимые к содержимому дистрибутива.
Apache License 2.0 не предоставляет разрешения на использование названий, логотипов, товарных знаков или брендинга Nationwide. Любое использование брендинга Nationwide или брендинга, специфичного для проекта, должно соответствовать отдельной политике проекта в отношении товарных знаков.
Как описано в Apache License 2.0, проект предоставляется на условиях «КАК ЕСТЬ», без гарантий любого рода. Пользователи несут ответственность за определение пригодности проекта для их использования и за проверку любых выходных данных перед тем, как полагаться на них.