
Scanner baseado em CodeQL que inventaria chamadas de funções criptográficas em repositórios e organizações do GitHub, produzindo um Cryptographic Bill of Materials (CBOM) no formato SARIF.
Encontre a criptografia escondida no seu código antes que os computadores quânticos a encontrem por você.
cryptoptic usa CodeQL e GitHub Actions para escanear um repositório ou uma organização inteira do GitHub e produzir um inventário de cada função criptográfica em uso, a biblioteca de onde ela vem e onde ela é chamada.
A chegada prevista da computação quântica criptograficamente relevante significa que muitos algoritmos amplamente utilizados hoje não manterão mais os dados seguros. O "colher agora, descriptografar depois" torna isso um risco presente, não futuro.
Antes que uma organização possa migrar para algoritmos pós-quânticos, ela precisa entender onde a criptografia é usada em toda a sua base de código. O cryptoptic ajuda a criar essa Lista de Materiais Criptográficos (CBOM), para que algoritmos vulneráveis possam ser substituídos por alternativas seguras contra quantum ou gerenciados de forma transparente.
O cryptoptic foi criado e é usado internamente na Nationwide Building Society. Ele é disponibilizado aqui para a comunidade em geral.
| Linguagem | Status | Valor de TARGET_LANG |
|---|---|---|
| Python | Suportada | python |
| JavaScript | Suportada | javascript |
| .NET | Suportada | csharp |
| Java | Planejada |
Clone este repositório e abra-o em um editor de sua escolha.
Edite .github/workflows/org-codeql-sarif-run.yml e defina os valores necessários do workflow.
| Configuração | Descrição |
|---|---|
ORG | A organização a escanear. Para um repositório pessoal, use seu nome de usuário do GitHub. |
REPO | O repositório a escanear. Deixe como string vazia para escanear todos os repositórios da organização. |
TARGET_LANG | A linguagem a escanear; consulte Linguagens suportadas para valores válidos. |
Faça commit e push das suas alterações.
Vá para a aba Actions no GitHub e selecione CodeQL org run (crypto inventory) na barra lateral esquerda.
Clique em Run workflow, escolha o branch no qual deseja executar e clique no botão verde Run workflow.
Os arquivos gerados são publicados como artefatos na execução do workflow:
Para trabalhar no próprio cryptoptic, você precisará de:
Contribuições são bem-vindas, incluindo código, consultas, documentação, testes e relatórios de bugs. Leia o Código de Conduta antes de participar; ele se aplica a todos os espaços do projeto.
Consulte GOVERNANCE.md para saber como as decisões são tomadas e MAINTAINERS.md para saber com quem falar.
Por favor, não relate vulnerabilidades de segurança por meio de issues públicas do GitHub. Consulte SECURITY.md para saber como relatar de forma privada e o que esperar depois de fazê-lo.
Este projeto é licenciado sob a Apache License, Version 2.0. Uma cópia da licença deve ser incluída no repositório em um arquivo chamado LICENCE ou LICENSE. Os usuários devem revisar os termos da licença antes de usar, modificar ou distribuir o projeto.
Quando o projeto é redistribuído, a Apache License 2.0 exige a preservação dos avisos aplicáveis de direitos autorais, patentes, marcas registradas e atribuição, a inclusão de uma cópia da licença, avisos para arquivos modificados quando aplicável e o tratamento adequado de qualquer arquivo NOTICE incluído com o projeto.
Se o repositório incluir um arquivo NOTICE, usuários e redistribuidores devem preservar os avisos de atribuição contidos nesse arquivo de acordo com a Apache License 2.0. O arquivo NOTICE deve ser mantido preciso e deve refletir os avisos aplicáveis ao conteúdo da distribuição.
A Apache License 2.0 não concede permissão para usar os nomes, logotipos, marcas registradas ou branding da Nationwide. Qualquer uso do branding da Nationwide ou do branding específico do projeto deve estar em conformidade com a política de marcas registradas separada do projeto.
Conforme descrito na Apache License 2.0, o projeto é fornecido "COMO ESTÁ", sem garantias de qualquer tipo. Os usuários são responsáveis por determinar se o projeto é apropriado para seu uso e por validar quaisquer resultados antes de confiar neles.