Correspondances entre référentiels¶
Le module /crosswalk gère des relations documentaires génériques entre deux contrôles. Il ne contient aucune règle propre à ISO, NIS2 ou à un autre référentiel.
Modèle de données¶
La table frameworks complète les codes déjà présents dans Domain.framework avec des métadonnées. Elle ne remplace pas ce champ et ne modifie pas sa sémantique. La migration initialise une ligne de métadonnées pour chaque code existant. La sauvegarde ultérieure d'un domaine initialise également les métadonnées minimales de son code.
Une ligne de control_mappings est enregistrée une seule fois de source_control_id vers target_control_id. L'application lit aussi cette relation dans le sens inverse. Dans ce cas, covers devient covered_by, et réciproquement. Le sens inverse de supports est affiché comme supported_by (« bénéficie du soutien de ») sans ajouter cette valeur aux types persistés. Aucun enregistrement miroir n'est créé.
Les types autorisés sont equivalent, covers, covered_by, partial, supports et related. Les couvertures autorisées sont full, high, medium, low et none.
Droits et écrans¶
Tous les utilisateurs authentifiés peuvent consulter la liste, le détail, la matrice et les exports. Seuls les administrateurs (role=1) peuvent créer, modifier, valider ou supprimer une relation.
La matrice présente des métriques documentaires : nombre de contrôles source, nombre de contrôles ayant une relation, nombre de contrôles sans relation et nombre de relations. Ces valeurs ne sont jamais des scores de conformité.
Import XLSX¶
Commande :
php artisan deming:import-mappings fichier.xlsx
Options :
--dry-runvalide tout le fichier sans écriture ;--updateautorise la mise à jour d'une paire source/cible existante.
Les colonnes obligatoires sont :
source_framework, source_clause, target_framework, target_clause,
mapping_type, coverage, rationale, source_reference, source_url
La colonne confidence est facultative (nombre de 0 à 100). Elle est incluse dans les exports afin de permettre un aller-retour sans perte. Si la colonne est absente pendant --update, la valeur existante est conservée ; si elle est présente avec une cellule vide, elle est effacée. Lorsqu'une relation supports est exportée depuis une vue inversée, sa source, sa cible et son type persistés sont conservés : exporter une ligne directionnelle ne doit jamais transformer « A contribue à B » en « B contribue à A ».
Toutes les lignes sont validées avant la première écriture. Les écritures sont ensuite exécutées dans une transaction unique. Une erreur empêche donc tout import partiel. Une relation modifiée par import doit être validée à nouveau.
Premier jeu ReCyF 2.5 vers ISO 2700X¶
storage/app/crosswalks/ReCyF-2.5-ISO27001-2022.mappings.xlsx contient 281 relations issues du comparateur officiel ANSSI. Elles couvrent 118 contrôles ReCyF et 66 contrôles ISO présents dans ISO27001-2022.fr.xlsx.
Ce classeur contient uniquement les relations : il ne crée pas les contrôles. Avant l'import, l'instance doit donc déjà contenir les contrôles source sous le code exact Domain.framework = NIS2-ReCyF-2.5-FR et les contrôles cibles sous Domain.framework = 27001:2022. C'est notamment le cas de l'instance ReCyF de 152 contrôles décrite pour ce lot. Toujours exécuter --dry-run sur l'instance cible avant l'import normal ; une clause absente ou ambiguë bloque le fichier entier.
Le jeu est volontairement conservateur :
- seules les références publiées par l'ANSSI et retrouvées exactement dans le classeur ISO de Deming sont présentes ;
- chaque relation est de type
related, car une correspondance documentaire ne permet pas de conclure à une équivalence ou à une implication de conformité ; - les niveaux ANSSI
ÉLEVÉE,MOYENNEetFAIBLE/NULLEsont convertis respectivement enhigh,mediumetlow, tandis que le libellé original reste dans la justification ; - l'observation ANSSI, la référence ISO d'origine, la clause Deming normalisée et l'URL de la source sont conservées ;
- toutes les relations importées restent non validées jusqu'à une revue humaine dans Deming.
Sources : comparateur ANSSI et présentation du ReCyF et du comparateur.