soc2-cockpit/compliance/soc2/registry/soc2-registry.json

787 lines
25 KiB
JSON
Raw Normal View History

2026-04-17 10:17:56 -04:00
{
"schemaVersion": "1.0.0",
"appContext": {
"orgName": "Chezlepro Inc.",
"programName": "SOC 2 Type II Operational Cockpit",
"observationWindow": {
"start": "2026-01-01",
"end": "2026-06-30",
"targetReadiness": 85
}
},
"evidence": [
{
"id": "ev-001",
"title": "Politique de sécurité de linformation v1.4",
"category": "Policy",
"pillar": "security",
"owner": "Direction",
"freshness": "Valide",
"updatedAt": "2026-04-09",
"auditorReady": true,
"visibility": "auditor",
"source": "Wiki / Gouvernance",
"tags": [
"policy",
"security",
"governance"
],
"linkedMilestones": [
"sec-governance"
],
"summary": "Politique cadre de sécurité approuvée et versionnée."
},
{
"id": "ev-002",
"title": "Export Keycloak MFA et rôles administrateurs",
"category": "Access",
"pillar": "security",
"owner": "Ops",
"freshness": "À revoir",
"updatedAt": "2026-03-29",
"auditorReady": false,
"visibility": "internal",
"source": "Keycloak / Export CSV",
"tags": [
"iam",
"mfa",
"admin"
],
"linkedMilestones": [
"sec-iam",
"con-access"
],
"summary": "État courant des administrateurs, rôles et MFA; manque la revue signée."
},
{
"id": "ev-003",
"title": "Journal des changements Forgejo / Pull Requests",
"category": "Change",
"pillar": "security",
"owner": "Ops",
"freshness": "Valide",
"updatedAt": "2026-04-15",
"auditorReady": true,
"visibility": "auditor",
"source": "Forgejo / Repositories",
"tags": [
"change",
"git",
"approval"
],
"linkedMilestones": [
"sec-change",
"pi-inputs"
],
"summary": "Historique des changements, approbations et validations post-déploiement."
},
{
"id": "ev-004",
"title": "Rapport Icinga disponibilité des services",
"category": "Monitoring",
"pillar": "availability",
"owner": "Ops",
"freshness": "Valide",
"updatedAt": "2026-04-16",
"auditorReady": true,
"visibility": "auditor",
"source": "Icinga2 / Monitoring",
"tags": [
"availability",
"monitoring",
"uptime"
],
"linkedMilestones": [
"ava-monitoring",
"ava-incidents",
"sec-logging"
],
"summary": "Disponibilité, incidents et tendances de capacité sur la fenêtre dobservation."
},
{
"id": "ev-005",
"title": "Procédure de sauvegarde et test de restauration",
"category": "Backup",
"pillar": "availability",
"owner": "Ops",
"freshness": "Valide",
"updatedAt": "2026-04-12",
"auditorReady": true,
"visibility": "auditor",
"source": "Runbook / Restore test",
"tags": [
"backup",
"restore",
"dr"
],
"linkedMilestones": [
"ava-backup",
"ava-resilience"
],
"summary": "Procédure documentée et test de restauration horodaté."
},
{
"id": "ev-006",
"title": "Cartographie des flux critiques de traitement",
"category": "Process",
"pillar": "processing-integrity",
"owner": "Architecture",
"freshness": "Brouillon",
"updatedAt": "2026-04-04",
"auditorReady": false,
"visibility": "internal",
"source": "Architecture / Flux",
"tags": [
"flows",
"processing",
"integrity"
],
"linkedMilestones": [
"pi-flows",
"pi-audit"
],
"summary": "Cartographie initiale des flux critiques; consolidation encore en cours."
},
{
"id": "ev-007",
"title": "Registre de classification des données",
"category": "Data",
"pillar": "confidentiality",
"owner": "Architecture",
"freshness": "À revoir",
"updatedAt": "2026-03-18",
"auditorReady": false,
"visibility": "internal",
"source": "Registre data",
"tags": [
"classification",
"data",
"confidentiality"
],
"linkedMilestones": [
"con-classification",
"con-lifecycle"
],
"summary": "Inventaire de classification existant mais incomplet pour certaines charges hébergées."
},
{
"id": "ev-008",
"title": "Registre des renseignements personnels",
"category": "Privacy",
"pillar": "privacy",
"owner": "Direction",
"freshness": "Brouillon",
"updatedAt": "2026-04-02",
"auditorReady": false,
"visibility": "internal",
"source": "Registre privacy",
"tags": [
"privacy",
"pii",
"register"
],
"linkedMilestones": [
"pri-mapping",
"pri-rules",
"pri-retention"
],
"summary": "Première version du registre des renseignements personnels et de leurs finalités."
},
{
"id": "ev-009",
"title": "Journal des incidents et post-mortems",
"category": "Incident",
"pillar": "security",
"owner": "Ops",
"freshness": "Valide",
"updatedAt": "2026-04-10",
"auditorReady": true,
"visibility": "auditor",
"source": "Incident register",
"tags": [
"incident",
"rca",
"security"
],
"linkedMilestones": [
"sec-ir",
"ava-incidents"
],
"summary": "Historique des incidents, causes racines et actions correctives."
},
{
"id": "ev-010",
"title": "Registre des fournisseurs critiques",
"category": "Vendor",
"pillar": "confidentiality",
"owner": "Direction",
"freshness": "À revoir",
"updatedAt": "2026-03-27",
"auditorReady": false,
"visibility": "internal",
"source": "Vendor register",
"tags": [
"vendors",
"third-party",
"contracts"
],
"linkedMilestones": [
"con-thirdparty",
"pri-incidents"
],
"summary": "Liste des tiers, contrats et dépendances; classement critique à finaliser."
},
{
"id": "ev-011",
"title": "Inventaire des services in-scope",
"category": "Inventory",
"pillar": "availability",
"owner": "Architecture",
"freshness": "Valide",
"updatedAt": "2026-04-11",
"auditorReady": true,
"visibility": "auditor",
"source": "CMDB / Architecture",
"tags": [
"inventory",
"scope",
"services"
],
"linkedMilestones": [
"ava-inventory",
"sec-governance"
],
"summary": "Liste des services critiques, dépendances et responsables dexploitation."
},
{
"id": "ev-012",
"title": "Matrice contrôles ↔ preuves",
"category": "Matrix",
"pillar": "security",
"owner": "Direction",
"freshness": "Valide",
"updatedAt": "2026-04-16",
"auditorReady": true,
"visibility": "auditor",
"source": "Compliance register",
"tags": [
"matrix",
"controls",
"evidence"
],
"linkedMilestones": [
"sec-governance",
"sec-change",
"con-review",
"pri-review",
"pi-audit"
],
"summary": "Matrice de rapprochement entre critères, contrôles, jalons et éléments probants."
}
],
"pillars": [
{
"id": "security",
"name": "Security",
"globalWeight": 32,
"objective": "Protéger les systèmes, les accès, les changements et la capacité de détection/réaction.",
"description": "Protection globale des systèmes, identités, journaux, changements et incidents.",
"milestones": [
{
"id": "sec-governance",
"title": "Gouvernance sécurité de base",
"weight": 10,
"owner": "Direction",
"cadence": "Mensuelle",
"dueAt": "2026-04-25",
"stage": "proved",
"evidenceRefs": [
"ev-001",
"ev-011",
"ev-012"
],
"notes": "Périmètre et rôles définis; maintenir lactualisation du registre des risques.",
"nextAction": "Ajouter la revue mensuelle du registre des risques à la fenêtre Type II."
},
{
"id": "sec-iam",
"title": "Gestion des accès et des identités",
"weight": 20,
"owner": "Ops",
"cadence": "Mensuelle",
"dueAt": "2026-04-22",
"stage": "operating",
"evidenceRefs": [
"ev-002"
],
"notes": "MFA déployé mais la revue périodique signée et la révocation démontrée restent à consolider.",
"nextAction": "Capturer la revue daccès du mois et la rattacher à ce jalon."
},
{
"id": "sec-hardening",
"title": "Durcissement et gestion des vulnérabilités",
"weight": 20,
"owner": "Ops",
"cadence": "Hebdomadaire",
"dueAt": "2026-04-21",
"stage": "operating",
"evidenceRefs": [],
"notes": "Le standard technique existe mais la chaîne de preuve automatisée doit être branchée.",
"nextAction": "Importer le dernier rapport de scan et lier la remédiation en cours."
},
{
"id": "sec-logging",
"title": "Journalisation, surveillance et alertes",
"weight": 20,
"owner": "Ops",
"cadence": "Hebdomadaire",
"dueAt": "2026-04-19",
"stage": "proved",
"evidenceRefs": [
"ev-004"
],
"notes": "Bonne maturité opérationnelle, surveillance déjà exploitable côté auditeur.",
"nextAction": "Ajouter un sommaire de rétention des journaux à la salle auditeur."
},
{
"id": "sec-change",
"title": "Gestion des changements",
"weight": 15,
"owner": "Ops",
"cadence": "Continue",
"dueAt": "2026-04-20",
"stage": "operating",
"evidenceRefs": [
"ev-003",
"ev-012"
],
"notes": "Les PR existent; il reste à standardiser la preuve des validations post-changement.",
"nextAction": "Ajouter le champ “validation post-déploiement” dans le flux de changement."
},
{
"id": "sec-ir",
"title": "Réponse aux incidents",
"weight": 15,
"owner": "Ops",
"cadence": "Trimestrielle",
"dueAt": "2026-05-05",
"stage": "operating",
"evidenceRefs": [
"ev-009"
],
"notes": "Registre en place; exercice formel tabletop à programmer.",
"nextAction": "Planifier un exercice et produire le compte rendu auditable."
}
]
},
{
"id": "availability",
"name": "Availability",
"globalWeight": 22,
"objective": "Maintenir la disponibilité promise, démontrer la résilience et la restaurabilité.",
"description": "Disponibilité des services, dépendances, capacité, sauvegardes et reprise.",
"milestones": [
{
"id": "ava-inventory",
"title": "Inventaire des services critiques et dépendances",
"weight": 15,
"owner": "Architecture",
"cadence": "Mensuelle",
"dueAt": "2026-04-24",
"stage": "proved",
"evidenceRefs": [
"ev-011"
],
"notes": "Inventaire déjà formalisé, à garder vivant.",
"nextAction": "Ajouter les dépendances de monitoring externe dans linventaire."
},
{
"id": "ava-slo",
"title": "Objectifs de service définis",
"weight": 10,
"owner": "Direction",
"cadence": "Trimestrielle",
"dueAt": "2026-05-10",
"stage": "designed",
"evidenceRefs": [],
"notes": "Le langage de promesse client existe, pas encore uniformisé en SLO/SLA.",
"nextAction": "Formaliser les cibles internes et externes par service in-scope."
},
{
"id": "ava-monitoring",
"title": "Monitoring et capacité",
"weight": 25,
"owner": "Ops",
"cadence": "Hebdomadaire",
"dueAt": "2026-04-19",
"stage": "proved",
"evidenceRefs": [
"ev-004"
],
"notes": "Surveillance solide et historique disponible.",
"nextAction": "Ajouter un résumé tendance capacité par trimestre."
},
{
"id": "ava-backup",
"title": "Sauvegardes et restauration testée",
"weight": 25,
"owner": "Ops",
"cadence": "Mensuelle",
"dueAt": "2026-04-23",
"stage": "operating",
"evidenceRefs": [
"ev-005"
],
"notes": "Test de restauration existant; cadence et couverture des jeux de données à élargir.",
"nextAction": "Ajouter un deuxième scénario de restauration ciblant la chaîne complète applicative."
},
{
"id": "ava-resilience",
"title": "Résilience opérationnelle",
"weight": 15,
"owner": "Architecture",
"cadence": "Trimestrielle",
"dueAt": "2026-05-12",
"stage": "operating",
"evidenceRefs": [
"ev-005"
],
"notes": "Les mécanismes existent mais le récit auditeur nest pas encore assez structuré.",
"nextAction": "Rédiger une fiche de reprise courte et exposable."
},
{
"id": "ava-incidents",
"title": "Gestion des incidents de disponibilité",
"weight": 10,
"owner": "Ops",
"cadence": "Continue",
"dueAt": "2026-04-20",
"stage": "proved",
"evidenceRefs": [
"ev-004",
"ev-009"
],
"notes": "Bonne base; il faut lier plus clairement lincident à laction corrective.",
"nextAction": "Relier chaque incident clos à une décision corrective explicite."
}
]
},
{
"id": "processing-integrity",
"name": "Processing Integrity",
"globalWeight": 16,
"objective": "Démontrer que les traitements critiques sont exacts, complets, traçables et revus.",
"description": "Intégrité des traitements, qualité des flux, détection derreurs et validation.",
"milestones": [
{
"id": "pi-flows",
"title": "Flux critiques identifiés",
"weight": 15,
"owner": "Architecture",
"cadence": "Mensuelle",
"dueAt": "2026-04-28",
"stage": "operating",
"evidenceRefs": [
"ev-006"
],
"notes": "La cartographie existe mais pas encore sur tout le périmètre Type II.",
"nextAction": "Terminer la cartographie des flux administratifs et de preuve."
},
{
"id": "pi-inputs",
"title": "Contrôles dentrée et de changement",
"weight": 20,
"owner": "Ops",
"cadence": "Continue",
"dueAt": "2026-04-22",
"stage": "operating",
"evidenceRefs": [
"ev-003"
],
"notes": "Le lien entre changements techniques et impact métier doit être explicité.",
"nextAction": "Ajouter un champ “impact traitement” dans les changements sensibles."
},
{
"id": "pi-audit",
"title": "Traçabilité et auditabilité des traitements",
"weight": 20,
"owner": "Ops",
"cadence": "Hebdomadaire",
"dueAt": "2026-04-20",
"stage": "proved",
"evidenceRefs": [
"ev-006",
"ev-012"
],
"notes": "Base structurante en place.",
"nextAction": "Mieux exposer la traçabilité pour les auditeurs non techniques."
},
{
"id": "pi-errors",
"title": "Détection et gestion des erreurs",
"weight": 20,
"owner": "Ops",
"cadence": "Hebdomadaire",
"dueAt": "2026-04-21",
"stage": "operating",
"evidenceRefs": [],
"notes": "Le processus existe de façon implicite; il faut le rendre explicite et prouvable.",
"nextAction": "Créer un registre simple danomalies de traitement."
},
{
"id": "pi-validation",
"title": "Validation / tests / réconciliation",
"weight": 15,
"owner": "Ops",
"cadence": "Mensuelle",
"dueAt": "2026-04-26",
"stage": "operating",
"evidenceRefs": [],
"notes": "Présent dans la pratique, mais pas encore uniformisé dans la preuve.",
"nextAction": "Définir trois contrôles de réconciliation standard."
},
{
"id": "pi-review",
"title": "Revue périodique des écarts",
"weight": 10,
"owner": "Direction",
"cadence": "Mensuelle",
"dueAt": "2026-04-30",
"stage": "absent",
"evidenceRefs": [],
"notes": "Cest un vrai trou de gouvernance pour ce pilier.",
"nextAction": "Instaurer une revue mensuelle décarts avec décision consignée."
}
]
},
{
"id": "confidentiality",
"name": "Confidentiality",
"globalWeight": 18,
"objective": "Encadrer laccès, les secrets, la classification, les tiers et le cycle de vie des données confidentielles.",
"description": "Protection des données confidentielles, accès, secrets, conservation et tiers.",
"milestones": [
{
"id": "con-classification",
"title": "Classification des données",
"weight": 15,
"owner": "Architecture",
"cadence": "Trimestrielle",
"dueAt": "2026-05-15",
"stage": "operating",
"evidenceRefs": [
"ev-007"
],
"notes": "Une base existe, mais elle nest pas encore assez normalisée pour laudit.",
"nextAction": "Uniformiser les niveaux de classification et leurs exigences associées."
},
{
"id": "con-access",
"title": "Restriction daccès",
"weight": 25,
"owner": "Ops",
"cadence": "Mensuelle",
"dueAt": "2026-04-22",
"stage": "proved",
"evidenceRefs": [
"ev-002"
],
"notes": "Contrôle robuste, sous réserve dune meilleure preuve de revue formelle.",
"nextAction": "Ajouter lattestation mensuelle du responsable sur les accès sensibles."
},
{
"id": "con-tech",
"title": "Protection technique",
"weight": 20,
"owner": "Ops",
"cadence": "Hebdomadaire",
"dueAt": "2026-04-20",
"stage": "proved",
"evidenceRefs": [],
"notes": "Bonne maîtrise technique, chaîne de preuve encore dispersée.",
"nextAction": "Centraliser les preuves chiffrement/TLS/secrets dans un seul dossier."
},
{
"id": "con-lifecycle",
"title": "Cycle de vie des données",
"weight": 15,
"owner": "Architecture",
"cadence": "Trimestrielle",
"dueAt": "2026-05-08",
"stage": "operating",
"evidenceRefs": [
"ev-007"
],
"notes": "Règles de conservation à préciser selon type de données.",
"nextAction": "Créer une matrice conservation / archivage / destruction."
},
{
"id": "con-thirdparty",
"title": "Tiers et obligations contractuelles",
"weight": 10,
"owner": "Direction",
"cadence": "Trimestrielle",
"dueAt": "2026-05-02",
"stage": "operating",
"evidenceRefs": [
"ev-010"
],
"notes": "Le registre existe, la criticité et le suivi restent à renforcer.",
"nextAction": "Classer les fournisseurs par criticité et lier les clauses sécurité."
},
{
"id": "con-review",
"title": "Preuves de revue et exceptions",
"weight": 15,
"owner": "Direction",
"cadence": "Mensuelle",
"dueAt": "2026-04-30",
"stage": "operating",
"evidenceRefs": [
"ev-012"
],
"notes": "Bonne structure, manque encore des revues exécutées sur la durée.",
"nextAction": "Ajouter la dernière revue mensuelle avec décisions dexception."
}
]
},
{
"id": "privacy",
"name": "Privacy",
"globalWeight": 12,
"objective": "Encadrer les renseignements personnels, leurs finalités, leurs droits et leur suppression.",
"description": "Renseignements personnels, finalités, droits, conservation et incidents.",
"milestones": [
{
"id": "pri-mapping",
"title": "Cartographie des renseignements personnels",
"weight": 20,
"owner": "Direction",
"cadence": "Trimestrielle",
"dueAt": "2026-05-16",
"stage": "operating",
"evidenceRefs": [
"ev-008"
],
"notes": "Démarré, mais encore incomplet sur certains fournisseurs et flux secondaires.",
"nextAction": "Finaliser la source, la finalité et la localisation pour chaque catégorie de RP."
},
{
"id": "pri-rules",
"title": "Règles de collecte et dusage",
"weight": 20,
"owner": "Direction",
"cadence": "Trimestrielle",
"dueAt": "2026-05-18",
"stage": "operating",
"evidenceRefs": [
"ev-008"
],
"notes": "La doctrine existe, la démonstration opérationnelle est incomplète.",
"nextAction": "Documenter explicitement les finalités et la minimisation."
},
{
"id": "pri-rights",
"title": "Droits et demandes des personnes",
"weight": 20,
"owner": "Direction",
"cadence": "Mensuelle",
"dueAt": "2026-04-29",
"stage": "absent",
"evidenceRefs": [],
"notes": "Aucun mécanisme simple et démontrable nest encore en place.",
"nextAction": "Créer un registre de demandes et une procédure courte de traitement."
},
{
"id": "pri-retention",
"title": "Conservation et suppression",
"weight": 20,
"owner": "Architecture",
"cadence": "Trimestrielle",
"dueAt": "2026-05-11",
"stage": "operating",
"evidenceRefs": [
"ev-008"
],
"notes": "Les règles existent partiellement par système, pas encore au niveau programme.",
"nextAction": "Formaliser la matrice de rétention et les méthodes de suppression."
},
{
"id": "pri-incidents",
"title": "Incidents vie privée et tiers",
"weight": 10,
"owner": "Direction",
"cadence": "Trimestrielle",
"dueAt": "2026-05-09",
"stage": "operating",
"evidenceRefs": [
"ev-010"
],
"notes": "La zone tiers est présente, mais langle privacy est sous-documenté.",
"nextAction": "Ajouter le scénario “incident touchant des RP” au registre dincidents."
},
{
"id": "pri-review",
"title": "Revue périodique de conformité vie privée",
"weight": 10,
"owner": "Direction",
"cadence": "Mensuelle",
"dueAt": "2026-04-30",
"stage": "absent",
"evidenceRefs": [],
"notes": "Pas encore de cycle récurrent de revue privacy.",
"nextAction": "Instaurer une revue mensuelle compacte de conformité privacy."
}
]
}
],
"auditorPacks": [
{
"id": "pack-1",
"title": "System Description",
"status": "ready",
"requiredEvidence": [
"ev-001",
"ev-011"
],
"description": "Périmètre, architecture, dépendances, flux de données, rôles et responsabilités."
},
{
"id": "pack-2",
"title": "Management Assertion",
"status": "draft",
"requiredEvidence": [
"ev-012"
],
"description": "Déclaration de la direction sur la fidélité de la description et lefficacité opérationnelle."
},
{
"id": "pack-3",
"title": "Controls ↔ Evidence Matrix",
"status": "ready",
"requiredEvidence": [
"ev-012"
],
"description": "Matrice de rapprochement entre critères, jalons, contrôles, propriétaires et preuves."
},
{
"id": "pack-4",
"title": "Exceptions & Remediation Register",
"status": "draft",
"requiredEvidence": [
"ev-009",
"ev-010"
],
"description": "Écarts connus, compensating controls, décisions et plan de remédiation."
},
{
"id": "pack-5",
"title": "Access & Privileged Activity Pack",
"status": "draft",
"requiredEvidence": [
"ev-002"
],
"description": "Revue des accès, privilèges, MFA et preuves de révocation."
}
]
}