{
  "version": "1.0",
  "updated": "2026-11-07",
  "type": "modele_vierge",
  "notice": "Checklist originale INOBIC à adapter au périmètre et aux moyens disponibles. Les références sont thématiques, sans équivalence normative ni attestation de conformité. Aucun contrôle exécuté par défaut.",
  "status_definitions": {
    "non_verifie": "Non exécuté, accès manquant ou preuve insuffisante.",
    "verifie": "Critère défini vérifié dans le périmètre, preuve requise.",
    "ecart": "Écart confirmé, preuve et impact à documenter.",
    "partiel": "Couverture partielle, préciser ce qui reste inconnu.",
    "non_applicable": "Hors architecture/périmètre, justification obligatoire."
  },
  "references": [
    {
      "id": "ASVS",
      "title": "OWASP ASVS 5.0.0",
      "url": "https://asvs.owasp.org/",
      "usage": "Choisir des exigences de vérification applicative ; préciser les exigences et la version dans le périmètre, sans revendiquer un niveau complet non évalué."
    },
    {
      "id": "API",
      "title": "OWASP API Security Top 10 — 2023",
      "url": "https://owasp.org/API-Security/editions/2023/en/0x11-t10/",
      "usage": "Identifier les familles de risques API. Une liste de risques ne constitue pas un protocole exhaustif de tests."
    },
    {
      "id": "DOTNET",
      "title": "Microsoft — sécurité ASP.NET Core 10",
      "url": "https://learn.microsoft.com/en-us/aspnet/core/security/?view=aspnetcore-10.0",
      "usage": "Adapter les contrôles à la version du runtime et aux mécanismes réellement utilisés."
    },
    {
      "id": "AZURE",
      "title": "Azure Well-Architected — checklist sécurité",
      "url": "https://learn.microsoft.com/en-us/azure/well-architected/security/checklist",
      "usage": "Examiner les choix de sécurité du workload autorisé et leurs compromis, sans étendre la revue à tout le tenant."
    },
    {
      "id": "SSDF",
      "title": "NIST SSDF — SP 800-218, version 1.1",
      "url": "https://csrc.nist.gov/projects/ssdf",
      "usage": "Structurer le développement sécurisé et la réponse aux vulnérabilités selon le risque."
    }
  ],
  "controls": [
    {
      "id": "GOV-01",
      "domain": "Cadrage et preuves",
      "title": "Autorisation et limites",
      "check": "Consigner actifs, versions, comptes, méthodes, exclusions, droits des tiers, contacts et conditions d’arrêt. Aucune extension implicite.",
      "expected_evidence": "Périmètre daté et autorisation écrite ; références internes sans secret.",
      "reference_themes": [],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "GOV-02",
      "domain": "Cadrage et preuves",
      "title": "Données et canaux",
      "check": "Convenir des données autorisées, canaux, destinataires, outils externes/IA, durée de conservation et restitution ou suppression.",
      "expected_evidence": "Modalités validées ; preuves minimisées ; accord séparé avant toute publication.",
      "reference_themes": [],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "GOV-03",
      "domain": "Cadrage et preuves",
      "title": "Architecture et hypothèses",
      "check": "Identifier flux sensibles, frontières de confiance et scénarios métier ; distinguer revue de code, configuration et tests actifs.",
      "expected_evidence": "Schéma ou inventaire versionné et liste des limites.",
      "reference_themes": [
        "ASVS",
        "SSDF"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "GOV-04",
      "domain": "Cadrage et preuves",
      "title": "Traçabilité du contrôle",
      "check": "Relier chaque contrôle au composant/version, à sa méthode, sa date, son résultat et sa preuve ; ne pas convertir une absence d’accès en succès.",
      "expected_evidence": "Fiche de contrôle et références de preuves expurgées.",
      "reference_themes": [],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "APP-01",
      "domain": "Applications et .NET",
      "title": "Autorisation par ressource",
      "check": "Vérifier côté serveur propriétaire, organisation et rôle ; prévoir les cas autorisé, refusé et absence d’identité.",
      "expected_evidence": "Tests positifs et négatifs sur ressources de test et absence de données sur refus.",
      "reference_themes": [
        "ASVS",
        "DOTNET"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "APP-02",
      "domain": "Applications et .NET",
      "title": "Authentification et sessions",
      "check": "Selon le mécanisme : validation des jetons, durée et révocation, cookies et protection des opérations sensibles ; ne pas confondre authentification et autorisation.",
      "expected_evidence": "Configuration examinée et scénarios de test définis au cadrage.",
      "reference_themes": [
        "ASVS",
        "DOTNET"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "APP-03",
      "domain": "Applications et .NET",
      "title": "Entrées et sorties",
      "check": "Examiner validation, encodage contextuel, requêtes paramétrées et traitements de fichiers/redirections selon les chemins réellement présents.",
      "expected_evidence": "Constats reliés au code et tests ciblés, sans données de production.",
      "reference_themes": [
        "DOTNET"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "APP-04",
      "domain": "Applications et .NET",
      "title": "Échecs et confidentialité",
      "check": "Tester les comportements sans JavaScript, sans permission ou avec service indisponible ; rechercher données en URL, erreurs et journaux.",
      "expected_evidence": "Tests de dégradation et contrôle de l’absence de données sensibles dans les sorties.",
      "reference_themes": [
        "ASVS"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "APP-05",
      "domain": "Applications et .NET",
      "title": "Runtime et dépendances",
      "check": "Identifier versions supportées, dépendances directes/transitives et avis applicables ; distinguer alerte, exposition et exploitabilité.",
      "expected_evidence": "Inventaire daté, source des avis et tri des résultats ; limite si aucun scan disponible.",
      "reference_themes": [
        "DOTNET",
        "SSDF"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "API-01",
      "domain": "API et intégrations",
      "title": "Périmètre des opérations",
      "check": "Contrôler accès aux objets, propriétés et fonctions sensibles selon les rôles métier.",
      "expected_evidence": "Matrice d’accès et cas négatifs autorisés.",
      "reference_themes": [
        "API"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "API-02",
      "domain": "API et intégrations",
      "title": "Contrats et limites",
      "check": "Examiner validation des requêtes, pagination, quotas et erreurs ; pas de test de charge sans accord distinct.",
      "expected_evidence": "Configuration et tests bornés sur données fictives.",
      "reference_themes": [
        "API"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "API-03",
      "domain": "API et intégrations",
      "title": "Services externes",
      "check": "Revoir destinations sortantes autorisées et données de réponse ; ne pas supposer fiable une API tierce.",
      "expected_evidence": "Chemins d’intégration examinés sans solliciter de tiers hors périmètre.",
      "reference_themes": [
        "API"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "AZ-01",
      "domain": "Azure et identités",
      "title": "Droits effectifs",
      "check": "Examiner rôles directs/hérités et besoin métier ; éviter d’afficher identités et identifiants dans les pièces publiques.",
      "expected_evidence": "Constats de permissions expurgés ; correction approuvée sans verrouillage administratif.",
      "reference_themes": [
        "AZURE"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "AZ-02",
      "domain": "Azure et identités",
      "title": "Secrets et identités de workload",
      "check": "Préférer des identités managées lorsqu’elles conviennent ; examiner accès aux secrets sans en extraire les valeurs inutilement.",
      "expected_evidence": "Métadonnées et permissions nécessaires ; procédure de rotation si exposition confirmée.",
      "reference_themes": [
        "AZURE"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "AZ-03",
      "domain": "Azure et identités",
      "title": "Exposition et réseau",
      "check": "Examiner les accès publics/privés et restrictions des ressources incluses. Un site public n’est pas une erreur de configuration par nature.",
      "expected_evidence": "Configuration comparée au besoin et impacts de changement évalués.",
      "reference_themes": [
        "AZURE"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "AZ-04",
      "domain": "Azure et identités",
      "title": "Journaux et alertes",
      "check": "Vérifier les événements disponibles, destinataires, alertes et rétention ; ne pas conclure à une absence globale de logs à partir d’une lecture partielle.",
      "expected_evidence": "Preuve de configuration ou statut non vérifié avec accès manquant.",
      "reference_themes": [
        "AZURE"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "CI-01",
      "domain": "DevSecOps et remédiation",
      "title": "Accès des pipelines",
      "check": "Revoir permissions des jobs, branches et approbations ; isoler les contributions non fiables des secrets de déploiement.",
      "expected_evidence": "Configuration du pipeline et scénario d’accès relus.",
      "reference_themes": [
        "SSDF"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "CI-02",
      "domain": "DevSecOps et remédiation",
      "title": "Contrôles automatisés",
      "check": "Choisir SAST, SCA et détection de secrets selon la stack ; qualifier les alertes et tracer les dérogations avec responsable et échéance.",
      "expected_evidence": "Rapports datés et traitement des faux positifs ; aucun outil revendiqué sans exécution.",
      "reference_themes": [
        "SSDF"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "FIX-01",
      "domain": "DevSecOps et remédiation",
      "title": "Correction proportionnée",
      "check": "Relier le changement à la cause, limiter le diff, prévoir revue et retour arrière ; ne pas élargir les privilèges pour résoudre le symptôme.",
      "expected_evidence": "Diff et critères de validation ; identité du validateur à renseigner.",
      "reference_themes": [
        "SSDF"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "FIX-02",
      "domain": "DevSecOps et remédiation",
      "title": "Contre-vérification",
      "check": "Rejouer le scénario initial et les cas autorisés, refusés et dégradés ; distinguer test unitaire, intégration, navigateur et production.",
      "expected_evidence": "Résultats avant/après sur versions identifiées et limites de couverture.",
      "reference_themes": [
        "ASVS",
        "SSDF"
      ],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "FIX-03",
      "domain": "DevSecOps et remédiation",
      "title": "Publication et intégrité",
      "check": "Vérifier les fichiers prévus, éviter les preuves privées dans le paquet et contrôler le comportement après publication.",
      "expected_evidence": "Manifest, vérification ciblée en production et plan de retour arrière.",
      "reference_themes": [],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    },
    {
      "id": "FIX-04",
      "domain": "DevSecOps et remédiation",
      "title": "Clôture et risques résiduels",
      "check": "Lister les éléments non retestés, risques acceptés et actions ouvertes ; convenir de la révocation des accès et de la gestion des données.",
      "expected_evidence": "Restitution et décisions du responsable ; risque accepté distinct de risque corrigé.",
      "reference_themes": [],
      "status": "non_verifie",
      "scope": "",
      "version": "",
      "method": "",
      "checked_at": "",
      "reviewer": "",
      "evidence": [],
      "justification": ""
    }
  ]
}
