Pour les auditeurs
Des preuves à tester, pas à croire sur parole.
- Vérifiez sans nousChaque enregistrement se vérifie hors ligne avec une clé publiée, sans compte Toevan.
- Voyez comment chaque fait a été obtenuRecalculé, rapporté, déclaré, consommé ou non capturé, sur chaque fait.
- Sachez ce qui n’est pas couvertChaque rapport liste les contrôles qui restent à la charge de l’organisation.
Trois façons de vérifier les preuves
Choisissez la voie qui correspond à votre rôle. La première s’exécute dans Toevan ; la troisième, sur votre propre machine.
Dans l’application de l’organisation
Tout auditeur invité par l’organisation
Un rôle Auditeur, aucun accès au dépôt
Accès en lecture seule à la liste des preuves, aux exports et aux rapports, avec Vérifier maintenant pour contrôler à nouveau le registre, les signatures et les éventuelles preuves de journal.
- Signature valide pour chaque enregistrement
- Inchangé depuis sa signature
- Heure consignée dans Rekor, si l’organisation y a adhéré
Regardez l’organisation l’exécuter
Tests usuels d’un rapport généré par le client
Un partage d’écran ou une visite
Vous choisissez les échantillons pendant la séance ; un ingénieur exécute les vérifications sous vos yeux.
- Vérification des enregistrements que vous avez échantillonnés
- Comptes de l’auteur et de l’approbateur pour chaque échantillon
- Le résultat du code pour un commit de votre choix
Exécutez-le vous-même
Spécialistes de l’audit informatique
git, openssl, le vérificateur Toevan (sur demande) et un accès en lecture temporaire ; cosign v2 à partir de v1.4.0
Rejouez la chaîne et vérifiez chaque enregistrement avec la clé publiée, hors ligne.
- Chaîne, signatures et preuves Rekor, hors ligne
- Têtes de branche de preuves comparées au rapport
- Indépendance établie à partir des identifiants de compte de chaque enregistrement
Comment chaque fait a été obtenu
Chaque fait d’un enregistrement et d’un rapport porte l’une de six étiquettes, pour que votre auditeur sache dans quelle mesure s’y fier.
- Recalculé
- Toevan l’a calculé lui-même à partir du code ou de l’historique git.
- Le refaire à partir des mêmes entrées et obtenir le même résultat.
- Rapporté + scellé
- GitHub l’a rapporté ; Toevan l’a capturé au moment de l’événement et signé.
- S’y fier dans la mesure où vous vous fiez à GitHub. Toute modification ultérieure est détectable.
- Déclaré + scellé
- L’organisation l’a déclaré, par exemple un changement de ce qui est vérifié ; Toevan a signé la déclaration et son historique.
- Voir qui a déclaré quoi, quand, et chaque modification ultérieure.
- Enregistrement Toevan, non scellé
- Conservé dans la base de données de Toevan mais non scellé dans le registre, comme une dérogation aujourd’hui. Aucune signature ne le protège.
- Le considérer comme une déclaration de Toevan et demander à l’organisation l’approbation qui la fonde.
- Consommé
- Repris de l’enregistrement signé d’un autre système, comme une provenance de build, et relié par commit ou empreinte. Prévu.
- Vérifier l’enregistrement d’origine de façon indépendante.
- Non capturé
- Aucune source fiable n’était disponible. Toevan ne le déduit pas.
- L’obtenir auprès de l’organisation par d’autres moyens.
Ce que vous recevez
Le SHA-256 de chaque fichier est indiqué, pour que vous puissiez confirmer ce qui vous a été remis.
- Rapport de preuves de changementPDF
sha256:3f9a…c21e - EnregistrementsCSV · changements fusionnés, changements de contrôles, échantillons
sha256:[hachage du csv] - Clé publique de Toevantoevan.pub · keyid 8c1f…e0a2
sha256:[hachage de la clé] - Commande Toevantoevan audit verify · fournie par Toevan sur demande
sha256:[hachage du binaire]
Le SHA-256 de chaque fichier est indiqué pour que vous puissiez confirmer ce que vous avez reçu. Les clés publiques sont aussi publiées sur api.toevan.com, indépendamment du rapport.
Les questions des auditeurs
Si un client vous remet des preuves Toevan, ces questions viennent généralement en premier.
Les enregistrements
4 questionsQu’est-ce qu’un enregistrement de preuve Toevan ?
Une déclaration signée sur un événement. Aujourd’hui, c’est un contrôle de code sur une pull request ou sur main. À partir de v1.4.0, c’est aussi un changement fusionné, une règle de revue modifiée ou un push direct. Un enregistrement de changement nomme la pull request, qui l’a rédigée, approuvée et fusionnée, les checks et règles en vigueur et les résultats sur le code, chaque fait étant étiqueté selon la façon dont il a été obtenu. Les personnes apparaissent sous forme d’empreintes de leurs comptes GitHub.
Techniquement, c’est une déclaration in-toto avec le prédicat SLSA verification summary, scellée dans une enveloppe DSSE et signée avec ECDSA P-256 ; les prédicats des autres types d’enregistrement arrivent avec v1.4.0. L’ancrage dans le journal de transparence public Rekor de Sigstore est intégré, sur adhésion de chaque organisation ; seuls les hachages d’enregistrements sont publiés. Les organisations Enterprise peuvent aussi s’ancrer dans leur propre Rekor.
Quand un enregistrement est-il écrit, et par qui ?
Au moment de l’événement : à chaque contrôle de code aujourd’hui, et à partir de v1.4.0 à chaque fusion de pull request, à chaque modification d’une règle de revue ou à chaque push qui contourne la revue. Les enregistrements ne sont pas reconstitués après coup à partir de logs ou de tickets, donc un trou entre deux instantanés ne passe pas inaperçu.
Que signifient les étiquettes de chaque fait ?
Les faits recalculés ont été calculés par Toevan à partir du code ou de l’historique git, et vous pouvez les refaire. Les faits rapportés + scellés viennent de GitHub et ont été signés au moment de l’événement : vous vous y fiez dans la mesure où vous vous fiez à GitHub. Les faits déclarés + scellés, comme un changement de ce qui est vérifié, ont été déclarés par l’organisation avec leur historique. Les dérogations sont des enregistrements de Toevan non scellés dans le registre aujourd’hui, et le rapport le dit. Les faits consommés viendront de l’enregistrement signé d’un autre système, comme la provenance du build ; c’est prévu. Non capturé signifie qu’aucune source fiable n’existait, et Toevan ne le déduit pas.
Le résultat sur le code est-il déterministe ?
Oui. Les règles sont évaluées sur le graphe de code du dépôt, sans modèle d’apprentissage automatique dans la décision. Le même commit, la même version du moteur et la même version du jeu de règles donnent toujours le même résultat : vous pouvez rejouer une évaluation échantillonnée et attendre un résultat identique.
Vérification
4 questionsQuels outils vérifient les preuves ?
Dans l’application, Vérifier maintenant revérifie la chaîne de hachage, chaque signature et les preuves stockées. Cela s’exécute dans Toevan.
Avec des outils courants et sans compte Toevan, openssl vérifie un enregistrement face à la liste publique de toutes les clés avec lesquelles Toevan a signé, actuelles et retirées : la signature, et que le fichier d’enregistrement est celui que nomme la déclaration. À partir de v1.4.0, les rapports et la branche de preuves affichent les commandes, et Toevan documente une ligne cosign v2 qui vérifie la signature et le type de déclaration, pas le lien avec l’enregistrement.
Avec le vérificateur Toevan, disponible sur demande, une commande rejoue toute la chaîne et vérifie chaque signature et chaque preuve Rekor hors ligne.
Avec git, vous lisez les preuves sur une branche toevan/evidence chaînée par hachage et en ajout seul, dans le propre dépôt du client, et chaque rapport porte une empreinte de contenu, le SHA-256 du manifeste joint au PDF. À partir de v1.4.0, vous pouvez aussi recompter la population des changements avec git et le CSV du rapport.
L’ancrage dans le journal de transparence public Rekor de Sigstore est intégré, sur adhésion de chaque organisation ; seuls les hachages d’enregistrements sont publiés. Les verdicts signés peuvent aussi être poussés dans les flux Kosli du client.
Comment tester l’exhaustivité, pas seulement l’exactitude ?
À partir de v1.4.0, le rapport de preuves de changement liste chaque commit arrivé sur la branche par défaut pendant la période, directement depuis l’historique git, et rapproche chacun de l’enregistrement de la pull request fusionnée ou du push qui l’y a amené. Un commit qu’aucun enregistrement n’explique est signalé avec sa raison, jamais déduit. Vous pouvez refaire vous-même la population avec git à partir du CSV de la population. Chaque déploiement que GitHub marque comme production est relié au commit qu’il a livré. Les branches de production que l’organisation désigne, comme une branche de release, recevront la même population avec v1.4.1, qui est prévue.
Comment sont traités les correctifs copiés vers les branches de release ?
Prévu, et hors de v1.4.0. Un correctif copié reçoit un nouvel identifiant de commit, donc sa revue ne se reporte pas automatiquement. Toevan le rapprochera de l’original revu par son contenu avec git patch-id, et considérera qu’une copie dont le contenu a changé exige sa propre revue.
Que révèle le journal de transparence public ?
L’ancrage dans le journal de transparence public Rekor de Sigstore est intégré, sur adhésion de chaque organisation ; seuls les hachages d’enregistrements sont publiés. Une entrée montre seulement qu’un enregistrement de hachage donné existait à un moment donné : ni code, ni noms de fichiers, ni constats. Les organisations Enterprise peuvent aussi s’ancrer dans leur propre Rekor.
Périmètre et conservation
4 questionsQue ne signifie pas un rapport propre ?
Il ne signifie pas que le client respecte le référentiel, et Toevan n’exprime aucun avis sur la conception ou l’efficacité de fonctionnement des contrôles. Les revues d’accès, la surveillance en production, la réponse aux incidents, le risque lié aux tiers, la sécurité physique et les changements faits hors gestion de versions relèvent de vos procédures habituelles. Chaque rapport les liste.
Quels systèmes de gestion de versions sont pris en charge ?
GitHub aujourd’hui. GitLab et Bitbucket sont sur la feuille de route. Les changements faits hors gestion de versions, comme des modifications directes de la base de données ou de la console, sont hors du périmètre des preuves.
Où vivent les preuves, et pendant combien de temps ?
Dans le stockage en ajout seul de Toevan, avec une conservation d’au moins trois ans, et en copie sur une branche du dépôt du client. Les rapports s’exportent en PDF et en CSV par référentiel, période et dépôt.
Et si le client cesse d’utiliser Toevan ?
La copie dans le dépôt du client reste en place. La chaîne se rejoue avec la commande toevan et, à partir de v1.4.0, chaque enregistrement signé se vérifie aussi avec openssl seul et la clé publiée, avec les commandes de la branche de preuves. La vérification des enregistrements passés ne dépend pas de la poursuite du service par Toevan.
Parcourez avec nous les preuves d’un client.
Si vous auditez un client de Toevan, nous vous guiderons dans la vérification lors d’un appel, avec vos propres outils.