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.
Liste des correspondances¶
La liste des correspondances est accessible depuis le menu « Configuration > Correspondances » :
La liste peut être filtrée par clause ou nom de mesure, par référentiel source et cible, par type de correspondance et par couverture. Un sablier dans la colonne « Validation » signale une relation qui n'a pas encore été validée. Pour chaque relation, les boutons permettent d'en afficher le détail, de la modifier ou de la supprimer.
Le bouton « Matrice de correspondances » ouvre la matrice, « Exporter » exporte la liste filtrée au format XLSX et « Nouveau » crée une relation.
Matrice de correspondances¶
La matrice compare un référentiel source à un référentiel cible, éventuellement filtrés par type de correspondance et par couverture. L'option « Afficher uniquement les contrôles source non mappés » ne liste que les mesures source qui n'ont aucune 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é.
Le bouton « Inverser le sens » échange les référentiels source et cible, et « Exporter » exporte la matrice au format XLSX.
Détail d'une relation¶
Cet écran affiche une relation : mesures source et cible, type de correspondance, couverture, confiance, justification, référence et URL de la source, et état de validation.
Modifier une relation¶
Cet écran, réservé aux administrateurs, permet de modifier tous les champs d'une relation. Cocher « Validation » valide la relation : l'utilisateur et la date de validation sont enregistrés.
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.



