Vérifier les exports d'audit avec keenauth audit verify

keenauth audit verify vérifie un export d'audit de gestion sur votre propre machine. Il ne contacte pas KeenAuth et n'a besoin ni de clé d'API ni de session keenauth login. Vous n'avez donc pas à faire confiance à la plateforme pour faire confiance à l'export.

Ce que cela prouve

La commande prend le bundle d'export que vous avez téléchargé (un fichier tar contenant records.ndjson.gz, manifest.json et manifest.jws) ainsi que le audit-jwks.json régional. Elle effectue ensuite les opérations suivantes :

  1. vérifie la signature de manifest.jws avec la clé de point de contrôle d'audit, et vérifie que manifest.json en est la charge utile ;
  2. vérifie la taille et le SHA-256 de records.ndjson.gz par rapport au manifeste ;
  3. recalcule le hachage de chaque enregistrement, et vérifie que les numéros de séquence sont consécutifs et que chaque enregistrement pointe vers le hachage du précédent ;
  4. reconstruit la feuille de chaque heure et suit sa preuve d'inclusion (RFC 9162) jusqu'à la racine du point de contrôle horaire signé.

Elle prouve donc que les enregistrements du bundle n'ont pas été modifiés, supprimés ni réordonnés. Elle ne prouve pas que vos filtres ont été appliqués correctement. La feuille contient l'identifiant de l'environnement : une preuve pour un autre environnement ne vaut donc pas pour vos enregistrements.

Utilisation

keenauth audit verify --bundle audit-export.tar --jwks audit-jwks.json --environment-id 0192b6f0-7c1e-7a55-8f3d-2a6f0e9d4b11
Option Description
--bundle Chemin du bundle d'export téléchargé (obligatoire).
--jwks Chemin du audit-jwks.json régional (obligatoire).
--environment-id Identifiant d'environnement (UUID) auquel le bundle doit appartenir. Recommandé : sans lui, la commande affiche un avertissement et ne vérifie pas l'environnement.
--output, -o table, json ou yaml. Sans cette option, la CLI affiche un tableau dans un terminal et du JSON sinon.

En cas de réussite, la commande affiche un résumé (verified, export_id, environment_id, cell, stream, from, to, record_count, line_count, windows, key_id, include_ip) et se termine avec le code 0. record_count compte les enregistrements qui correspondent à votre filtre ; line_count compte aussi les lignes de substitution pour les enregistrements hors filtre.

Si une vérification échoue, la commande n'affiche rien sur la sortie standard, écrit audit verification failed (<kind>) sur la sortie d'erreur et se termine avec le code 1. Le type d'erreur est signature, manifest, chain, proof ou format. Un fichier illisible ou une option manquante entraîne la sortie avec le code 2.

Consultez l'API d'export d'audit pour savoir comment créer et télécharger un export.